Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Biết cách khôi phục bảng đã xóa trong SQL Server 2012 mà không cần sao lưu

Tóm tắt:Bạn có muốn biết cách khôi phục bảng đã xóa trong SQL Server 2012 mà không cần sao lưu. Đọc bài viết này để khôi phục các đối tượng cơ sở dữ liệu đã xóa bằng cách sử dụng các giải pháp hiệu quả và nhanh chóng.

Đôi khi, khách hàng có thể thực hiện CẬP NHẬT hoạt động hoặc XÓA hoạt động trong cơ sở dữ liệu SQL Server mà không áp dụng WHERE điều kiện. Đây là lời giải thích điển hình đằng sau việc mất dữ liệu từ các bảng SQL Server. Vì cơ sở dữ liệu SQL Server là một DBMS quan hệ đặc biệt chính thống giữa các bộ phận và tổ chức của công ty, vấn đề mất dữ liệu còn tăng lên nhiều hơn nữa. Vì vậy, khách hàng phải biết về các chiến lược khôi phục dữ liệu đã xóa khỏi Bảng SQL Server nếu có sự cố xảy ra.

Các hàng đã xóa có thể được khôi phục bằng cách sử dụng LSN nếu biết thời gian xóa. Điều này có thể thực hiện được bằng cách sử dụng Số thứ tự nhật ký (LSN). LSN là số nhận dạng đặc biệt được cấp cho mỗi bản ghi có trong nhật ký giao dịch SQL Server. Chúng ta sẽ nói về quy trình khôi phục dữ liệu và bảng SQL Server đã xóa với sự hỗ trợ của Nhật ký giao dịch và LSN.

Được đề xuất: Để tránh cách LSN thủ công dài và không chính xác để giải quyết việc khôi phục các bản ghi đã xóa khỏi bảng SQL bằng cách sử dụng công cụ của bên thứ ba, chẳng hạn như công cụ Khôi phục cơ sở dữ liệu SQL .

Quy trình cần biết cách khôi phục bảng đã xóa trong SQL Server 2012 mà không cần sao lưu

Có một số yêu cầu cần được thỏa mãn trước khi chúng tôi bắt đầu quy trình khôi phục dữ liệu đã xóa khỏi bảng SQL. Để khôi phục hiệu quả các hàng đã xóa khỏi một bảng trong cơ sở dữ liệu SQL Server, nó phải có mô hình khôi phục BULK-LOGGED hoặc FULL khi việc xóa diễn ra ban đầu. Một số hoạt động nhanh là bắt buộc nên vẫn có thể truy cập nhật ký để phục hồi dữ liệu.

Làm theo các bước được cung cấp bên dưới để khôi phục dữ liệu đã xóa khỏi SQL Server 2005, 2008, 2012, 2014 và 2016 bằng cách sử dụng nhật ký giao dịch.

Bước 1

Kiểm tra số hàng có trong bảng mà dữ liệu đã vô tình bị xóa bằng cách sử dụng câu hỏi tham chiếu bên dưới:

CHỌN * TỪ Tên_bảng

Bước 2

Sao lưu nhật ký giao dịch của cơ sở dữ liệu bằng cách sử dụng truy vấn được cung cấp bên dưới:

SỬ DỤNG Tên cơ sở dữ liệu

ĐI

LOG sao lưu [Tên cơ sở dữ liệu]

TO DISK =N’D:\ Databasename \ RDDTrLog.trn ’

VỚI NOFORMAT, NOINIT,

NAME =N’Databasename-Sao lưu nhật ký giao dịch ’,

SKIP, NOREWIND, NOUNLOAD, STATS =10

ĐI

Bước 3

Vì vậy, để khôi phục dữ liệu đã xóa từ Bảng SQL Server, chúng ta phải thu thập một số dữ liệu về các hàng đã xóa. Chạy truy vấn được cung cấp bên dưới để thực hiện lý do này

SỬ DỤNG Tên cơ sở dữ liệu

ĐI

