Windows Serverバックアップは、SQL Serverのバックアップツールとして意図されていません。
...しかし、この設計は、ITプロフェッショナルではない小規模な組織や個人に特に適しています...
Windows Serverバックアップに関するステップバイステップガイドのセクション「Windows Serverバックアップを使用する必要があるユーザー」から引用してください。
引用したセクションは基本的に、Windows Serverバックアップが開始されると、WindowsのVSS機能をトリガーするということです。SQL Serverは、ボリュームシャドウコピーが発生していることを認識し、SQL Server Writerサービスを使用して、データベースファイル(* .mdf、*。ndf、*。ldf)のコピーを実行できるようにします。
SQL Server Writerサービスの目的は、次のように定義されています。
実行中、データベースエンジンはロックされ、データファイルに排他的にアクセスできます。SQLライタサービスが実行されていない場合、Windowsで実行されているバックアッププログラムはデータファイルにアクセスできず、SQL Serverバックアップを使用してバックアップを実行する必要があります。
SQLライタサービスを使用して、WindowsバックアッププログラムがSQL Serverの実行中にSQL Serverデータファイルをコピーできるようにします。
SQL Writer Serviceセクションからの引用:「目的」
基本的に、Windows Serverバックアップで発生するのはこれだけです。
SQL Serverの実行中にWindows Serverバックアップで作成されたバックアップは一貫している必要がありますが、ディスクにまだ書き込まれていないトランザクションはボリュームシャドウコピーにありません。データベースのスナップショットは、オンライン中に取得されました。
ただし、MSDNの記事Snapshot Backupsには次のように記載されています。
次のタイプのバックアップのみがスナップショットバックアップになります。
- 完全バックアップ
- 部分バックアップ
- ファイルのバックアップ
- 差分データベースバックアップ。これらは、ベンダーがVSSインターフェイスを使用する場合にのみサポートされます。
さらに:
このトピックで前述したものを除き、スナップショットバックアップは、対応する従来のバックアップと機能的に同等です。スナップショットバックアップは、非スナップショットフルバックアップ、差分バックアップ、およびログバックアップのある復元シーケンスで使用できます。他のバックアップと同様に、スナップショットバックアップはmsdbデータベースで追跡されます。スナップショットバックアップはbackupset.is_snapshot = 1で識別されます。msdbの詳細については、msdbデータベースを参照してください。
SQL Serverは、スナップショットバックアップからのオンライン復元をサポートしていません。スナップショットバックアップを復元すると、データベースが自動的にオフラインになります。断片的な復元にはスナップショットバックアップを組み込むことができますが、復元シーケンスはすべてオフライン復元です。断片的な復元の詳細については、「断片的な復元の実行」を参照してください。
質問に答えるには:
- .mdfをバックアップするだけですか?.mdfと.ldf?
- オンラインですか、それともオフラインですか?
- この方法でバックアップされたSQL Serverデータベースを復元する公式の手順は何ですか?
- 増分/差分バックアップを行うときに考慮する特別なことはありますか?
- このすべてはどこに文書化されていますか?
回答:
- はい。.mdfファイルと.ldfファイルのWindows Serverバックアップ(VSS)コピーを作成できます。バックアップは一貫している必要がありますが、復元後にデータベースはオフラインになります。
- SQL Serverが停止/データベースが切断/データベースがオフラインの場合、.mdfファイルと.ldfファイルのVSSコピーは100%一貫しています。
- データベースはオフライン状態で復元されるため、Windows Serverバックアップで実行されるデータベースを(特定の時点に)復元する方法がわかりません。OFFLINE状態のデータベースはそれ以上復元/回復できず、データベースをONLINEにすると、データベースは完全に回復したと見なされます。特定の時点へのデータベースの復元を実行できるように、SQL Serverの完全バックアップ、DIFFバックアップ、およびTLOGバックアップを個別に行うことをお勧めします。
- トランザクションログは、Window Serverバックアップで作成されたスナップショットの一部ではないため、追加で実行する必要があります。差分スナップショットは、バックアップシーケンスの一部としてサードパーティベンダーによってサポートされていますが、Windows Serverバックアップは差分バックアップを実行できないようです。この場合、追加の差分バックアップも実行する必要があります。(3を参照)
- 異なる参照
実際の実装で説明
私たちの環境では、VMwareがスナップショットを実行しており、DBAがCommvaultでSQL Serverダンプを実行している同様の状況があります。バックアップ履歴は次のようになります。
DBNAME TYPE BACKUPSET_NAME IS_SNAPSHOT BACKUP_START_DATE
------- ---- ------------------------- ----------- -----------------------
DB_NAME Full NULL 1 2016-12-10 18:23:59.000
DB_NAME Full CommVault Galaxy Backup 0 2016-12-10 20:07:41.000
DB_NAME Log CommVault Galaxy Backup 0 2016-12-11 06:00:40.000
DB_NAME Full NULL 1 2016-12-11 18:24:00.000
DB_NAME Diff CommVault Galaxy Backup 0 2016-12-11 20:03:38.000
DB_NAME Log CommVault Galaxy Backup 0 2016-12-12 06:02:29.000
DB_NAME Log CommVault Galaxy Backup 0 2016-12-12 07:02:17.000
VMwareのスナップショットはとMSDBデータベースの履歴テーブルにエントリが作成されますIS_SNAPSHOT = 1
とFULL
(毎日)に行われる各VMwareのスナップショットのために。ネイティブ(ネイティブを使用するCommvault)SQL Serverバックアップは、FULL、DIFF、およびTLOGバックアップを使用して実行されます。これらのバックアップはIS_SNAPSHOTとしてマークされず、msdbデータベースのバックアップテーブルに追加のFULL(1週間に1回)、DIFF(1日おき)、およびLOG(1時間ごと)エントリとして存在します。
このセットアップでは、スナップショットの日付時刻への復元を実行してからデータベースをオンラインにするか、「ネイティブ」のSQL Serverバックアップを使用して任意の時点への個別の復元を実行できます。