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


Как вернуть базу данных к моментальному снимку базы данных (Transact-SQL)

Изменения: 5 декабря 2005 г.

Моментальные снимки базы данных не являются избыточным хранилищем данных и поэтому не обеспечивают защиту от ошибок диска и других типов повреждения данных. Однако если в оперативном режиме пользователь допустит ошибку в базе данных, то ее можно вернуть к моментальному снимку базы данных, который предшествовал этой ошибке.

ms189281.note(ru-ru,SQL.90).gifВажно!
Создание регулярных резервных копий и тестирование плана восстановления необходимы для защиты базы данных. Если необходимо восстановить базу данных-источник на момент времени, в который был создан моментальный снимок базы данных, реализуйте политику резервного копирования, позволяющую это делать.

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

ms189281.note(ru-ru,SQL.90).gifВажно!
Перед тем как выполнить возврат, необходимо ознакомиться со сведениями в разделе Возврат к моментальному снимку базы данных.

Восстановление базы данных до состояния, сохраненного в моментальном снимке

  1. Выберите моментальный снимок базы данных, до которого ее необходимо восстановить. Просмотреть список моментальных снимков базы данных можно в среде SQL Server Management Studio (см. раздел Как просмотреть моментальный снимок базы данных (среда SQL Server Management Studio)). Также исходную базу данных представления можно задать с помощью столбца source_database_id представления каталога sys.databases (Transact-SQL).

  2. Удалите другие моментальные снимки.

    Дополнительные сведения об удалении снимков см. в разделе Как удалить моментальный снимок базы данных (Transact-SQL). Если база данных использует полную модель восстановления, перед тем как выполнять возврат, следует создать резервную копию журнала. Дополнительные сведения см. в разделе Как создать резервную копию журнала транзакций (среда SQL Server Management Studio) или Как создать резервную копию журнала транзакций при повреждении базы данных (Transact-SQL).

  3. Выполните операцию восстановления.

    Чтобы выполнить операцию восстановления базы данных-источника, необходимо обладать разрешением RESTORE DATABASE. Чтобы восстановить базу данных, необходимо ввести следующую инструкцию Transact-SQL.

    RESTORE DATABASE <имя_базы_данных> FROM DATABASE_SNAPSHOT =<имя_моментального_снимка_базы_данных>

    Параметр <имя_базы_данных> представляет базу данных-источник, а параметр <имя_моментального_снимка_базы_данных> задает имя моментального снимка базы данных, до которого необходимо восстановить базу данных. Обратите внимание на то, что в данной инструкции необходимо задавать имя моментального снимка, а не устройство резервного копирования.

    Дополнительные сведения см. в разделе RESTORE (Transact-SQL).

    ms189281.note(ru-ru,SQL.90).gifПримечание.
    В процессе выполнения операции восстановления моментальный снимок и база данных-источник являются недоступными. База данных-источник и моментальный снимок помечаются как «Восстанавливаемый». В случае возникновения ошибки в процессе восстановления система попытается продолжить его при следующем запуске базы данных.
  4. В случае смены владельца базы данных после создания ее моментального снимка, возможно, понадобится обновить соответствующую информацию после восстановления.

    ms189281.note(ru-ru,SQL.90).gifПримечание.
    После восстановления в базе данных сохраняются разрешения и настройки (например, модель восстановления и сведения о владельце базы данных) моментального снимка базы данных.
  5. Запустите базу данных.

  6. Кроме того, можно создать резервную копию восстанавливаемой базы данных, особенно если в ней используется полная модель восстановления или модель восстановления с неполным протоколированием. Сведения о резервном копировании базы данных см. в разделе Как создать резервную копию базы данных (среда SQL Server Management Studio) или Как создать полную резервную копию базы данных (Transact-SQL).

Пример

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

А. Восстановление базы данных AdventureWorks до состояния моментального снимка

В этом примере предполагается наличие единственного моментального снимка базы данных AdventureWorks. Пример, с помощью которого создается моментальный снимок, используемый в данном примере, приведен в разделе Как создать моментальный снимок базы данных (Transact-SQL).

USE master;
-- Reverting AdventureWorks to AdventureWorks_dbss1800
RESTORE DATABASE AdventureWorks from 
DATABASE_SNAPSHOT = 'AdventureWorks_dbss1800';
GO
Б. Восстановление базы данных Sales до состояния моментального снимка

В этом примере возврата предполагается наличие двух моментальных снимков базы данных Sales: sales_snapshot0600 и sales_snapshot1200. В примере происходит удаление более раннего моментального снимка, и база данных восстанавливается до состояния более позднего моментального снимка.

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

  • Сведения о создании базы данных Sales и моментального снимка sales_snapshot0600 см. в подразделах «Создание баз данных с файловыми группами» и «Создание моментального снимка базы данных» раздела CREATE DATABASE (Transact-SQL).
  • Сведения о создании моментального снимка sales_snapshot1200 см. в подразделе «Создание моментального снимка базы данных Sales» раздела Как создать моментальный снимок базы данных (Transact-SQL).
--Test to see if sales_snapshot0600 exists and if it 
-- does, delete it.
IF EXISTS (SELECT dbid FROM sys.databases
    WHERE NAME='sales_snapshot0600')
    DROP DATABASE SalesSnapshot0600;
GO
-- Reverting Sales to sales_snapshot1200
USE master;
RESTORE DATABASE Sales FROM DATABASE_SNAPSHOT = 'sales_snapshot1200';
GO

См. также

Задачи

Как создать моментальный снимок базы данных (Transact-SQL)
Как удалить моментальный снимок базы данных (Transact-SQL)
Как просмотреть моментальный снимок базы данных (среда SQL Server Management Studio)

Основные понятия

Как работают моментальные снимки базы данных
Зеркальное отображение и моментальные снимки баз данных

Другие ресурсы

RESTORE (Transact-SQL)
Учебник по среде SQL Server Management Studio
sys.databases (Transact-SQL)

Справка и поддержка

Получение помощи по SQL Server 2005