Procédure : créer une capture instantanée de base de données (Transact-SQL)

Pour créer une capture instantanée d'une base de données, vous devez impérativement utiliser Transact-SQL. Tout utilisateur ayant la possibilité de créer une base de données peut également créer une capture instantanée. Toutefois, pour créer une capture instantanée d'une base de données miroir, vous devez être membre du rôle serveur fixe sysadmin.

[!REMARQUE]

Pour des observations relatives aux noms des captures instantanées de bases de données, à leur programmation et à la limitation de leur nombre, consultez Création d'une capture instantanée de base de données.

Pour créer une capture instantanée d'une base de données

  1. Assurez-vous que vous avez suffisamment d'espace disque pour stocker la capture instantanée de la base de données : La taille maximale d'une capture instantanée est la taille de la base de données source au moment où la capture est créée.

  2. Exécutez une instruction CREATE DATABASE sur les fichiers en utilisant la clause AS SNAPSHOT OF. Pour créer une capture instantanée, vous devez spécifier le nom logique de chaque fichier de la base de données source. Pour une description formelle de la syntaxe de création d'une capture instantanée de base de données, consultez CREATE DATABASE (Transact-SQL).

    [!REMARQUE]

    Lorsque vous créez une capture instantanée de base de données, les fichiers journaux, les fichiers hors connexion, les fichiers de restauration et les anciens fichiers ne sont pas autorisés dans l'instruction CREATE DATABASE.

Exemple

Cette section comprend des exemples de création d'une capture instantanée de base de données.

A. Création d'une capture instantanée sur la base de données AdventureWorks

Cet exemple montre comment créer une capture instantanée de base de données sur la base de données AdventureWorks. Le nom de la capture, AdventureWorks_dbss_1800, et le nom de son fichier fragmenté, AdventureWorks_data_1800.ss, précisent l'heure de création, 6H00 du soir (18 heures).

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

[!REMARQUE]

L'extension .ss utilisée dans les exemples est arbitraire.

A. Création d'une capture instantanée sur la base de données Sales (Ventes)

Cet exemple crée une capture instantanée de base de données, sales_snapshot1200, sur la base de données Sales. Cette base de données a été créée dans l'exemple illustrant la création d'une base de données dotée de groupes de fichiers dans la rubrique 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