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

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

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

Важно!

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

Примечание

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

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

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

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

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

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

Примечание

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

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

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

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

Примечание

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

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

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

Пример (Transact-SQL)

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

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

Примечание

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

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

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

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

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

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

См. также:

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