(Wenn jemand einen Weg findet - von dem ich nicht glaube, dass er existiert, werde ich meine Antwort löschen :-))
Gibt es eine Möglichkeit festzustellen, ob ein Backup CDC-Daten enthält?
Ich glaube nicht, dass es eine Möglichkeit gibt, anhand eines Backups festzustellen, ob CDC aktiviert ist oder nicht.
Sie können höchstens wissen, ob die Datenbank an der Replikation beteiligt war (unter der Haube wird ein Protokollleser-Agent verwendet, der das Transaktionsprotokoll durchsucht) oder nicht, indem Sie DatabaseBackupLSN als Ergebnis von RESTORE HEADERONLY
DatabaseBackupLSN verwenden, ebenso wie den „Beginn des Prüfpunkts“, der beim Sichern ausgelöst wird beginnt. Diese LSN stimmt überein, FirstLSN
wenn die Sicherung durchgeführt wird, wenn die Datenbank inaktiv ist und keine Replikation konfiguriert ist.
Ich gehe davon aus, dass der Grund, warum Microsoft nicht auftaucht, ob CDC aktiviert ist oder nicht, auch eine Sicherheitssache sein könnte. CDC ist eine Technologie auf Unternehmensebene, mit der Änderungen bis zur Spaltenebene verfolgt werden können. Dies ist durch Vorschriften wie HIPAA, FISMA usw. vorgeschrieben.
Vom Wiederherstellen oder Anhängen einer Datenbank, die für die Datenerfassung zum Ändern aktiviert ist
SQL Server verwendet die folgende Logik, um zu bestimmen, ob die Erfassung von Änderungsdaten nach der Wiederherstellung oder dem Anhängen einer Datenbank aktiviert bleibt:
- Wenn eine Datenbank auf demselben Server mit demselben Datenbanknamen wiederhergestellt wird, bleibt die Änderungsdatenerfassung aktiviert.
- Wenn eine Datenbank auf einem anderen Server wiederhergestellt wird, ist die Erfassung von Änderungsdaten standardmäßig deaktiviert und alle zugehörigen Metadaten werden gelöscht.
- Verwenden Sie beim Wiederherstellen der Datenbank die Option KEEP_CDC, um die Erfassung von Änderungsdaten beizubehalten. Weitere Informationen zu dieser Option finden Sie unter RESTORE.
- Wenn eine Datenbank getrennt und an denselben Server oder einen anderen Server angeschlossen wird, bleibt die Änderungsdatenerfassung aktiviert.
- Wenn eine Datenbank mit der Option KEEP_CDC an eine andere Edition als Enterprise angehängt oder wiederhergestellt wird, wird der Vorgang blockiert, da für die Erfassung von Änderungsdaten SQL Server Enterprise erforderlich ist. Die Fehlermeldung 932 wird angezeigt:
SQL Server kann die Datenbank '%. * Ls' nicht laden, da die Erfassung von Änderungsdaten aktiviert ist. Die derzeit installierte Edition von SQL Server unterstützt die Erfassung von Änderungsdaten nicht. Deaktivieren Sie entweder die Erfassung von Änderungsdaten in der Datenbank mithilfe einer unterstützten Edition von SQL Server oder aktualisieren Sie die Instanz auf eine Instanz, die die Erfassung von Änderungsdaten unterstützt.