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

Единственным способом создания моментального снимка базы данных является использование инструкций Transact-SQL. Моментальный снимок базы данных может создать любой пользователь, который может создать базу данных. Однако для создания моментального снимка зеркальной базы данных нужно входить в предопределенную роль сервера sysadmin.

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

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

Создание моментального снимка базы данных

  1. Убедитесь, что на диске достаточно места для размещения моментального снимка базы данных. При создании моментального снимка максимальный размер моментального снимка базы данных равен размеру базы данных-источника.

  2. Используйте инструкцию CREATE DATABASE для файлов с помощью предложения AS SNAPSHOT OF. Создание моментального снимка требует указания логического имени каждого файла базы данных-источника. Сведения о формальном описании синтаксиса создания моментального снимка базы данных см. в разделе CREATE DATABASE (Transact-SQL).

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

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

Пример

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

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

Этот пример создает моментальный снимок базы данных AdventureWorks. Имя моментального снимка AdventureWorks_dbss_1800 и имя файла его разреженного файла AdventureWorks_data_1800.ss указывают на время создания — 18:00.

CREATE DATABASE AdventureWorks_dbss1800 ON
( NAME = AdventureWorks_Data, FILENAME = 
'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Data\AdventureWorks_data_1800.ss' )
AS SNAPSHOT OF AdventureWorks;
GO
ПримечаниеПримечание

Расширение SS, использованное в примерах, выбрано произвольно.

Б. Создание моментального снимка базы данных Sales

Этот пример создает моментальный снимок sales_snapshot1200 базы данных Sales. Эта база данных была создана в примере «Создание базы данных, которая содержит файловые группы» в разделе CREATE DATABASE (Transact-SQL).

--Creating sales_snapshot1200 as snapshot of the
--Sales database:
CREATE DATABASE sales_snapshot1200 ON
( NAME = SPri1_dat, FILENAME = 
'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\data\SPri1dat_1200.ss'),
( NAME = SPri2_dat, FILENAME = 
'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\data\SPri2dt_1200.ss'),
( NAME = SGrp1Fi1_dat, FILENAME = 
'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\mssql\data\SG1Fi1dt_1200.ss'),
( NAME = SGrp1Fi2_dat, FILENAME = 
'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\data\SG1Fi2dt_1200.ss'),
( NAME = SGrp2Fi1_dat, FILENAME = 
'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\data\SG2Fi1dt_1200.ss'),
( NAME = SGrp2Fi2_dat, FILENAME = 
'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\data\SG2Fi2dt_1200.ss')
AS SNAPSHOT OF Sales
GO