(nếu ai đó tìm thấy một cách - mà tôi không nghĩ là tồn tại, tôi sẽ xóa câu trả lời của mình :-))
Có cách nào để xác định xem bản sao lưu có chứa dữ liệu CDC không?
Tôi không nghĩ rằng có bất kỳ cách nào để biết từ bản sao lưu, nếu CDC được kích hoạt hay không.
Hầu hết bạn có thể biết liệu cơ sở dữ liệu có liên quan đến sao chép hay không (dưới mui xe có sử dụng tác nhân đọc nhật ký quét Nhật ký giao dịch) hay không bằng cách sử dụng DatabaseBackupLSN trong kết quả của RESTORE HEADERONLY
DatabaseBackupLSN như là một điểm bắt đầu của điểm kiểm tra được kích hoạt khi sao lưu bắt đầu LSN này sẽ trùng với FirstLSN
nếu sao lưu được thực hiện khi cơ sở dữ liệu không hoạt động và không có bản sao được cấu hình.
Tôi giả sử lý do microsoft không thể biết liệu CDC có được kích hoạt hay không, cũng có thể là một điều bảo mật. CDC là một công nghệ cấp doanh nghiệp cho phép theo dõi các thay đổi cho đến cấp cột. Điều này được yêu cầu bởi các quy định như HIPAA, FISMA, v.v.
Từ khôi phục hoặc đính kèm cơ sở dữ liệu được kích hoạt để thu thập dữ liệu thay đổi
SQL Server sử dụng logic sau để xác định xem việc thay đổi dữ liệu có được bật hay không sau khi cơ sở dữ liệu được khôi phục hoặc đính kèm:
- Nếu một cơ sở dữ liệu được khôi phục vào cùng một máy chủ có cùng tên cơ sở dữ liệu, thay đổi thu thập dữ liệu vẫn được bật.
- Nếu cơ sở dữ liệu được khôi phục sang máy chủ khác, theo mặc định, dữ liệu thay đổi sẽ bị vô hiệu hóa và tất cả các siêu dữ liệu liên quan sẽ bị xóa.
- Để giữ lại thay đổi dữ liệu, hãy sử dụng tùy chọn KEEP_CDC khi khôi phục cơ sở dữ liệu. Để biết thêm thông tin về tùy chọn này, xem RESTORE.
- Nếu một cơ sở dữ liệu được tách ra và gắn vào cùng một máy chủ hoặc máy chủ khác, thay đổi thu thập dữ liệu vẫn được bật.
- Nếu cơ sở dữ liệu được đính kèm hoặc khôi phục với tùy chọn KEEP_CDC cho bất kỳ phiên bản nào ngoài Enterprise, hoạt động sẽ bị chặn vì thay đổi dữ liệu yêu cầu SQL Server Enterprise. Thông báo lỗi 932 được hiển thị:
Máy chủ SQL không thể tải cơ sở dữ liệu '%. * Ls' vì tính năng thay đổi dữ liệu được bật. Phiên bản SQL Server hiện được cài đặt không hỗ trợ chụp dữ liệu thay đổi. Hoặc vô hiệu hóa ghi dữ liệu thay đổi trong cơ sở dữ liệu bằng cách sử dụng phiên bản SQL Server được hỗ trợ hoặc nâng cấp phiên bản lên phiên bản hỗ trợ chụp dữ liệu thay đổi.