Windows Serverバックアップを使用してSQL Serverデータベースをバックアップするにはどうすればよいですか?


11

どうやらWindows Serverバックアップは、SQL Serverデータベースのバックアップをある程度サポートしています。

アプリケーションを回復する機能。Windows Serverバックアップは、Microsoft®SQLServer®などのアプリケーションに組み込まれているVSS機能を使用して、アプリケーションデータを保護します。[ソース:TechNet ]

さらに、Windows Server Backup はSQL Serverで何らかのバックアップ操作トリガーしているようだと人々は報告しています

ただし、Windows Serverバックアップを使用してSQL Serverデータベースを正確にバックアップする方法に関する(公式)ドキュメントを見つけることができません。

  • バックアップするだけ.mdfですか??.mdf.ldf
  • オンラインですか、それともオフラインですか?
  • この方法でバックアップされたSQL Serverデータベースを復元する公式の手順は何ですか?
  • 増分/差分バックアップを行うときに考慮する特別なことはありますか?
  • このすべてはどこに文書化されていますか?

(SQL Serverメンテナンスプラン、sqlmaint.exeT-SQL BACKUP、およびSQL Server Agent を使用してバックアップを行う方法を知っています。WindowsServerバックアップ(明らかに)が提供する代替手段に興味があります。)


Windows Serverのバージョン、およびSQLサーバーのバージョン
パウスカ

@pauska:個人的に、私は、Windows Server 2012のR2とSQL Server 2012(私は故意に他の人にそれをより便利にするために、より一般的な質問を保つ)に興味があると思います
Heinzi

1
フルバックアップを実行しているWindows Server 2008があります。私の知る限りでは、各データベースはそのバックアップが実行されたときに最後にバックアップされたと言うので、完全バックアップの一部としてデータベースをSQL Server Expressから取得しています。どこでそれを行っているスクリプトを見つけることができないので、これらのデータベースをどのようにバックアップしたかを理解しようとしているので、これは私を混乱させました。とにかくそれを行うためのスクリプトを作成して、それが機能していることと自分が持っているものを正確に知ることができると思います。
デイブCousineau

回答:


5

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データベースを復元する公式の手順は何ですか?
  • 増分/差分バックアップを行うときに考慮する特別なことはありますか?
  • このすべてはどこに文書化されていますか?

回答:

  1. はい。.mdfファイルと.ldfファイルのWindows Serverバックアップ(VSS)コピーを作成できます。バックアップ一貫している必要がありますが、復元後にデータベースはオフラインになります。
  2. SQL Serverが停止/データベースが切断/データベースがオフラインの場合、.mdfファイルと.ldfファイルのVSSコピーは100%一貫しています。
  3. データベースはオフライン状態で復元されるため、Windows Serverバックアップで実行されるデータベースを(特定の時点に)復元する方法がわかりません。OFFLINE状態のデータベースはそれ以上復元/回復できず、データベースをONLINEにすると、データベースは完全に回復したと見なされます。特定の時点へのデータベースの復元を実行できるように、SQL Serverの完全バックアップ、DIFFバックアップ、およびTLOGバックアップを個別に行うことをお勧めします。
  4. トランザクションログは、Window Serverバックアップで作成されたスナップショットの一部ではないため、追加で実行する必要があります。差分スナップショットは、バックアップシーケンスの一部としてサードパーティベンダーによってサポートされていますが、Windows Serverバックアップは差分バックアップを実行できないようです。この場合、追加の差分バックアップも実行する必要があります。(3を参照)
  5. 異なる参照

実際の実装で説明

私たちの環境では、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 = 1FULL(毎日)に行われる各VMwareのスナップショットのために。ネイティブ(ネイティブを使用するCommvault)SQL Serverバックアップは、FULL、DIFF、およびTLOGバックアップを使用して実行されます。これらのバックアップはIS_SNAPSHOTとしてマークされず、msdbデータベースのバックアップテーブルに追加のFULL(1週間に1回)、DIFF(1日おき)、およびLOG(1時間ごと)エントリとして存在します。

このセットアップでは、スナップショットの日付時刻への復元を実行してからデータベースをオンラインにするか、「ネイティブ」のSQL Serverバックアップを使用して任意の時点への個別の復元を実行できます。


1

できません。または、少なくともそうすべきではありません。SQL Serverデータベースに関する限り、サポートされている方法はネイティブバックアップです。

TechNetの記事が言っていることを誤解していると思います。引用したコメントは、SQL ServerデータベースにWindows Serverバックアップを使用できることを示すものではありません。実際、Windows Serverバックアップでは、SQL Serverで使用されているのと同じボリュームシャドウコピーサービスが使用されていることが強調されています。詳細:TechNet:SQLライターサービス


私はすべきではないことを知っています-そのような不十分に文書化された機能にデータを委ねません。それが可能であればそれでも、私は理論的には、興味:SQL Serverがない VSSライターを提供し、Windows Serverバックアップはある、私は今のところ未解決の問題を残しておきますので、VSSリクエスタ。たぶん、これらの2つを一致させるだけの問題かもしれません(たとえば、Hyper-V VSSライターに対してこれを行う方法に関するオンラインの指示があります)。
ハインジ

1
どうやら、Windows Serverバックアップ何らかのSQLサーバーバックアップをトリガーします。この質問をご覧ください。
ハインツィ16

1

SQLバックアップは、データをコピーするだけでなく、ログも切り捨てます。バックアップファイルをオンザフライで圧縮するなど、役立つマニュアルページで何百ものオプションを見つけることができます。

静止したイメージをバックアップするために、vssバックアップがフリーズされた仮想マシンのコピーまたはSAN上のLUNのスナップショットに使用されたことを覚えていますが、バックアップは電源中断のように「クラッシュコンシステント」であり、実際には一貫していません。

関連する


0

私は考えてそれが「スナップショットバックアップ」と呼ばれる特殊なバックアップタイプを使用しています。

SQL Server 2008ドキュメントから:

SQL Serverスナップショットバックアップは、Microsoft Windows Server 2003ボリュームシャドウコピーサービス(VSS)、およびこのフレームワークを使用するすべてのバックアップソフトウェアとストレージソフトウェアでも使用されます。詳細については、SQLライタサービスを参照してください。

それはすべて私には非常に不明瞭です。特に、これによりトランザクションログが切り捨てられるかどうか。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.