サーチ…


備考

データベーススナップショットは、SQL Serverデータベースの読み取り専用の静的ビューです。スナップショットの作成時点で、ソースデータベースとトランザクション的に一貫しています。

データベーススナップショットは、常にソースデータベースと同じサーバーインスタンス上に存在します。ソースデータベースが更新されると、データベーススナップショットが更新されます。

スナップショットは、スナップショット作成のプロセスが瞬間的で、ソースデータベースの変更が適用された場合にのみスナップショットが領域を占有するため、バックアップとは異なります。一方のバックアップは、バックアップ作成時と同様にデータの完全コピーを保存します。

さらに、スナップショットはデータベースのインスタント読み取り専用コピーを提供しますが、バックアップをサーバに復元して読み込み可能にする必要があります(また、リストアした後でも書き込むことができます)

データベーススナップショットは、EnterpriseエディションとDeveloperエディションでのみ使用できます。

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

データベーススナップショットは、SQL Serverデータベース(ソースデータベース)の読み取り専用の静的ビューです。これはバックアップに似ていますが、クライアントがスナップショットデータベースを照会できるように他のデータベースとして利用できます。

CREATE DATABASE MyDatabase_morning -- name of the snapshot
ON (
     NAME=MyDatabase_data, -- logical name of the data file of the source database
     FILENAME='C:\SnapShots\MySnapshot_Data.ss' -- snapshot file; 
) 
AS SNAPSHOT OF MyDatabase; -- name of source database

また、複数のファイルを持つデータベースのスナップショットを作成することもできます。

CREATE DATABASE MyMultiFileDBSnapshot ON
    (NAME=MyMultiFileDb_ft, FILENAME='C:\SnapShots\MyMultiFileDb_ft.ss'),
    (NAME=MyMultiFileDb_sys, FILENAME='C:\SnapShots\MyMultiFileDb_sys.ss'),
    (NAME=MyMultiFileDb_data, FILENAME='C:\SnapShots\MyMultiFileDb_data.ss'),
    (NAME=MyMultiFileDb_indx, FILENAME='C:\SnapShots\MyMultiFileDb_indx.ss')
AS SNAPSHOT OF MultiFileDb;

データベーススナップショットを復元する

ソースデータベース内のデータが破損したり、間違ったデータがデータベースに書き込まれたりすると、データベースをバックアップから復元する適切な代替手段として、損傷前のデータベーススナップショットにデータベースを戻すことが適切な場合があります。

RESTORE DATABASE MYDATABASE FROM DATABASE_SNAPSHOT='MyDatabase_morning';

警告:これにより、スナップショットが作成されてからソースデータベースに加えられたすべての変更削除されます。

スナップショットの削除

DELETE DATABASE文を使用して、データベースの既存のスナップショットを削除できます。

DROP DATABASE Mydatabase_morning

このステートメントでは、データベーススナップショットの名前を参照する必要があります。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow