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

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

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

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

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

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

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

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

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

Пример

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

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

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

CREATE DATABASE AdventureWorks2008R2_dbss1800 ON
( NAME = AdventureWorks2008R2_Data, FILENAME = 
'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\AdventureWorks2008R2_data_1800.ss' )
AS SNAPSHOT OF AdventureWorks2008R2;
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_50.MSSQLSERVER\MSSQL\data\SPri1dat_1200.ss'),
( NAME = SPri2_dat, FILENAME = 
'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\data\SPri2dt_1200.ss'),
( NAME = SGrp1Fi1_dat, FILENAME = 
'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\mssql\data\SG1Fi1dt_1200.ss'),
( NAME = SGrp1Fi2_dat, FILENAME = 
'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\data\SG1Fi2dt_1200.ss'),
( NAME = SGrp2Fi1_dat, FILENAME = 
'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\data\SG2Fi1dt_1200.ss'),
( NAME = SGrp2Fi2_dat, FILENAME = 
'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\data\SG2Fi2dt_1200.ss')
AS SNAPSHOT OF Sales
GO