(jeśli ktoś znajdzie sposób - który, jak sądzę, nie istnieje, usunę moją odpowiedź :-))
Czy istnieje sposób ustalenia, czy kopia zapasowa zawiera dane CDC?
Nie sądzę, aby można było wiedzieć z kopii zapasowej, czy CDC jest włączony, czy nie.
Najbardziej możesz wiedzieć, czy baza danych była zaangażowana w replikację (pod maską używa agenta czytnika dziennika, który skanuje dziennik transakcji), czy nie, używając DatabaseBackupLSN w wyniku RESTORE HEADERONLY
DatabaseBackupLSN, ponieważ jest to „początek punktu kontrolnego”, który jest uruchamiany podczas tworzenia kopii zapasowej zaczyna się. Ten FirstLSN
numer LSN zbiegnie się, jeśli kopia zapasowa zostanie wykonana, gdy baza danych jest bezczynna i nie skonfigurowano replikacji.
Zakładam, że powód, dla którego Microsoft nie ujawnia, czy CDC jest włączony, czy nie, może być również kwestią bezpieczeństwa. CDC to technologia na poziomie przedsiębiorstwa, która umożliwia śledzenie zmian aż do poziomu kolumny. Jest to wymagane przez przepisy takie jak HIPAA, FISMA itp.
Od przywracania lub dołączania bazy danych włączonej do zmiany przechwytywania danych
SQL Server używa następującej logiki, aby ustalić, czy przechwytywanie zmian danych pozostaje włączone po przywróceniu lub podłączeniu bazy danych:
- Jeśli baza danych zostanie przywrócona na tym samym serwerze o tej samej nazwie, zmiana przechwytywania danych pozostanie włączona.
- Jeśli baza danych zostanie przywrócona na innym serwerze, domyślnie przechwytywanie danych zmiany jest wyłączone, a wszystkie powiązane metadane są usuwane.
- Aby zachować przechwytywanie danych zmian, użyj opcji KEEP_CDC podczas przywracania bazy danych. Aby uzyskać więcej informacji o tej opcji, zobacz PRZYWRACANIE.
- Jeśli baza danych zostanie odłączona i podłączona do tego samego lub innego serwera, zmiana przechwytywania danych pozostanie włączona.
- Jeśli baza danych zostanie dołączona lub przywrócona z opcją KEEP_CDC do dowolnej edycji innej niż Enterprise, operacja zostanie zablokowana, ponieważ przechwytywanie zmian danych wymaga programu SQL Server Enterprise. Wyświetlany jest komunikat o błędzie 932:
Program SQL Server nie może załadować bazy danych „%. * Ls, ponieważ zmiana przechwytywania danych jest włączona. Aktualnie zainstalowana wersja programu SQL Server nie obsługuje przechwytywania zmian danych. Wyłącz przechwytywanie danych zmian w bazie danych za pomocą obsługiwanej wersji programu SQL Server lub uaktualnij instancję do wersji obsługującej przechwytywanie danych zmian.