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

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

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

Это важно

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

Замечание

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

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

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

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

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

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

Замечание

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

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

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

RESTORE DATABASE database_name FROM BACKUP_DEVICE [ WITH NORECOVERY ]

Замечание

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

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

ВОССТАНОВИТЬ БАЗУ ДАННЫХ database_name ИЗ backup_device С ВОССТАНОВЛЕНИЕМ

Пример (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)
Общие сведения о резервном копировании (SQL Server)
Обзор процессов восстановления (SQL Server)