Cómo crear una instantánea de base de datos (Transact-SQL)

El único modo de crear una instantánea de base de datos consiste en usar Transact-SQL. Todos los usuarios que pueden crear una base de datos pueden crear una instantánea de base de datos; sin embargo, para crear una instantánea de una base de datos reflejada, es necesario ser miembro de la función fija de servidor sysadmin.

Nota

Para conocer las consideraciones acerca de cómo asignar nombres a las instantáneas de base de datos, cómo establecer la hora de su creación y cómo limitar su número, vea Crear una instantánea de base de datos.

Para crear una instantánea de base de datos

  1. Basándose en el tamaño actual de la base de datos de origen, asegúrese de que tiene suficiente espacio en disco para incluir la instantánea de base de datos. El tamaño máximo de una instantánea de base de datos es el tamaño de la base de datos de origen en el momento de la creación de la instantánea.

  2. Emita una instrucción CREATE DATABASE en los archivos que utilicen la cláusula AS SNAPSHOT OF. Para crear una instantánea, se debe especificar el nombre lógico de cada archivo de la base de datos de origen. Para obtener una descripción formal de la sintaxis necesaria para crear una instantánea de base de datos, vea CREATE DATABASE (Transact-SQL).

    Nota

    Cuando se crea una instantánea de base de datos, no se permite la presencia de archivos de registro, archivos sin conexión, archivos de restauración e inactivos en la instrucción CREATE DATABASE.

Ejemplo

Esta sección contiene ejemplos de creación de una instantánea de la base datos.

A. Crear una instantánea de la base datos AdventureWorks2008R2

En este ejemplo se crea una instantánea de la base datos AdventureWorks2008R2. El nombre de la instantánea, AdventureWorks2008R2_dbss_1800, y el nombre de archivo de su archivo disperso, AdventureWorks2008R2_data_1800.ss, indican la hora de creación: 6 P.M (1800 horas).

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

Nota

La extensión .ss que se utiliza en los ejemplos es arbitraria.

A. Crear una instantánea de la base datos Sales

En este ejemplo se crea una instantánea de la base datos, sales_snapshot1200, en la base de datos Sales. Esta base de datos se creó en el ejemplo "Crear una base de datos con grupos de archivos," en 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