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


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

Область применения: SQL Server

В этом разделе описывается восстановление разностной резервной копии базы данных в SQL Server с помощью SQL Server Management Studio или Transact-SQL.

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

Перед началом

Ограничения

  • Инструкция RESTORE недопустима в явной или неявной транзакции.

  • Резервные копии, созданные более последней версией SQL Server, не могут быть восстановлены в более ранних версиях SQL Server.

  • В SQL Server можно восстановить пользовательную базу данных из резервной копии базы данных, созданной с помощью SQL Server 2005 (9.x) или более поздней версии.

Необходимые компоненты

  • Перед восстановлением базы данных в среде по модели полного восстановления или модели восстановления с неполным протоколированием необходимо выполнить резервное копирование активного журнала транзакций (который называется заключительным фрагментом журнала). Дополнительные сведения см. в разделе Создание резервной копии журнала транзакций (SQL Server).

Безопасность

Разрешения

Если восстанавливаемая база данных не существуют, для выполнения инструкции RESTORE у пользователя должны быть разрешения CREATE DATABASE. Если база данных существует, разрешения на выполнение инструкции RESTORE по умолчанию предоставлены членам предопределенных ролей сервера sysadmin и dbcreator , а также владельцу базы данных (dbo) (для параметра FROM DATABASE_SNAPSHOT база данных всегда существует).

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

Использование среды SQL Server Management Studio

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

  1. После подключения к соответствующему экземпляру ядро СУБД Microsoft SQL Server в обозреватель объектов щелкните имя сервера, чтобы развернуть дерево сервера.

  2. Разверните узел Базы данных. В зависимости от типа восстанавливаемой базы данных выберите пользовательскую базу данных или раскройте узел Системные базы данныхи выберите системную базу данных.

  3. Щелкните правой кнопкой мыши базу данных, выберите пункт Задачи, затем пункт Восстановитьи пункт База данных.

  4. Чтобы указать источник и расположение восстанавливаемых резервных наборов данных, используйте страницу Общие , раздел Источник . Выберите один из следующих параметров.

    • База данных

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

    Примечание.

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

    • Устройство

      Нажмите кнопку обзора (...), после чего откроется диалоговое окно Выбор устройств резервного копирования . В окне Тип носителя резервной копии выберите один из перечисленных типов устройств. Чтобы выбрать одно или несколько устройств в окне Носитель резервной копии , нажмите кнопку Добавить.

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

      В списке Источник: Устройство: База данных выберите имя базы данных, которую нужно восстановить.

      Примечание. Этот список доступен, только если выбрано Устройство . Будут выбраны только те базы данных, резервные копии которых доступны на выбранном устройстве.

  5. В разделе Назначение , в поле База данных автоматически появится имя базы данных для восстановления. Для изменения имени базы данных введите новое имя в окно База данных .

    Примечание.

    Для остановки восстановления на определенный момент времени выберите пункт Временная шкала и перейдите в диалоговое окно Временная шкала резервных копий . Сведения о том, как остановить восстановление базы данных в определенный момент времени, см. в статье "Восстановление базы данных SQL Server до точки во времени" (модель полного восстановления).

  6. В сетке Резервные наборы данных для восстановления выберите резервные копии, которые необходимо восстановить с помощью разностного восстановления.

    Сведения о столбцах в наборах резервных копий для восстановления сетки см. в разделе "Восстановление базы данных (общая страница)".

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

    • Перезаписать существующую базу данных (WITH REPLACE)

    • Сохранить параметры репликации (WITH KEEP_REPLICATION)

    • Выдавать приглашение перед восстановлением каждой резервной копии

    • Ограничить доступ к восстановленной базе данных (WITH RESTRICTED_USER)

    Дополнительные сведения об этих параметрах см. в разделе "Восстановление базы данных (страница параметров)".

  8. Выберите параметр в поле Состояние восстановления . В данном окне определяется состояние базы данных после операции восстановления.

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

    • СхемаRESTORE WITH NORECOVERY оставляет базу данных в нерабочем состоянии и не выполняет откат незафиксированных транзакций. Можно восстановить дополнительные журналы транзакций. База данных не может быть использована, пока не будет восстановлена.

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

    Описание параметров см. в разделе "Восстановление базы данных (страница параметров)".

  9. Если имеются активные соединения с базой данных, операции восстановления завершатся ошибкой. Проверьте параметр "Закрыть существующие подключения", чтобы убедиться, что все активные подключения между Management Studio и базой данных закрыты.

  10. Установите флажок Выдавать запрос перед восстановлением каждой резервной копии , если хотите отследить каждую операцию восстановления. Обычно это не требуется, за исключением случаев, если необходимо наблюдать за состоянием операции восстановления базы данных большого объема.

  11. По желанию можно использовать страницу Файлы для восстановления базы данных в новом расположении. Сведения о перемещении базы данных см. в статье "Восстановление базы данных в новое расположение" (SQL Server).

  12. Нажмите ОК.

