次の方法で共有


データベース スナップショットを作成する方法 (Transact-SQL)

データベース スナップショットを作成する唯一の方法は、Transact-SQL を使用することです。データベースを作成できるすべてのユーザーが、データベース スナップショットを作成できます。ただし、ミラー データベースのスナップショットを作成するには、sysadmin 固定サーバー ロールのメンバーであることが必要です。

注意

データベース スナップショットの名前付け、作成のタイミング、および数の制限については、「データベース スナップショットの作成」を参照してください。

データベース スナップショットを作成するには

  1. ソース データベースの現在のサイズに基づいて、データベース スナップショットを格納するのに十分なディスク領域があることを確認します。データベース スナップショットの最大サイズは、スナップショット作成時におけるソース データベースのサイズです。

  2. AS SNAPSHOT OF 句を使用して、CREATE DATABASE ステートメントをファイルに対して実行します。スナップショットを作成するには、ソース データベースの各データベース ファイルの論理名を指定する必要があります。データベース スナップショットを作成する構文の正式な説明については、「CREATE DATABASE (Transact-SQL)」を参照してください。

    注意

    データベース スナップショットを作成する場合、ログ ファイル、オフラインのファイル、復元中のファイル、および機能していないファイルを CREATE DATABASE ステートメントで使用することはできません。

使用例

ここでは、データベース スナップショットの作成例を示します。

A. AdventureWorks2008R2 データベースのスナップショットを作成する

この例では、AdventureWorks2008R2 データベースのデータベース スナップショットを作成します。スナップショット名 AdventureWorks2008R2_dbss_1800 と、そのスパース ファイルのファイル名 AdventureWorks2008R2_data_1800.ss は、作成時間が午後 6 時 (1800 時) であることを示しています。

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
注意

この例で使用している拡張子 .ss は任意です。

B. Sales データベースのスナップショットを作成する

この例では、Sales データベースのデータベース スナップショット sales_snapshot1200 を作成します。このデータベースは 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