Поделиться через


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

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

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

Примечание по безопасностиПримечание по безопасности

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

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

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

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

ПримечаниеПримечание

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

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

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

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

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

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

ПримечаниеПримечание

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

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

Базовый синтаксис инструкции Transact-SQL RESTORE для восстановления полной базы данных выглядит следующим образом.

RESTORE DATABASE database_name FROM backup_device [ WITH NORECOVERY ]

ПримечаниеПримечание

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

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

RESTORE DATABASE database_name FROM backup_device 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)

Общие сведения о резервном копировании (SQL Server)

Обзор процессов восстановления (SQL Server)