Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:SQL Server
В этом подразделе описывается восстановление до точки сбоя. Сведения в этом разделе относятся только к тем базам данных, которые используют модель полного восстановления или модель восстановления с неполным протоколированием.
Восстановить до точки сбоя
Создайте резервную копию хвоста журнала, выполнив следующую базовую BACKUP инструкцию:
BACKUP LOG <database_name> TO <backup_device> WITH NORECOVERY, NO_TRUNCATE;Восстановите полную резервную копию базы данных, выполнив следующую базовую RESTORE DATABASE инструкцию:
RESTORE DATABASE <database_name> FROM <backup_device> WITH NORECOVERY;При необходимости восстановите разностную резервную копию базы данных, выполнив следующую базовую RESTOREDATABASE инструкцию:
RESTORE DATABASE <database_name> FROM <backup_device> WITH NORECOVERY;Примените каждый журнал транзакций, включая резервную копию tail-log, созданную на шаге 1, указав WITH NORECOVERY в инструкции RESTORE LOG:
RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY;Восстановите базу данных, выполнив следующую RESTOREDATABASE инструкцию:
RESTORE DATABASE <database_name> WITH RECOVERY;
Пример
Перед запуском этого примера необходимо завершить следующие подготовительные действия.
По умолчанию, база данных
AdventureWorks2025имеет простую модель восстановления. Так как эта модель восстановления не поддерживает восстановление до точки сбоя, установитеAdventureWorks2025для использования модели полного восстановления, выполнив следующую ALTER DATABASE инструкцию:USE master; GO ALTER DATABASE AdventureWorks2022 SET RECOVERY FULL;Создайте полную резервную копию базы данных с помощью следующей BACKUP инструкции:
BACKUP DATABASE AdventureWorks2022 TO DISK = 'C:\AdventureWorks2022_Data.bck';Создайте резервную копию журналов:
BACKUP LOG AdventureWorks2022 TO DISK = 'C:\AdventureWorks2022_Log.bck';
В следующем примере создается резервная копия заключительного фрагмента журнала базы данных AdventureWorks2025, после чего восстанавливаются ранее созданные резервные копии. (на этом шаге предполагается, что имеется доступ к диску, на котором хранятся журналы).
Вначале создается резервная копия заключительного фрагмента журнала базы данных, которая захватывает активный журнал и оставляет базу данных в состоянии восстановления. После этого в данном примере производится восстановление резервной копии базы данных, применяется раннее созданная процедура резервного копирования журналов и создается резервная копия заключительного фрагмента журнала. Наконец, отдельным шагом производится восстановление базы данных.
Примечание.
По умолчанию выполняется восстановление базы данных в рамках инструкции, которая осуществляет восстановление окончательной резервной копии.
/* 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