Dela via


Möjliga mediefel under säkerhetskopiering och återställning (SQL Server)

gäller för:SQL Server

SQL Server ger dig möjlighet att återställa en databas trots identifierade fel. En viktig ny mekanism för felidentifiering är det valfria skapandet av en kontrollsumma för säkerhetskopiering som kan skapas av en säkerhetskopieringsåtgärd och verifieras av en återställningsåtgärd. Du kan styra om en åtgärd söker efter fel och om åtgärden stoppas eller fortsätter att stöta på ett fel. Om en säkerhetskopia innehåller en kontrollsumma för säkerhetskopiering kan RESTORE- och RESTORE VERIFYONLY-instruktioner söka efter fel.

Anmärkning

Speglade säkerhetskopior ger upp till fyra kopior (speglar) av en medieuppsättning, vilket ger alternativa kopior för återställning från fel som orsakas av skadade medier. Mer information finns i Mirrored Backup Media Sets (SQL Server).

Kontrollsummor för säkerhetskopiering

SQL Server stöder tre typer av kontrollsummor: en kontrollsumma på sidor, en kontrollsumma i loggblock och en kontrollsumma för säkerhetskopiering. När du genererar en kontrollsumma för säkerhetskopiering kontrollerar BACKUP att de data som läses från databasen överensstämmer med alla kontrollsummor eller tornsidesindikering som finns i databasen.

Backup-instruktionen beräknar eventuellt en kontrollsumma för säkerhetskopiering på säkerhetskopieringsströmmen. Om information om sidkontrollsumma eller sönderriven sida finns på en viss sida verifierar BACKUP även kontrollsumman och den sönderriven sidans status och sid-ID för sidan när sidan säkerhetskopieras. När du skapar en kontrollsumma för säkerhetskopiering lägger en säkerhetskopieringsåtgärd inte till några kontrollsummor på sidor. Sidorna säkerhetskopieras eftersom de finns i databasen och sidorna är oförändrade genom säkerhetskopiering.

På grund av omkostnaderna för att verifiera och generera kontrollsummor för säkerhetskopiering innebär användning av kontrollsummor för säkerhetskopiering en potentiell prestandapåverkan. Både arbetsbelastningen och dataflödet för säkerhetskopiering kan påverkas. Därför är det valfritt att använda kontrollsummor vid säkerhetskopiering. När du bestämmer dig för att generera kontrollsummor under en säkerhetskopia bör du noggrant övervaka cpu-omkostnaderna samt påverkan på eventuella samtidiga arbetsbelastningar i systemet.

BACKUP ändrar aldrig källsidan på disken eller innehållet på en sida.

När kontrollsummor för säkerhetskopiering är aktiverade utförs följande steg under en säkerhetskopieringsoperation:

  1. Innan du skriver en sida till säkerhetskopieringsmediet verifierar säkerhetskopieringsåtgärden informationen på sidnivå (sidkontrollsumma eller identifiering av sönderriven sida) om det finns någon av dem. Om det inte finns någon av dem kan säkerhetskopieringen inte verifiera sidan. De overifierade sidorna inkluderas som de är, och deras innehåll läggs till i den övergripande kontrollsumman för säkerhetskopiering.

    Om säkerhetskopieringen påträffar ett sidfel under verifieringen misslyckas säkerhetskopieringen.

    Anmärkning

    Mer information om sidkontrollsummor och identifiering av skadade sidor finns i PAGE_VERIFY alternativet för ALTER DATABASE-instruktionen. Mer information finns i ALTER DATABASE SET Options (Transact-SQL).

  2. Oavsett om det finns sidkontrollsummor genererar BACKUP en separat kontrollsumma för säkerhetskopieringsströmmarna. Återställningsåtgärder kan också använda kontrollsumman för säkerhetskopiering för att verifiera att säkerhetskopieringen inte är skadad. Kontrollsumman för säkerhetskopiering lagras på säkerhetskopieringsmediet, inte på databassidorna. Kontrollsumman för säkerhetskopiering kan, om så önskas, användas vid återställningstillfället.

  3. Säkerhetskopieringsuppsättningen har markerats som innehållande kontrollsummor (i kolumnen has_backup_checksums i msdb..backupset). Mer information finns i backupset (Transact-SQL).

Om kontrollsummor för säkerhetskopiering finns på säkerhetskopieringsmediet under en återställningsåtgärd verifierar både RESTORE- och RESTORE VERIFYONLY-instruktionerna kontrollsummorna och sidkontrollsummorna som standard. Om det inte finns någon kontrollsumma för säkerhetskopiering fortsätter återställningsåtgärden utan verifiering. Detta beror på att återställningen inte kan verifiera sidkontrollsummor på ett tillförlitligt sätt utan en kontrollsumma för säkerhetskopiering.

Svar på sidkontrollsummafel under en säkerhetskopierings- eller återställningsåtgärd

Som standardinställning avbryts en BACKUP- eller RESTORE-operation efter att ett sidkontrollsummafel har uppstått, men RESTORE VERIFYONLY-operationen fortsätter. Du kan dock styra om en viss åtgärd misslyckas när ett fel uppstår eller fortsätter så gott det går.

Om en säkerhetskopieringsåtgärd fortsätter efter att det har uppstått fel utför åtgärden följande steg:

  1. Flaggar säkerhetskopieringen som angetts på säkerhetskopieringsmediet som innehåller fel och spårar sidan i tabellen suspect_pages i databasen msdb. Mer information finns i suspect_pages (Transact-SQL).

  2. Loggar felet i SQL Server-felloggen.

  3. Markerar säkerhetskopieringsuppsättningen som innehåller den här typen av fel (i kolumnen is_damaged i msdb.. backupset). Mer information finns i backupset (Transact-SQL).

  4. Visar ett meddelande om att säkerhetskopieringen har genererats framgångsrikt, men innehåller sidfel.

Relaterade uppgifter

Aktivera eller inaktivera kontrollsummor för säkerhetskopiering

Så här styr du svaret på ett fel under en säkerhetskopieringsåtgärd

Se även

ÄNDRA DATABAS (Transact-SQL)
Säkerhetskopiering (Transact-SQL)
säkerhetskopieringsuppsättning (Transact-SQL)
Mirrorerade säkerhetskopieringsmediesatser (SQL Server)
ÅTERSTÄLLA (Transact-SQL)
ÅTERSTÄLL ENDASTVERIFIERA (Transact-SQL)