Использование Transact-SQL

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

  1. Выполните инструкцию RESTORE DATABASE с предложением NORECOVERY, чтобы восстановить полную резервную копию базы данных, которая предшествует разностной резервной копии базы данных. Дополнительные сведения см. в статье Практическое руководство. Восстановление полной резервной копии.

  2. Выполните инструкцию RESTORE DATABASE для восстановления разностной резервной копии базы данных, указав:

    • имя базы данных, к которой будет применена разностная резервная копия;

    • устройство резервного копирования, с которого происходит восстановление разностной резервной копии базы данных;

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

  3. В модели полного восстановления или модели восстановления с неполным протоколированием разностная резервная копия восстанавливает базу данных на момент выполнения разностного резервного копирования. Чтобы восстановить данные на момент сбоя, следует применить все резервные копии журнала транзакций, созданные после создания последней разностной копии базы данных. Дополнительные сведения см. в разделе Применение резервных копий журналов транзакций (SQL Server).

Примеры (Transact-SQL)

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

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

-- Assume the database is lost, and restore full database,   
-- specifying the original full database backup and NORECOVERY,   
-- which allows subsequent restore operations to proceed.  
RESTORE DATABASE MyAdvWorks  
   FROM MyAdvWorks_1  
   WITH NORECOVERY;  
GO  
-- Now restore the differential database backup, the second backup on   
-- the MyAdvWorks_1 backup device.  
RESTORE DATABASE MyAdvWorks  
   FROM MyAdvWorks_1  
   WITH FILE = 2,  
   RECOVERY;  
GO  

B. Восстановление базы данных, разностной резервной копии базы данных и журнала транзакций

В этом примере показано восстановление базы данных, разностной резервной копии базы данных и резервной копии журнала транзакций базы данных MyAdvWorks .

-- Assume the database is lost at this point. Now restore the full   
-- database. Specify the original full database backup and NORECOVERY.  
-- NORECOVERY allows subsequent restore operations to proceed.  
RESTORE DATABASE MyAdvWorks  
   FROM MyAdvWorks_1  
   WITH NORECOVERY;  
GO  
-- Now restore the differential database backup, the second backup on   
-- the MyAdvWorks_1 backup device.  
RESTORE DATABASE MyAdvWorks  
   FROM MyAdvWorks_1  
   WITH FILE = 2,  
   NORECOVERY;  
GO  
-- Now restore each transaction log backup created after  
-- the differential database backup.  
RESTORE LOG MyAdvWorks  
   FROM MyAdvWorks_log1  
   WITH NORECOVERY;  
GO  
RESTORE LOG MyAdvWorks  
   FROM MyAdvWorks_log2  
   WITH RECOVERY;  
GO  

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

См. также

Разностные резервные копии (SQL Server)
RESTORE (Transact-SQL)