Como criar um instantâneo do banco de dados (Transact-SQL)

O único modo para criar um instantâneo do banco de dados é usar Transact-SQL. Qualquer usuário que possa criar um banco de dados pode criar um instantâneo do banco de dados; entretanto, para criar um instantâneo de um banco de dados espelho, você deve ser um membro da função de servidor fixa sysadmin.

ObservaçãoObservação

Para obter considerações sobre como nomear, cronometrar a criação e limitar o número de instantâneos do banco de dados, consulte Criando um instantâneo do banco de dados.

Para criar um instantâneo do banco de dados

  1. Com base no tamanho atual do banco de dados de origem, verifique se você tem espaço em disco suficiente para suportar o instantâneo do banco de dados. O tamanho máximo de um instantâneo do banco de dados é o tamanho do banco de dados de origem no momento da criação do instantâneo.

  2. Emita uma instrução CREATE DATABASE nos arquivos usando a cláusula AS SNAPSHOT OF. Criar um instantâneo requer especificar o nome lógico de cada arquivo de banco de dados do banco de dados de origem. Para obter uma descrição formal da sintaxe de criação de um instantâneo do banco de dados, consulte CREATE DATABASE (Transact-SQL).

    ObservaçãoObservação

    Quando você cria um instantâneo do banco de dados, arquivos de log, arquivos offline, arquivos de restauração e arquivos excluídos não são permitidos na instrução CREATE DATABASE.

Exemplo

Esta seção contém exemplos de criação de um instantâneo do banco de dados.

A. Criando um instantâneo no banco de dados AdventureWorks2008R2

Este exemplo cria um instantâneo do banco de dados no banco de dados AdventureWorks2008R2. O nome do instantâneo, AdventureWorks2008R2_dbss_1800, e o nome de seu respectivo arquivo esparso, AdventureWorks2008R2_data_1800.ss, indicam a hora da criação, 18h00.

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
ObservaçãoObservação

A extensão .ss usada nos exemplos é arbitrária.

B. Criar um instantâneo no banco de dados Vendas

Este exemplo cria um instantâneo do banco de dados, sales_snapshot1200, no banco de dados Sales. Este banco de dados foi criado no exemplo “Criando um banco de dados que tenha grupos de arquivos” em 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