Chọn [LSN hiện tại], [ID giao dịch], Thao tác, Ngữ cảnh, Tên đơn vị

TỪ

fn_dblog (NULL, NULL)

Hoạt động WHERE =‘LOP_DELETE_ROWS’

Từ truy vấn được đưa ra ở trên, chúng tôi sẽ nhận được ID giao dịch (Giả sử 000:000001f3) của các hàng đã xóa. Hiện tại, khi các hàng này bị xóa sẽ được giải quyết để sử dụng ID này.

Bước 4

Trong tiến trình này, chúng tôi sẽ xác định thời gian cụ thể mà tại đó các hàng đã bị xóa bằng cách sử dụng ID giao dịch 000:000001f3. Việc này được hoàn thành bằng cách thực hiện yêu cầu đưa ra như sau:

SỬ DỤNG Tên cơ sở dữ liệu

ĐI

CHỌN

[LSN hiện tại], Hoạt động, [ID giao dịch], [Thời gian bắt đầu], [Tên giao dịch], [SID giao dịch]

TỪ

fn_dblog (NULL, NULL)

Ở ĐÂU

[ID giao dịch] =‘000:000001f3’

[Hoạt động] =‘LOP_BEGIN_XACT’

Khi thực hiện yêu cầu này, chúng tôi sẽ nhận được ước tính Số thứ tự nhật ký (LSN) hiện tại (giả sử 00000020:000001d0:0001).

Bước 5

Bây giờ, chúng tôi sẽ bắt đầu quy trình khôi phục để khôi phục dữ liệu đã xóa từ các hàng trong Bảng SQL Server đã bị mất. Việc này đã hoàn tất bằng cách sử dụng truy vấn bên dưới:

SỬ DỤNG Tên cơ sở dữ liệu

ĐI

Khôi phục tên cơ sở dữ liệu DATABASE_COPY FROM

Tấm =‘D:\ Databasename \ RDDFull.bak’

VỚI

CHUYỂN ‘Tên cơ sở dữ liệu’ SANG ‘D:\ RecoverDB \ Databasename.mdf’,

CHUYỂN ‘Databasename_log’ TO ‘D:\ RecoverDB \ Databasename_log.ldf’,

THAY THẾ, PHỤC HỒI;

ĐI

Bước 6

Hiện áp dụng nhật ký giao dịch để khôi phục các hàng đã xóa bằng cách sử dụng LSN 00000020:000001d0:0001:

SỬ DỤNG tên cơ sở dữ liệu

ĐI

Khôi phục tên cơ sở dữ liệu LOG_COPY FROM DISK =N'D:\ Databasename \ RDOTrLog.trn 'WITH STOPBEFOREMARK =' lsn:0x00000020:000001d0:0001 'Lưu ý:Vì giá trị LSN nằm trong cấu trúc Hệ thập lục phân và để khôi phục bảng sử dụng điều này LSN, chúng ta phải thay đổi nó thành cấu trúc thập phân. Vì lý do này, chúng tôi bao gồm 0x không lâu trước LSN như đã xuất hiện trước đây.

Bước 7

Quy trình khôi phục các bản ghi đã xóa khỏi bảng SQL sẽ được hoàn thành một cách hiệu quả. Kiểm tra ngay xem các bản ghi đã xóa có trở lại trong cơ sở dữ liệu có tên là Databasename_Copy hay không.

SỬ DỤNG Tên cơ sở dữ liệu_Copy ĐI Chọn * từ Tên_bảng

Giới hạn của phương pháp tiếp cận nhật ký giao dịch

  • Chiến lược vô cùng tẻ nhạt để khôi phục dữ liệu đã xóa khỏi Bảng SQL Server, vì nó bao gồm một số truy vấn mở rộng cần được thực thi.
  • Thật đáng kinh ngạc khi đầu óc thực hiện hóa đối với những khách hàng không có đủ dữ liệu chuyên biệt.
  • Tỷ lệ mất dữ liệu do nhầm lẫn trong quá trình áp dụng và thực thi các truy vấn.

