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


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

Единственный способ создания моментального снимка базы данных SQL Server состоит в использовании Transact-SQL. Среда Среда SQL Server Management Studio не поддерживает создание моментальных снимков базы данных.

  • **Перед началом работы выполните следующие действия. **

    Предварительные требования

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

    Рекомендации Именование моментальных снимков базы данных

  • Создание моментального снимка базы данных с помощью Transact-SQL

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

Предварительные требования

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

  • На экземпляре сервера должен эксплуатироваться выпуск SQL Server, который поддерживает моментальный снимок базы данных. Сведения о поддержке моментальных снимков базы данных в SQL Server 2012 см. в разделе Возможности, поддерживаемые различными выпусками SQL Server 2012

  • База данных-источник должна быть в режиме в сети, если база данных не является зеркальной в сеансе зеркального отображения базы данных.

  • Для создания моментального снимка в зеркальной базе данных эта база данных должна быть в синхронизированном состоянии зеркального отображения.

  • База данных-источник не может быть настроена в качестве масштабируемой общей базы данных.

Важное примечаниеВажно!

Сведения о других существенных соображениях см. в разделе Моментальные снимки базы данных (SQL Server).

Рекомендации

В этом разделе обсуждаются следующие рекомендации:

  • Рекомендации Присвоение имен моментальным снимкам базы данных

  • Рекомендации Ограничение количества моментальных снимков базы данных

  • Рекомендации Клиентские соединения с моментальным снимком базы данных

Рекомендации Присвоение имен моментальным снимкам базы данных

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

  • имя базы данных-источника;

  • признак того, что новое имя предназначено для моментального снимка;

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

Допустим, требуется создать последовательность моментальных снимков базы данных AdventureWorks2012 . Три ежесуточных моментальных снимка были созданы через шестичасовые интервалы между 6:00. и 18:00 на основе 24-часового отсчета времени. Каждый моментальный снимок хранится 24 часа, после этого он удаляется и заменяется одноименным снимком. Обратите внимание, что имя моментального снимка обозначает час, но не дату создания:

AdventureWorks_snapshot_0600
AdventureWorks_snapshot_1200
AdventureWorks_snapshot_1800

Если время создания моментального снимка изменяется, можно использовать менее точные обозначения, например:

AdventureWorks_snapshot_morning
AdventureWorks_snapshot_noon
AdventureWorks_snapshot_evening

Рекомендации Ограничение количества моментальных снимков базы данных

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

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

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

Рекомендации Клиентские соединения с моментальным снимком базы данных

Чтобы подключиться к моментальному снимку базы данных, клиенты должны знать, где его найти. Пользователи могут работать с одним моментальным снимком базы данных во время создания или удаления другого. Тем не менее при замене существующего снимка новым необходимо перенаправить клиентов на новый снимок. Пользователи могут вручную подключиться к моментальному снимку базы данных средствами среды Среда SQL Server Management Studio. Тем не менее в рабочей среде следует создать программное решение, которое неявным для клиента образом направляет приложения, формирующие отчеты, к последнему моментальному снимку базы данных.

[В начало]

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

Разрешения

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

Значок стрелки, используемый со ссылкой «В начало»[В начало]

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

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

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

Пример этой процедуры см. в подразделе Примеры (Transact-SQL) далее в этом разделе.

  1. На основании текущего размера базы данных-источника убедитесь, что на диске достаточно места для хранения моментального снимка базы данных. При создании моментального снимка максимальный размер моментального снимка базы данных равен размеру базы данных-источника. Дополнительные сведения см. в разделе Просмотр размера разреженного файла снимка базы данных (Transact-SQL).

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

    CREATE DATABASE database_snapshot_name

        ON

        (

            NAME = logical_file_name,

            FILENAME = 'os_file_name'

        ) [ ,...n ]

        AS SNAPSHOT OF source_database_name

    [;]

    Здесь source_database_name — база данных-источник, logical_file_name i — логическое имя, используемое в SQL Server при ссылке на файл, os_file_name — путь и имя файла, используемые операционной системой при создании файла, и database_snapshot_name — имя моментального снимка, на основе которого требуется восстановить базу данных. Полное описание этого синтаксиса см. в разделе CREATE DATABASE (Transact-SQL).

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

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

Значок стрелки, используемый со ссылкой «В начало»[В начало]

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

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

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

Этот раздел содержит следующие примеры.

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

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

А.Создание моментального снимка по базе данных 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\MSSQL11.MSSQLSERVER\MSSQL\Data\AdventureWorks_data_1800.ss' )
AS SNAPSHOT OF AdventureWorks;
GO

Б.Создание моментального снимка по базе данных 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\MSSQL11.MSSQLSERVER\MSSQL\data\SPri1dat_1200.ss'),
( NAME = SPri2_dat, FILENAME = 
'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\data\SPri2dt_1200.ss'),
( NAME = SGrp1Fi1_dat, FILENAME = 
'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\mssql\data\SG1Fi1dt_1200.ss'),
( NAME = SGrp1Fi2_dat, FILENAME = 
'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\data\SG1Fi2dt_1200.ss'),
( NAME = SGrp2Fi1_dat, FILENAME = 
'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\data\SG2Fi1dt_1200.ss'),
( NAME = SGrp2Fi2_dat, FILENAME = 
'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\data\SG2Fi2dt_1200.ss')
AS SNAPSHOT OF Sales
GO

Значок стрелки, используемый со ссылкой «В начало»[В начало]

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

Значок стрелки, используемый со ссылкой «В начало»[В начало]

См. также

Справочник

CREATE DATABASE (Transact-SQL)

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

Моментальные снимки базы данных (SQL Server)