Condividi tramite


Procedura: Creazione di uno snapshot del database (Transact-SQL)

L'unico modo per creare uno snapshot del database consiste nell'utilizzare Transact-SQL. Se un utente può creare un database, può creare anche uno snapshot del database; tuttavia, per creare uno snapshot di un database mirror, è necessario essere membro del ruolo predefinito del server sysadmin.

[!NOTA]

Per considerazioni relative alla denominazione di snapshot del database, alla definizione della tempistica della creazione di snapshot e alla limitazione del numero di snapshot, vedere Creazione di uno snapshot del database.

Per creare uno snapshot del database

  1. Verificare di disporre di spazio su disco sufficiente per contenere lo snapshot del database. La dimensione massima di uno snapshot del database corrisponde alla dimensione del database di origine al momento della creazione dello snapshot.

  2. Generare un'istruzione CREATE DATABASE sui file che utilizzano la clausola AS SNAPSHOT OF. Per creare uno snapshot, è necessario specificare il nome logico di ogni file di database del database di origine. Per una descrizione formale della sintassi per la creazione di uno snapshot del database, vedere CREATE DATABASE (Transact-SQL).

    [!NOTA]

    Quando si crea uno snapshot del database, i file di log, i file non in linea, i file in fase di ripristino e i file inattivi non sono consentiti nell'istruzione CREATE DATABASE.

Esempio

In questa sezione sono disponibili esempi della creazione di uno snapshot di database.

A. Creazione di uno snapshot del database AdventureWorks

In questo esempio viene creato uno snapshot del database AdventureWorks. Il nome dello snapshot, AdventureWorks_dbss_1800, e il nome del file sparse corrispondente, AdventureWorks_data_1800.ss, indicano l'ora di creazione, ovvero le 18.00 (1800).

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

[!NOTA]

L'estensione ss utilizzata negli esempi è arbitraria.

B. Creazione di uno snapshot del database Sales

In questo esempio viene creato uno snapshot, sales_snapshot1200, del database Sales. Questo database è stato creato nell'esempio "Creazione di un database con filegroup" in 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