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

Các cách theo dõi cơ sở dữ liệu đã xóa trong SQL Server

Lịch sử thay đổi lược đồ của SQL Server, chúng tôi có thể nhận ra tên của cơ sở dữ liệu đã bị loại bỏ khỏi SQL Server. Trong môi trường SQL Server lớn, việc giao tiếp với từng lược đồ thay đổi lịch sử của từng trường hợp SQL Server là một nhiệm vụ cực kỳ rắc rối. Trong blog này, chúng tôi sẽ xem xét các bước mà bạn có thể theo dõi cơ sở dữ liệu đã xóa tự động theo dõi nhanh chóng trong SQL Server.

Giải pháp quan trọng: Bạn có đang gặp sự cố khi khôi phục các thành phần cơ sở dữ liệu đã xóa từ SQL Server không, nếu có, hãy thử dùng Phần mềm công cụ sửa chữa SQL để xuất trực tiếp đối tượng cơ sở dữ liệu đã xóa sang SQL Server.

Có hai kỹ thuật độc đáo mà người ta có thể theo dõi ai đã xóa cơ sở dữ liệu trong SQL Server mà không cần nỗ lực nhiều. Kỹ thuật chính là sử dụng Báo cáo lịch sử thay đổi lược đồ được tích hợp sẵn. Kỹ thuật tiếp theo là tải Dấu vết mặc định của SQL Server vào một bảng để xem ai đã xóa cơ sở dữ liệu.

Phương pháp Theo dõi cơ sở dữ liệu đã xóa trong SQL Server

1. Theo dõi cơ sở dữ liệu bằng cách sử dụng báo cáo lịch sử thay đổi lược đồ máy chủ SQL

  1. Mở SQL Server Management Studio và kết nối với SQL Server Instance.
  2. Nhấp chuột phải vào Phiên bản SQL Server và Chọn Báo cáo -> Báo cáo Chuẩn -> Lịch sử Thay đổi giản đồ.
  3. Sau đó, báo cáo Lịch sử Thay đổi Lược đồ sẽ mở ra, trong đó sẽ có thông tin chi tiết về ai đã xóa Cơ sở dữ liệu SQL Server cùng với thời điểm cơ sở dữ liệu bị xóa.

2. Cơ sở dữ liệu theo dõi sử dụng tệp theo dõi mặc định

Tệp theo dõi mặc định của máy chủ SQL cung cấp dữ liệu đặc biệt hữu ích cho DBA để hiểu những gì đang diễn ra trên Phiên bản máy chủ SQL.

Thực thi truy vấn dưới đây để theo dõi đường dẫn mặc định của tệp theo dõi trong SQL Server.

CHỌN

đường dẫn AS [Tệp theo dõi mặc định]

, max_size AS [Kích thước tệp tối đa của tệp theo dõi]

, max_files AS [Số tệp theo dõi tối đa]

, start_time AS [Thời gian bắt đầu]

, last_event_time NHƯ [Thời gian diễn ra sự kiện cuối cùng]

TỪ sys.traces WHERE is_default =1

ĐI

Hướng dẫn từng bước để tải tệp theo dõi SQL Server trong bảng SQL Server

Lưu ý: Dùng thử Phần mềm phân tích nhật ký SQL để khôi phục cơ sở dữ liệu từ các tệp LDF bị hỏng.

Thực thi tập lệnh bên dưới để tải nội dung tệp theo dõi mặc định trong bảng tạm thời để đọc dữ liệu quan trọng như đối với người đã xóa cơ sở dữ liệu khách trong SQL Server. Nếu bạn không tìm thấy dữ liệu quan trọng trong tệp theo dõi gần đây nhất, tại thời điểm đó, quy định tải dữ liệu từ tất cả các tệp theo dõi có thể truy cập trên máy chủ để khám phá dữ liệu.

SỬ DỤNG tempdb

ĐI

IF OBJECT_ID (‘dbo.TraceTable’, ‘U’) KHÔNG ĐẦY ĐỦ

DROP TABLE dbo.TraceTable;

CHỌN * INTO TraceTable

FROM ::fn_trace_nough

(‘G:\ Program Files \ Microsoft SQL Server \ MSSQL10_50.SQL2008R2 \ MSSQL \ Log \ log_12.trc’, mặc định)

ĐI

CHỌN

DatabaseID

, DatabaseName

, LoginName

, HostName

, ApplicationName

, StartTime

, TRƯỜNG HỢP

WHEN EventClass =46 THÌ ‘Đã tạo cơ sở dữ liệu’

WHEN EventClass =47 THÌ 'Cơ sở dữ liệu bị loại bỏ'

KHÔNG ĐƯỢC ‘KHÔNG’

KẾT THÚC NHƯ EventType

TỪ tempdb.dbo.TraceTable

WHERE DatabaseName =‘MyTechMantra’

AND (EventClass =46 / * Lớp sự kiện 46 đề cập đến Đối tượng:Đã tạo * /

OR EventClass =47) / * Lớp sự kiện 47 đề cập đến Đối tượng:Đã xóa * /

ĐI

Kết thúc

Trong blog này, chúng tôi đã nhận thấy người ta có thể theo dõi cơ sở dữ liệu đã xóa trong SQL Server hiệu quả như thế nào với sự hỗ trợ của Báo cáo lịch sử thay đổi lược đồ SQL Server có sẵn hoặc bằng cách sử dụng tệp theo dõi mặc định. Hơn nữa, nếu các tệp cơ sở dữ liệu của bạn bị hỏng hoặc bị hỏng nặng thì để khôi phục các tệp cơ sở dữ liệu, chúng tôi khuyên bạn nên sử dụng công cụ của bên thứ ba, chẳng hạn như SQL Recovery Sofware.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Điều gì xảy ra với một giao dịch không được cam kết khi kết nối bị đóng?

  2. Bắt Hibernate và SQL Server để chơi tốt với VARCHAR và NVARCHAR

  3. Khi hiệu suất của Distinction và Group By khác nhau?

  4. Ngày truy xuất trong máy chủ sql, CURRENT_TIMESTAMP so với GetDate ()

  5. Xuất dữ liệu từ SQL Server sang Excel và tệp Văn bản thông qua gói SSIS