Udostępnij za pośrednictwem


Best Practices for Recovering a Database to a Specific Recovery Point

W tym temacie ma zastosowanie tylko w przypadku baz danych, korzystające z modelu odzyskiwanie Pełny lub jest rejestrowane zbiorczej.

W tym temacie przedstawiono niektóre z najważniejszych wskazówek Przywracanie bazy danych do określonego punkt odzyskiwanie.

Za pomocą STANDBY do punktu nieznane Znajdź czas

Czasami potrzeba przywrócenia bazy danych do określonego punkt odzyskiwanie, ale nie znasz czas miejsce docelowe, LSN lub oznaczona transakcja ewentualne.One solution is to incrementally roll forward the primary data file and, optionally, other data files by specifying WITH STANDBY **=**standby_file_name instead of WITH RECOVERY.Za pomocą opcji STANDBY odzyskuje bazy danych, aby uzyskać dostęp tylko do odczytu.Dzięki temu można odczytać bazy danych i Znajdź punkt - w-czas informacje, które mają być.Wstrzymania plików pozwala cofnąć skutki procesu odzyskiwanie przypadek, gdy baza danych jest wycofywany do przodu poza punkt docelowy - w-czas.Jeśli baza danych nie została jeszcze osiągnięta punktu docelowego w czas, można przywrócić kopie zapasowe następujących po sobie dziennika za pomocą WITH oczekiwania, określając tego samego pliku wstrzymania w każdej instrukcja przywracanie.

Po zidentyfikowaniu punktu docelowego odzyskiwanie może kręć do przodu ponownie do tego punktu w czas.Na osiągnięcie docelowego punktu w czas, przywracanie częściowej bazy danych za pomocą opcji przywrócenia.Pozostałe pliki, można następnie przywrócone i odzyskać być zgodne z bazy danych.Po przywróceniu ostatniej przywracanie zapełnienie dziennika przywracanie pierwszego dziennika po docelowym punkt odzyskiwanie.

Aby uzyskać więcej informacji na temat opcji STANDBY zobacz RESTORE Arguments (Transact-SQL).

Określa czas wcześniej w kolejności, Przywracanie

Sekwencja przywracanie składa się z jednego lub kilku operacji przywracanie przenoszenia danych za pośrednictwem jednego lub większej liczby fazy przywracanie.Więcej informacji, że podane przez użytkownika o zamiarów sekwencji, tym mniej prawdopodobne jest mają wystąpić błędy, które może wymagać uruchamiania za pośrednictwem.Punkt - w-czas przywrócić, SQL Server Database Engine na podstawie informacji określonych w momencie rozpoczęcia (i w czasie) sekwencji przywracanie do identyfikacji punktu - w-czas cel przywracanie. Jeśli zaczekasz zbyt długo w sekwencji sekwencji nie powiedzie się.Należy podać informacje stop na tyle wcześnie w sekwencja przywracanie, aby upewnić się, że przywracanie nie wykracza poza gracza punktu w czasie.

Jeśli zamierzasz przy danej punkt odzyskiwanie, powinny przekazywać tego zamiaru na każdej instrukcja dziennik przywracanie (przy użyciu STOPAT, STOPBEFOREMARK lub STOPATMARK), wraz z opcją przywrócenia.Po opcji przywrócenia i STOPAT są używane razem, jeśli kopia zapasowa dziennik transakcji nie zawiera żądanego czasu (na przykład, jeśli jest określony czas po upływie czasu, dziennik transakcji), generowane jest ostrzeżenie i unrecovered pozostaje w bazie danych.Po osiągnięciu punktu odzyskiwanie bazy danych zostanie odzyskanych, a nie powiedzie się próba przywrócenia innej kopia zapasowa dziennika.Za pomocą opcji przywrócenia i STOPAT ze sobą podczas przywracanie kopia zapasowa dziennika dziennika daje pewność, że nie przywracanie dziennika kiedykolwiek wykracza poza czas zatrzymania.

Important noteImportant Note:

Jeżeli sekwencja częściowe przywracanie wyklucza jedną FILESTREAM grupa plików, punkt - w-czas przywracanie nie jest obsługiwana.Można wymusić sekwencja przywracanie, aby kontynuować.Jednak filegroups FILESTREAM, które zostały pominięte z instrukcja przywracanie nigdy nie mogą być przywracane.Aby wymusić przywracanie punktu w czasie, należy określić opcję CONTINUE_AFTER_ERROR wraz z opcją STOPAT, STOPATMARK lub STOPBEFOREMARK, które należy również określić w sieci kolejne instrukcje przywracanie dziennik.Jeśli określisz CONTINUE_AFTER_ERROR sekwencji częściowe przywracanie kończy się powodzeniem, i grupa plików FILESTREAM staje się nieodwracalny.

Przykład: Przywracanie punktów czas

W poniższym przykładzie sekwencja przywracanie rozpoczyna się, aby zadeklarować zamiar zatrzymać w danej godziny po zastosowaniu pierwszej kopia zapasowa dziennika dziennika.W tym przykładzie czas zatrzymania w występuje w pierwszej kopia zapasowa dziennika dziennika po różnicowa kopia zapasowa.

RESTORE DATABASE database_name FROM full_backup 
    WITH NORECOVERY;
RESTORE DATABASE database_name FROM full_differential_backup 
    WITH NORECOVERY;
RESTORE LOG database_name FROM log_backup 
    WITH STOPAT = time, RECOVERY;
RESTORE LOG database_name FROM log_backup 
    WITH STOPAT = time, RECOVERY;

Czy przywracanie określony dziennik powiedzie się, czy zależy czas jest w danym okresie przechwycone przez kopia zapasowa dziennika dziennika zgodnie z opisem w poniższej tabela.

Relacje między czas przedziału przechwycone przez kopia zapasowa dziennika dziennika:

Efekt

czas jest wcześniejsza niż interwał.

Przywracanie nie powiedzie się i pojawia się nie przenieść na przyszły okres.

czas się w przedziale.

Ostatni przywracanie kończy się powodzeniem i w bazie danych zostanie odzyskanych.

czas jest interwał.

przenieść na przyszły okres zakończy się pomyślnie, ale w bazie danych nie jest odzyskiwane, ponieważ czas nie została jeszcze osiągnięta.

Zadeklarować punktu zatrzymywanie na co późniejsze instrukcja przywracanie

Punkt zatrzymania jest specyficzny dla instrukcja, które określa opcja STOPAT, STOPBEFOREMARK lub STOPATMARK.Jeżeli pominięto tę opcję z instrukcja przywracanie pełnej kopia zapasowa zostanie przywrócona.

Jako punktu w czasie przywracanie będzie postępować w sekwencji, można zmienić punkt odzyskiwanie przez podanie nowej wartości czas, przy założeniu, że w bazie danych nie zostały jeszcze udał poza nowe czas.

Uwaga

Opcje STOPBEFOREMARK i STOPATMARK mieć dwa parametry mark_name i lsn_number. The mark_name parameter, which identifies a transaction mark in a kopia zapasowa dziennika, is supported only in przywracanie LOG statements. The lsn_number parameter, which specifies a numer sekwencyjny dziennika, is supported in both przywracanie DATABASE statements and przywracanie LOG statements.