Giải pháp Tự chọn cần biết Cách khôi phục bảng đã xóa trong SQL Server 2012 mà không cần sao lưu

Giải pháp tự chọn tốt nhất có thể truy cập để khôi phục các hàng từ SQL Server 2019/2017/2016/2014/2012/2008/2005. Giải pháp tự chọn mà chúng ta nói đến ở đây có thể giải quyết mọi sự cố đơn lẻ xuất hiện trong SQL Server. Nó có thể sửa lỗi SQL và sửa các tệp SQL MDF và NDF. Công cụ khôi phục SQL FreeViewer là một công cụ kinh doanh cho phép khôi phục các Kích hoạt, Quy tắc, Chức năng, Bảng. Hơn nữa, nó cũng khôi phục các Thủ tục đã Lưu trữ trong SQL Server một cách hiệu quả mà không mất dữ liệu. Phần quan trọng là, ứng dụng cung cấp nhiều tùy chọn hỗ trợ trong khi sửa các tệp cơ sở dữ liệu SQL Server bị hỏng. Ngoài ra, ứng dụng này hiển thị các bản ghi bảng SQL đã xóa bằng màu đỏ. Sản phẩm này hoạt động tốt với Microsoft Outlook 2019 và tất cả các phiên bản bên dưới của nó.

Tải xuống bản phát hành demo miễn phí để hiểu được dung lượng tốt nhất có thể của ứng dụng.

Các bước để khôi phục các đối tượng cơ sở dữ liệu đã xóa một cách dễ dàng

  1. Tải xuống và gửi Phục hồi SQL và mở tệp MDF.
  2. Chọn thay thế Quét trước, Phát hiện phiên bản của SQL Server để khôi phục các bản ghi đã xóa trong SQL Server.
  3. Công cụ sẽ bắt đầu Quét thủ tục của tệp cơ sở dữ liệu chính (MDF)
  4. Xem Cấu phần Cơ sở dữ liệu SQL, công cụ hiển thị các bản ghi bảng SQL đã bị xóa bằng màu đỏ. Sau đó, nhấp vào nút Xuất
  5. Bạn phải cung cấp chi tiết xác thực Cơ sở dữ liệu trong phân đoạn tiếp theo.
  6. Kiểm tra ‘ Tạo Cơ sở dữ liệu Mới’ và đặt tên cho cơ sở dữ liệu.
  7. Cung cấp cho Cơ sở dữ liệu ‘Với lược đồ và dữ liệu’ để khôi phục dữ liệu trong các hàng đã xóa trong SQL Server. (Đồng thời đánh dấu vào hộp kiểm Xuất bản ghi đã xóa)
  8. Hiện lưu báo cáo và mở cơ sở dữ liệu được tạo gần đây có chứa các bản ghi Đã khôi phục.

Kết luận

Cũng nên đọc:Người dùng cũng có thể đọc một bài đăng tương tự khác để biết các phương pháp hay nhất về khôi phục Microsoft SQL Server Disaster.

Mặc dù chiến lược LSN có thể khôi phục các bản ghi đã xóa khỏi bảng SQL, nhưng đó là bất cứ điều gì ngoại trừ một lựa chọn được chỉ định cho các máy khách vì tính chất đa diện và tính lặp lại của nó. Thay vào đó, chúng tôi khuyến khích sử dụng giải pháp tự động để biết cách khôi phục bảng đã xóa trong SQL Server 2012 mà không cần sao lưu.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server - đánh giá tham số

  2. Cách trích xuất hoặc chuyển đổi dữ liệu thời gian từ một chuỗi trong SQL Server

  3. VMware CPU Hot Plug vNUMA Hiệu ứng trên SQL Server

  4. Kiểm tra trạng thái của hàng đợi thư cơ sở dữ liệu trong SQL Server (T-SQL)

  5. Cách ISNUMERIC () hoạt động trong SQL Server