Tôi đã xóa nhầm khoảng 2.000.000 bản ghi khỏi bảng SQL Server 2008 từ xa. Máy chủ không cấp cho tôi quyền truy cập vào các tệp sao lưu ở phía máy chủ.
Có cách nào để lấy lại những hồ sơ này?
Tôi đã xóa nhầm khoảng 2.000.000 bản ghi khỏi bảng SQL Server 2008 từ xa. Máy chủ không cấp cho tôi quyền truy cập vào các tệp sao lưu ở phía máy chủ.
Có cách nào để lấy lại những hồ sơ này?
Câu trả lời:
Là cơ sở dữ liệu của bạn trong chế độ phục hồi đầy đủ?
Nếu có, bạn đang thực hiện sao lưu nhật ký giao dịch?
Nếu không (không ở chế độ khôi phục hoàn toàn), hãy khôi phục bản sao lưu đầy đủ cuối cùng dưới dạng cơ sở dữ liệu với một tên khác. (Không ghi đè cơ sở dữ liệu bạn đã có.) Từ đó, bạn sẽ có thể khôi phục bất kỳ bản ghi nào đang trực tuyến tại thời điểm sao lưu, nhưng bạn sẽ mất tất cả các thay đổi kể từ đó.
SQL Server giữ nhật ký cho mỗi bản ghi bị xóa. Bạn có thể truy vấn các bản ghi này thông qua fn_dblog
chức năng SQL Server.
SELECT [RowLog Contents 0]
FROM sys.fn_dblog(NULL, NULL)
WHERE
AllocUnitName = 'dbo.TableName'
AND Context IN ( 'LCX_MARK_AS_GHOST', 'LCX_HEAP' )
AND Operation in ( 'LOP_DELETE_ROWS' )
;
Nhưng nhật ký này ở định dạng Hex và bạn cần chuyển đổi định dạng Hex này thành dữ liệu thực tế của bạn.
Bài viết dưới đây sẽ giúp bạn khôi phục các hồ sơ đã xóa theo cách được xác định ở trên:
http://raresql.com/2011/10/22/how-to-recover-delatted-data-from-sql-sever/
@user1059637
- Thái độ của bạn với những người thêm chức năng vào mã của bạn là gì?
Thật không may, chúng tôi sẽ không thể giúp bạn mà không có nhiều thông tin hơn. Nhưng từ câu hỏi của bạn, tôi thấy rằng bạn đã xóa 2 triệu bản ghi từ cơ sở dữ liệu của bạn. Nhiều khả năng bạn không thể khôi phục thông tin này, trừ khi bạn đăng nhập đầy đủ vào cơ sở dữ liệu của mình và bạn mua một số công cụ rất cụ thể.
Nếu bạn có thể mô tả chi tiết hơn những gì bạn nghĩ bạn đã làm và lý do tại sao bạn cảm thấy bạn không thể lấy lại hồ sơ và có thể mô tả tổ chức cơ sở dữ liệu của bạn, thì chúng tôi có thể giúp bạn thêm một chút.
Một số lời khuyên chung: nếu bạn nghĩ rằng bạn đã xóa 2 triệu hồ sơ, có lẽ bạn hơi bối rối ngay bây giờ. Vì vậy, bạn nên nghỉ ngơi năm phút, bình tĩnh và xem xét lại vấn đề. Ngoài ra, bạn nên nói với sếp của bạn ngay nếu điều đó hợp lý (đừng đánh thức ai đó lúc 2 giờ sáng để nói với họ) và rằng bạn đang nghiên cứu giải pháp. Tốt hơn là thừa nhận những gì đã xảy ra hơn là cố gắng phục hồi một cách điên cuồng và có khả năng làm cho vấn đề tồi tệ hơn và che giấu các chi tiết. Biết rằng sếp của bạn có thể giúp đỡ theo một cách nào đó, giúp bạn khắc phục vấn đề. Như tôi đã nói, chỉ là một số lời khuyên chung chung.