Udostępnij za pośrednictwem


Możliwe błędy nośników podczas tworzenia kopii zapasowej i przywracania (SQL Server)

Dotyczy:programu SQL Server

Program SQL Server umożliwia odzyskanie bazy danych pomimo wykrytych błędów. Ważnym nowym mechanizmem wykrywania błędów jest opcjonalne utworzenie sumy kontrolnej kopii zapasowej, która może zostać utworzona przez operację tworzenia kopii zapasowej i zweryfikowana przez operację przywracania. Możesz kontrolować, czy operacja sprawdza błędy oraz czy zatrzymuje się, czy kontynuuje napotykając błąd. Jeśli kopia zapasowa zawiera sumę kontrolną, instrukcje RESTORE i RESTORE VERIFYONLY mogą sprawdzać błędy.

Uwaga

Dublowane kopie zapasowe zapewniają maksymalnie cztery kopie (dublowane) zestawu multimediów, zapewniając alternatywne kopie do odzyskiwania po błędach spowodowanych uszkodzonym nośnikiem. Aby uzyskać więcej informacji, zobacz lustrzane zestawy nośników kopii zapasowych (SQL Server).

Sumy kontrolne kopii zapasowej

Program SQL Server obsługuje trzy typy sum kontrolnych: sumę kontrolną na stronach, sumę kontrolną w blokach dziennika i sumę kontrolną kopii zapasowej. Podczas generowania sumy kontrolnej kopii zapasowej BACKUP sprawdza, czy dane odczytane z bazy danych są zgodne z dowolną sumą kontrolną lub rozdartej strony, które znajdują się w bazie danych.

Instrukcja BACKUP opcjonalnie oblicza sumę kontrolną na strumieniu kopii zapasowej; jeśli na danej stronie znajduje się suma kontrolna strony lub informacja o rozerwaniu strony, podczas tworzenia kopii zapasowej, BACKUP również weryfikuje sumę kontrolną, stan rozerwania strony oraz identyfikator strony. Podczas tworzenia sumy kontrolnej kopii zapasowej operacja tworzenia kopii zapasowej nie dodaje żadnych sum kontrolnych do stron. Kopie zapasowe stron są tworzone w miarę ich istnienia w bazie danych, a strony są niezmodyfikowane przez kopię zapasową.

Ze względu na obciążenie związane z weryfikowaniem i generowaniem sum kontrolnych kopii zapasowych użycie sum kontrolnych kopii zapasowych stanowi potencjalny wpływ na wydajność. Może to mieć wpływ zarówno na obciążenie, jak i przepływność kopii zapasowej. W związku z tym użycie sum kontrolnych kopii zapasowych jest opcjonalne. Podczas podejmowania decyzji o wygenerowaniu sum kontrolnych podczas tworzenia kopii zapasowej należy uważnie monitorować obciążenie procesora CPU, a także wpływ na każde współbieżne obciążenie systemu.

Kopia zapasowa nigdy nie modyfikuje strony źródłowej na dysku ani zawartości strony.

Gdy sumy kontrolne kopii zapasowych są włączone, operacja tworzenia kopii zapasowych wykonuje następujące kroki:

  1. Przed zapisaniem strony na nośniku kopii zapasowej operacja tworzenia kopii zapasowej weryfikuje informacje na poziomie strony (sumę kontrolną strony lub wykrywanie rozdartej strony), jeśli istnieje. Jeśli żadna z nich nie istnieje, kopia zapasowa nie może zweryfikować strony. Niezweryfikowane strony są dołączane w niezmienionej postaci, a ich zawartość jest dodawana do ogólnej sumy kontrolnej kopii zapasowej.

    Jeśli operacja tworzenia kopii zapasowej napotka błąd strony podczas weryfikacji, tworzenie kopii zapasowej zakończy się niepowodzeniem.

    Uwaga

    Aby uzyskać więcej informacji na temat sum kontrolnych stron i wykrywania rozdartych stron, zobacz opcję PAGE_VERIFY w instrukcji ALTER DATABASE. Aby uzyskać więcej informacji, zobacz ALTER DATABASE SET Options (Transact-SQL).

  2. Niezależnie od tego, czy sumy kontrolne stron są obecne, BACKUP generuje oddzielną sumę kontrolną dla strumieni kopii zapasowej. Operacje przywracania mogą opcjonalnie używać sumy kontrolnej kopii zapasowej, aby sprawdzić, czy kopia zapasowa nie jest uszkodzona. Suma kontrolna kopii zapasowej jest przechowywana na nośniku kopii zapasowej, a nie na stronach bazy danych. Sumę kontrolną kopii zapasowej można opcjonalnie użyć w czasie przywracania.

  3. Zestaw kopii zapasowych jest oznaczony jako zawierający sumy kontrolne kopii zapasowej (w kolumnie has_backup_checksumsmsdb.). Aby uzyskać więcej informacji, zobacz backupset (Transact-SQL).

Podczas operacji przywracania, jeśli sumy kontrolne kopii zapasowej znajdują się na nośniku kopii zapasowej, domyślnie zarówno instrukcje RESTORE, jak i RESTORE VERIFYONLY weryfikują sumy kontrolne kopii zapasowej i sumy kontrolne stron kopii zapasowej. Jeśli nie ma sumy kontrolnej kopii zapasowej, operacja przywracania może być kontynuowana bez żadnej weryfikacji. Jest to spowodowane tym, że bez sumy kontrolnej kopii zapasowej przywracanie nie może niezawodnie zweryfikować sum kontrolnych stron.

Reakcja na błędy sumy kontrolnej strony podczas operacji tworzenia kopii zapasowej lub odtwarzania

Domyślnie, jeśli wystąpi błąd sumy kontrolnej strony, operacja BACKUP lub RESTORE kończy się niepowodzeniem, a operacja RESTORE VERIFYONLY jest kontynuowana. Można jednak kontrolować, czy dana operacja kończy się niepowodzeniem w przypadku napotkania błędu, czy też kontynuować, jak to tylko możliwe.

Jeśli operacja TWORZENIA kopii zapasowej będzie kontynuowana po wystąpieniu błędów, operacja wykonuje następujące czynności:

  1. Oznacza zestaw kopii zapasowych na nośniku kopii zapasowej jako zawierający błędy i śledzi stronę w tabeli suspect_pages w bazie danych msdb. Aby uzyskać więcej informacji, zobacz suspect_pages (Transact-SQL).

  2. Rejestruje błąd w dzienniku błędów programu SQL Server.

  3. Oznacza zestaw kopii zapasowych jako zawierający ten typ błędu (w kolumnie is_damaged bazy danych msdb..backupset). Aby uzyskać więcej informacji, zobacz backupset (Transact-SQL).

  4. Generuje komunikat informujący o pomyślnym wygenerowaniu kopii zapasowej, ale zawiera błędy strony.

Powiązane zadania

Aby włączyć lub wyłączyć sumy kontrolne kopii zapasowej

Aby kontrolować odpowiedź na błąd podczas operacji tworzenia kopii zapasowej

Zobacz też

ALTER DATABASE (Transact-SQL)
Kopia zapasowa (Transact-SQL)
zestaw kopii zapasowych (Transact-SQL)
Zestawy zwierciadlanych nośników kopii zapasowych (SQL Server)
PRZYWRÓĆ (Transact-SQL)
RESTORE VERIFYONLY (Transact-SQL)