hvorfor køre DBCC CHECKDB?
DBCC CHECKDB kontrollerer den logiske og fysiske integritet af alle objekter i en database og giver oplysninger om enhver korruption.
da udførelse af DBCC CHECKDB er en ressourceudtømmende opgave, anbefales det at køre det på en produktionsserver, når der er så mindre trafik som muligt, eller endnu bedre, da en af måderne til at fremskynde DBCC CHECKDB-processen er at overføre arbejdet til en anden server ved at automatisere en proces og køre CHECKDB efter en Databasegendannelse. Som en backup proces er en kopi af en database og en gendannet database vil være nøjagtig den samme som en online database derfor, hvis der var nogen uoverensstemmelser eller problemer, de vil være i backup, og findes i en gendannelse. Ved at bruge denne tilgang testes begge gendannelser, og sikkerhedskopier verificeres uden nogen indflydelse på en produktionsdatabase.
at køre DBCC CHECKDB efter en gendannelse kan også være en god praksis, hvis en backups kvalitet er ukendt.
i denne artikel beskriver vi, hvordan du automatiserer en DBCC-CHECKDB efter en Databasegendannelse ved at automatisere DBCC-CHECKDB efter en Databasegendannelse ved hjælp af en serveragent-job-og vedligeholdelsesplaner.
sådan automatiseres DBCC CHECKDB efter en Databasegendannelse ved hjælp af et Serveragentjob
for at automatisere DBCC CHECKDB efter en Databasegendannelse ved hjælp af SERVERAGENTAGENT:
- Vælg et nyt Job fra noden til serveragent, der skal gendannes
-
Opret et første trin, og angiv en databasebackup, der skal gendannes ved hjælp af følgende script:
RESTORE DATABASE AdventureWorks2014CheckDB FROM DISK = 'E:\EncBackup\AdventureWorks2014_Full_20150612_1916.bak' WITH RECOVERYGO
-
Tilføj et andet trin for at udføre DBCC CHECKDB på en gendannet database ved at tilføje følgende t-CCL script:
DBCC CHECKDB (AdventureWorks2014CheckDB)
for at bruge forskellige DBCC-kontroldb-indstillinger skal du bruge følgende t-CCL-scripts:
for at kontrollere kolonneværdier og for at kontrollere er der kolonneværdier, der er uden for rækkevidde:
DBCC CHECKDB (AdventureWorks2014CheckDB) WITH DATA_PURITY
for at dæmpe unødvendig information meddelelser:
DBCC CHECKDB (AdventureWorks2014CheckDB) WITH NO_INFOMSGS
for at kontrollere indekserede visninger, rumlige og indekser:
DBCC CHECKDB (AdventureWorks2014CheckDB) WITH EXTENDED_LOGICAL_CHECKS
for kun at kontrollere den fysiske struktur af en database:
DBCC CHECKDB (AdventureWorks2014CheckDB) WITH PHYSICAL_ONLY
for at håndhæve tabeldelet låsning:
DBCC CHECKDB (AdventureWorks2014CheckDB) WITH TABLOCK
disse indstillinger kan kombineres undtagen indstillingen med fysisk kun, der ikke kan kombineres med nogle af indstillingerne, som vil blive forklaret senere i denne artikel.
- Planlæg et job til en ønsket frekvens af udførelse.
selvom det er relativt let at konfigurere ved hjælp af et SERVERAGENTJOB til disse operationer, kræver det at skrive t-CCL-scripts og en viden om DBCC CHECKDB options syntaks samt en viden om hver valgfunktionalitet og muligheder for at kombinere.
sådan automatiseres DBCC CHECKDB efter en Databasegendannelse ved hjælp af Maintenance Plan
Maintenance Plans kan også bruges til at udføre denne handling. Selvom værktøjslinjen vedligeholdelsesplaner ikke indeholder en gendannelsesopgave, kan opgaven bruges.
sådan automatiseres DBCC CHECKDB efter en Databasegendannelse ved hjælp af vedligeholdelsesplaner:
- vælg den nye vedligeholdelsesplan
- i den nye vedligeholdelsesplan navngiv en ny plan
-
fra værktøjslinjen Vedligeholdelsesplanopgaver skal du vælge Udfør t-SEKL-Udsagnsopgave
-
dobbelt slick opgaven og indsæt et T-skl script:
-
tilføj tjek databaseintegritetsopgave fra værktøjslinjen vedligeholdelsesplanopgaver:
-
Dobbeltklik på en opgave, og vælg en database, der skal køre opgaven mod:
-
Når en vedligeholdelsesplan er oprettet, skal du planlægge det som et SERVERAGENTJOB:
ulempen ved denne tilgang udover at være mere kompliceret at konfigurere er, at check database integrity task i øjeblikket kun tilbyder indekser check som en ekstra mulighed og udfører en fuld DBCC checkdb check.
flere muligheder vil blive tilføjet i en server 2016 version.