Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:programu SQL Server
W tym temacie opisano sposób przywracania do punktu awarii. Temat dotyczy tylko baz danych korzystających z pełnych lub rejestrowanych zbiorczo modeli odzyskiwania.
Aby przywrócić do punktu niepowodzenia
Wykonaj kopię zapasową końcowej części dziennika, uruchamiając następującą podstawową instrukcję BACKUP:
BACKUP LOG <database_name> TO <backup_device> WITH NORECOVERY, NO_TRUNCATE;
Przywróć pełną kopię zapasową bazy danych, uruchamiając następującą podstawową instrukcję RESTORE DATABASE:
RESTORE DATABASE <database_name> FROM <backup_device> WITH NORECOVERY;
Opcjonalnie przywróć różnicową kopię zapasową bazy danych, uruchamiając następującą podstawową instrukcję RESTORE DATABASE:
RESTORE DATABASE <database_name> FROM <backup_device> WITH NORECOVERY;
Zastosuj każdy dziennik transakcji, w tym kopię zapasową dziennika końcowego utworzoną w kroku 1, określając wartość WITH NORECOVERY w instrukcji RESTORE LOG:
RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY;
Odzyskaj bazę danych, uruchamiając następującą instrukcję RESTORE DATABASE:
RESTORE DATABASE <database_name> WITH RECOVERY;
Przykład
Przed uruchomieniem przykładu należy wykonać następujące przygotowania:
Domyślny model odzyskiwania bazy danych
AdventureWorks2022
to prosty model odzyskiwania. Ponieważ ten model odzyskiwania nie obsługuje przywracania do punktu awarii, ustawAdventureWorks2022
na użycie pełnego modelu odzyskiwania, uruchamiając następującą instrukcję ALTER DATABASE:USE master; GO ALTER DATABASE AdventureWorks2022 SET RECOVERY FULL;
Utwórz pełną kopię zapasową bazy danych przy użyciu następującej instrukcji BACKUP.
BACKUP DATABASE AdventureWorks2022 TO DISK = 'C:\AdventureWorks2022_Data.bck';
Utwórz rutynową kopię zapasową dziennika:
BACKUP LOG AdventureWorks2022 TO DISK = 'C:\AdventureWorks2022_Log.bck';
Poniższy przykład przywraca utworzone wcześniej kopie zapasowe po utworzeniu kopii zapasowej dziennika końcowego bazy danych AdventureWorks2022
. (W tym kroku przyjęto założenie, że można uzyskać dostęp do dysku dziennika).
Najpierw przykład tworzy kopię zapasową dziennika końcowego bazy danych, która rejestruje bieżący dziennik i pozostawia bazę danych w stanie Przywracania. Następnie przykład przywraca kopię zapasową bazy danych, stosuje utworzoną wcześniej rutynową kopię zapasową dziennika i stosuje kopię zapasową dziennika końcowego. Na koniec przykład odzyskuje bazę danych w osobnym kroku.
Notatka
Domyślnym zachowaniem jest odzyskanie bazy danych w ramach instrukcji, która przywraca ostateczną kopię zapasową.
/* Example of restoring a to the point of failure */
-- Step 1: Create a tail-log backup by using WITH NORECOVERY.
BACKUP LOG AdventureWorks2022
TO DISK = 'C:\AdventureWorks2022_Log.bck'
WITH NORECOVERY;
GO
-- Step 2: Restore the full database backup.
RESTORE DATABASE AdventureWorks2022
FROM DISK = 'C:\AdventureWorks2022_Data.bck'
WITH NORECOVERY;
GO
-- Step 3: Restore the first transaction log backup.
RESTORE LOG AdventureWorks2022
FROM DISK = 'C:\AdventureWorks2022_Log.bck'
WITH NORECOVERY;
GO
-- Step 4: Restore the tail-log backup.
RESTORE LOG AdventureWorks2022
FROM DISK = 'C:\AdventureWorks2022_Log.bck'
WITH NORECOVERY;
GO
-- Step 5: Recover the database.
RESTORE DATABASE AdventureWorks2022
WITH RECOVERY;
GO