Полное восстановление базы данных (простая модель восстановления)

Применимо к:SQL Server

Задача полного восстановления — восстановить базу данных целиком. В период восстановления база данных находится вне сети. Прежде чем какая-либо часть базы данных перейдет в режим «в сети», все данные восстанавливаются до точки согласования, в которой все части базы данных находятся в одном и том же моменте времени и в которой нет незафиксированных транзакций.

При использовании простой модели восстановления база данных не может быть восстановлена к определенному моменту времени внутри заданной резервной копии.

Внимание

Не рекомендуется подключать или восстанавливать базы данных, полученные из неизвестных или ненадежных источников. Эти базы данных могут содержать вредоносный код, который может выполнять непреднамеренный код Transact-SQL или вызвать ошибки, изменив схему или физическую структуру базы данных. Перед тем как использовать базу данных, полученную из неизвестного или ненадежного источника, выполните на тестовом сервере инструкцию DBCC CHECKDB для этой базы данных, а также изучите исходный код в базе данных, например хранимые процедуры и другой пользовательский код.

В этом разделе.

Заметка

Сведения о поддержке резервных копий более ранних версий SQL Server см. в подразделе "Поддержка совместимости" раздела RESTORE (Transact-SQL).

Общие сведения о восстановлении баз данных в рамках простой модели восстановления

Полное восстановление базы данных при использовании простой модели восстановления состоит из одной или двух инструкций RESTORE , в зависимости от того, нужно ли выполнять восстановление разностной резервной копии базы данных. При использовании только полной резервной копии базы данных просто восстановите последнюю резервную копию, как показано на следующем рисунке.

Restoring only a full database backup

Если используется также восстановление разностной резервной копии базы данных, восстановите самую последнюю полную резервную копию базы данных без восстановления самой базы данных, а затем восстановите самую последнюю разностную резервную копию базы данных и восстановите саму базу данных. На следующем рисунке показан этот процесс.

Restoring full and differential database backups

Заметка

Если база данных восстанавливается на другой экземпляр сервера, см. раздел Копирование баз данных путем создания и восстановления резервных копий.

Базовый синтаксис инструкции Transact-SQL RESTORE

Базовый синтаксис Transact-SQLRESTORE для восстановления полной резервной копии базы данных:

RESTORE DATABASE имя_базы_данных FROM устройство_резервного_копирования [ WITH NORECOVERY ]

Заметка

Если планируется также восстановление разностной резервной копии базы данных, используйте параметр WITH NORECOVERY.

Базовый синтаксис инструкции RESTORE восстановления из резервной копии базы данных:

RESTORE DATABASE имя_базы_данных FROM устройство_резервного_копирования WITH RECOVERY

Пример (Transact-SQL)

В следующем примере сначала показано, как использовать инструкцию BACKUP , чтобы создать полную резервную копию базы данных и разностную резервную копию базы данных AdventureWorks2022 . Затем в примере восстанавливаются резервные копии в последовательности восстановления. База данных восстанавливается к состоянию на момент создания разностной резервной копии базы данных.

В примере показаны критически важные параметры в последовательности восстановления для полного восстановления базы данных. Последовательность восстановления состоит из одной или нескольких операций восстановления, которые выполняют перемещение данных в одном или нескольких этапах восстановления. Синтаксис и прочие подробности, несущественные для данной цели, опущены. При восстановлении базы данных рекомендуется явно указать параметр RECOVERY, несмотря на то, что он подразумевается по умолчанию.

Заметка

Пример начинается с инструкции ALTER DATABASE , которая устанавливает модель восстановления SIMPLE.

USE master;  
--Make sure the database is using the simple recovery model.  
ALTER DATABASE AdventureWorks2022 SET RECOVERY SIMPLE;  
GO  
-- Back up the full AdventureWorks2022 database.  
BACKUP DATABASE AdventureWorks2022   
TO DISK = 'Z:\SQLServerBackups\AdventureWorks2022.bak'   
  WITH FORMAT;  
GO  
--Create a differential database backup.  
BACKUP DATABASE AdventureWorks2022   
TO DISK = 'Z:\SQLServerBackups\AdventureWorks2022.bak'  
   WITH DIFFERENTIAL;  
GO  
--Restore the full database backup (from backup set 1).  
RESTORE DATABASE AdventureWorks2022   
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2022.bak'   
   WITH FILE=1, NORECOVERY;  
--Restore the differential backup (from backup set 2).  
RESTORE DATABASE AdventureWorks2022   
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2022.bak'   
   WITH FILE=2, RECOVERY;  
GO  

Связанные задачи

Восстановление полной резервной копии базы данных

Восстановление разностной резервной копии базы данных

Восстановление резервной копии с помощью управляющих объектов SQL Server (SMO)

См. также

RESTORE (Transact-SQL)
BACKUP (Transact-SQL)
sp_addumpdevice (Transact-SQL)
Полные резервные копии баз данных (SQL Server)
Разностные резервные копии (SQL Server)
Общие сведения о резервном копировании (SQL Server)
Обзор процессов восстановления (SQL Server)