So automatisieren Sie DBCC CHECKDB nach einer Datenbankwiederherstellung

Warum DBCC CHECKDB ausführen?

DBCC CHECKDB überprüft die logische und physische Integrität aller Objekte in einer Datenbank und liefert Informationen über eventuelle Beschädigungen.

Da das Ausführen von DBCC CHECKDB eine ressourcenintensive Aufgabe ist, wird empfohlen, sie auf einem Produktionsserver auszuführen, wenn so wenig Datenverkehr wie möglich vorhanden ist, oder noch besser, da eine der Möglichkeiten, den DBCC CHECKDB-Prozess zu beschleunigen, darin besteht, die Arbeit auf einen anderen Server zu übertragen, indem ein Prozess automatisiert und CHECKDB nach einer Datenbankwiederherstellung ausgeführt wird. Als Backup-Prozess ist eine Kopie einer Datenbank und eine wiederhergestellte Datenbank wird genau das gleiche wie eine Online-Datenbank daher, wenn es irgendwelche Inkonsistenzen oder Probleme werden sie in der Sicherung sein, und in einer Wiederherstellung gefunden. Mit diesem Ansatz werden sowohl Wiederherstellungen getestet als auch Sicherungen überprüft, ohne dass dies Auswirkungen auf eine Produktionsdatenbank hat.

Das Ausführen von DBCC CHECKDB nach einer Wiederherstellung kann auch eine gute Praxis sein, wenn die Qualität eines Backups unbekannt ist.

In diesem Artikel beschreiben wir, wie Sie eine DBCC CHECKDB nach einer Datenbankwiederherstellung automatisieren, indem Sie DBCC CHECKDB nach einer Datenbankwiederherstellung mithilfe eines SQL Server Agent-Auftrags und von Wartungsplänen automatisieren.

So automatisieren Sie DBCC CHECKDB nach einer Datenbankwiederherstellung mithilfe eines SQL Server Agent-Auftrags

So automatisieren Sie DBCC CHECKDB nach einer Datenbankwiederherstellung mithilfe eines SQL Server Agent-Auftrags:

  1. Wählen Sie einen neuen Auftrag aus dem SQL Server Agent-Knoten ➜ Jobs
  2. Erstellen Sie einen ersten Schritt und geben Sie eine Datenbanksicherung an, die mithilfe des folgenden Skripts:

    RESTORE DATABASE AdventureWorks2014CheckDB FROM DISK = 'E:\EncBackup\AdventureWorks2014_Full_20150612_1916.bak' WITH RECOVERYGO

  3. Fügen Sie einen zweiten Schritt hinzu, um DBCC CHECKDB für eine wiederhergestellte Datenbank auszuführen, indem Sie das folgende T-SQL-Skript hinzufügen:

    DBCC CHECKDB (AdventureWorks2014CheckDB)

    Um verschiedene DBCC CHECKDB-Optionen zu verwenden, verwenden Sie die folgenden T-SQL-Skripte:

    Um Spaltenwerte zu überprüfen und zu überprüfen, ob Spaltenwerte außerhalb des Bereichs liegen:

    DBCC CHECKDB (AdventureWorks2014CheckDB) WITH DATA_PURITY

    Um unnötige:

    DBCC CHECKDB (AdventureWorks2014CheckDB) WITH NO_INFOMSGS

    Um indizierte Ansichten, räumliche und XML-Indizes zu überprüfen:

    DBCC CHECKDB (AdventureWorks2014CheckDB) WITH EXTENDED_LOGICAL_CHECKS

    Um nur die physische Struktur einer Datenbank zu überprüfen:

    DBCC CHECKDB (AdventureWorks2014CheckDB) WITH PHYSICAL_ONLY

    Um erzwingen der gemeinsamen Tabellensperre:

    DBCC CHECKDB (AdventureWorks2014CheckDB) WITH TABLOCK

    Diese Optionen können kombiniert werden, mit Ausnahme der Option WITH PHYSICAL_ONLY, die nicht mit einigen der Optionen kombiniert werden kann, die später in diesem Artikel erläutert werden.

  4. Planen Sie einen Job auf eine gewünschte Ausführungshäufigkeit.

Obwohl relativ einfach einzurichten mit einem SQL Server-Agent-Job für diese Operationen erfordert das Schreiben von T-SQL-Skripte und Kenntnisse der DBCC CHECKDB Optionen Syntax sowie ein Wissen über jede Option Funktionalität und Möglichkeiten der Kombination.

So automatisieren Sie DBCC CHECKDB nach einer Datenbankwiederherstellung mithilfe des Wartungsplans

Für diese Aktion können auch Wartungspläne verwendet werden. Obwohl die Symbolleiste Wartungspläne keine Wiederherstellungsaufgabe enthält, kann die T-SQL-Aufgabe verwendet werden.

So automatisieren Sie DBCC CHECKDB nach einer Datenbankwiederherstellung mithilfe von Wartungsplänen:

  1. Wählen Sie im Verwaltungsknoten im Objekt-Explorer unter Wartungspläne den neuen Wartungsplan aus
  2. Benennen Sie im Neuen Wartungsplan einen neuen Plan
  3. Wählen Sie in der Symbolleiste Wartungsplanaufgaben die Option T-SQL-Anweisungsaufgabe ausführen

  4. Doppelklicken Sie auf die Aufgabe und fügen Sie ein T-SQL-Skript ein:

  5. Fügen Sie die Aufgabe Datenbankintegrität prüfen aus der Symbolleiste Wartungsplan-Aufgaben hinzu:

  6. Doppelklicken Sie auf eine Aufgabe und wählen Sie eine Datenbank aus, für die die Aufgabe ausgeführt werden soll:

  7. Wenn ein Wartungsplan erstellt wird, planen Sie ihn als SQL Server Agent-Job ein:

Der Nachteil dieses Ansatzes, abgesehen davon, dass er komplizierter einzurichten ist, besteht darin, dass die Aufgabe „Datenbankintegrität prüfen“ derzeit nur die Indexprüfung als zusätzliche Option anbietet und eine vollständige DBCC CHECKDB-Prüfung durchführt.

Weitere Optionen werden in einer SQL Server 2016-Version hinzugefügt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.