Sdílet prostřednictvím


Možné chyby médií během zálohování a obnovení (SQL Server)

platí pro:SQL Server

SQL Server nabízí možnost obnovení databáze i přes zjištěné chyby. Důležitým novým mechanismem detekce chyb je volitelné vytvoření kontrolního součtu zálohování, které může vytvořit operace zálohování a ověřit ji operace obnovení. Můžete určit, jestli operace kontroluje chyby a jestli se operace zastaví nebo pokračuje při výskytu chyby. Pokud záloha obsahuje kontrolní součet zálohování, můžou příkazy RESTORE a RESTORE VERIFYONLY kontrolovat chyby.

Poznámka:

Zrcadlené zálohy poskytují až čtyři kopie (zrcadla) mediální sady a poskytují alternativní kopie pro zotavení z chyb způsobených poškozeným médiem. Další informace naleznete v tématu Zrcadlené Zálohovací Sady Médií (SQL Server).

Kontrolní součty zálohování

SQL Server podporuje tři typy kontrolních součtů: kontrolní součet na stránkách, kontrolní součet v blocích protokolu a záložní kontrolní součet. Při generování kontrolního součtu zálohování služba BACKUP ověří, že data načtená z databáze jsou konzistentní s jakýmkoli kontrolním součtem nebo označením roztržené stránky, které se nachází v databázi.

Příkaz BACKUP volitelně vypočítá kontrolní součet zálohování v zálohovacím streamu; pokud jsou na dané stránce k dispozici informace o kontrolním součtu nebo roztrhané stránce, příkaz BACKUP také při zálohování stránky ověří stav kontrolního součtu, stav roztrhané stránky a ID stránky. Při vytváření záložního kontrolního součtu operace zálohování nepřidá žádné kontrolní součty na stránky. Stránky se zálohují tak, jak existují v databázi, a stránky jsou nezměněné zálohováním.

Vzhledem k zátěži, která vzniká při ověřování a generování kontrolních součtů zálohování, může jejich použití potenciálně ovlivnit výkon. Může to mít vliv na úlohu i propustnost zálohování. Proto je použití kontrolních součtů pro zálohování volitelné. Při rozhodování o generování kontrolních součtů během zálohování pečlivě monitorujte režijní náklady na procesor a dopad na všechny souběžné úlohy v systému.

Funkce BACKUP nikdy neupravuje zdrojovou stránku na disku ani obsah stránky.

Pokud jsou povoleny kontrolní součty zálohování, provede operace zálohování následující kroky:

  1. Před zápisem stránky na záložní médium operace zálohování ověří informace na úrovni stránky (kontrolní součet stránky nebo detekce roztržených stránek), pokud existují. Pokud ani jedno neexistuje, zálohování nemůže ověřit stránku. Neověřené stránky jsou zahrnuty tak, jak jsou, a jejich obsah se přidá do celkového kontrolního součtu zálohování.

    Pokud při ověřování dojde k chybě stránky, zálohování selže.

    Poznámka:

    Další informace o kontrolních součtech stránek a detekci roztržených stránek najdete v možnosti PAGE_VERIFY příkazu ALTER DATABASE. Další informace naleznete v části ALTER DATABASE SET Options (Transact-SQL).

  2. Bez ohledu na to, jestli existují kontrolní součty stránek, služba BACKUP vygeneruje pro datové proudy zálohování samostatný kontrolní součet zálohování. Operace obnovení můžou volitelně použít kontrolní součet zálohování k ověření, že zálohování není poškozené. Kontrolní součet zálohování je uložený na záložním médiu, ne na databázových stránkách. Kontrolní součet zálohování lze volitelně použít v době obnovení.

  3. Sada záloh je označena jako obsahující kontrolní součty zálohování (ve sloupci has_backup_checksumsmsdb..backupset). Další informace najdete v backupset (Transact-SQL).

Pokud jsou na záložním médiu během operace obnovení přítomny kontrolní součty zálohování, příkazy RESTORE a RESTORE VERIFYONLY ve výchozím nastavení ověřují jak kontrolní součty zálohování, tak kontrolní součty stránky. Pokud neexistuje žádný kontrolní součet zálohy, operace obnovení pokračuje bez ověření; je to proto, že bez kontrolního součtu zálohy nemůže obnovení spolehlivě ověřit kontrolní součty stránky.

Odpověď na chyby kontrolního součtu stránky během operace zálohování nebo obnovení

Ve výchozím nastavení se po výskytu chyby kontrolního součtu stránky operace ZÁLOHOVÁNÍ nebo OBNOVENÍ nezdaří a operace RESTORE VERIFYONLY pokračuje. Můžete ale určit, jestli daná operace selže při výskytu chyby, nebo pokračovat, jak nejlépe to jde.

Pokud operace BACKUP pokračuje po výskytu chyb, provede operace následující kroky:

  1. Označí zálohovací sadu na záložním médiu jako obsahující chyby a sleduje stránku v tabulce suspect_pages v databázi msdb. Další informace naleznete v tématu suspect_pages (Transact-SQL).

  2. Zaznamená chybu do protokolu chyb SQL Serveru.

  3. Označí záložní sadu, že obsahuje tento typ chyby (ve sloupci is_damagedmsdb..backupset). Pro více informací, viz backupset (Transact-SQL).

  4. Vydá zprávu, že zálohování bylo úspěšně vygenerováno, ale obsahuje chyby stránky.

Související úkoly

Povolení nebo zakázání kontrolních součtů zálohování

Řízení odpovědi na chybu během operace zálohování

Viz také

ALTER DATABASE (Transact-SQL)
BACKUP (Transact-SQL)
backupset (Transact-SQL)
Zrcadlené sady zálohovacích médií (SQL Server)
OBNOVIT (Transact-SQL)
RESTORE VERIFYONLY (Transact-SQL)