SQLバックアップで「バックアップ整合性の検証」をオフにすることの影響/リスクを理解する


12

現在、環境内のSQL Server 2005/2008 / 2008R2 / 2012サーバーでのバックアップには標準のメンテナンスプランを使用しており、[バックアップの整合性の確認]ボックスは常にオンになっています。

バックアップの一部は非常に長時間実行されるため、このオプションをオフにすることをお勧めしますが、管理者はこの変更の影響とリスクを文書化する必要があります。

このオプションの使用と履歴を理解していますが、(私の意見では)発生する可能性のあるエラーが検証中ではなくバックアップステップ中に発生する場合、バックアップジョブの時間を2倍にする必要はありません。

私が間違っている?ストリーミングテープなどではなくディスクにバックアップする場合、これをオフにすることは最小限のリスクですか?(必要に応じて、ネットワーク経由でEMC DD-800バックアップアプライアンスにバックアップします。)

これをオフにしても安全な場合の公式のMS推奨事項はありますか?

環境内のすべてのバックアップで「検証」を実行していますか?それらをスポットチェックしますか?

編集:明確にするために、メンテナンスプランで[バックアップの整合性の検証]をチェックすると、SQLは各バックアップの直後に各データベースで完全な復元を行います。これは、元のバックアップと同様にデータ/ IOを集中的に使用し、(基本的に)バックアップジョブの全体的な時間を2倍にします。これは、ありません(私の知る限り、ウィザードで行うことができない)、バックアップの「チェックサム」オプションを有効にすると同じ。


みんな、ありがとう。SQLメンテナンスプランを使用した場合でも、バックアップのチェックサムを有効にするには、トレースフラグを使用することについて、私自身の参照のために1つの以上のリンクを追加:nebraskasql.blogspot.com/2014/03/...
BradC

回答:


5

私が間違っている?ストリーミングテープなどではなくディスクにバックアップする場合、これをオフにすることは最小限のリスクですか?

いいえ、あなたは正しいです:-)

RESTORE VERIFYONLY破損した場合にデータベースを回復できることを保証するだけではありません。本来、整合性チェックは実行されません。

より良い方法は、定期的にバックアップを取り、別のサーバーで有効な復元を実行し、そのサーバーでDBCC CHECKDBを実行することです。

これは、GUIがT-SQLで実現できるような多くのオプションを公開しないため、メンテナンスプランの大ファンでない理由の1つですbackup .. with CHECKSUM

ポールランダルの神話ブログ

24p)RESTORE…WITH VERIFYONLYを使用してバックアップ全体を検証します

いいえ。VERIFYONLYを使用すると、バックアップヘッダーがバックアップヘッダーのように見えることのみが検証されます。それはあなたがWITH CHECKSUMを使用してバックアップを取り、RESTOREない場合にのみ、... WITH VERIFYONLYだ 、復元はバックアップ全体にわたるチェックサムを含むより広範なチェックが、ないことWITH CHECKSUMを使用します。

環境内のすべてのバックアップで「検証」を実行していますか?それらをスポットチェックしますか?

VERIFYONLYを実行しません。代わりに、CHECKSUMを使用してバックアップを作成し、それらを別のサーバーでCHECKDBして復元します。創造的になりたい場合は、データベースバックアップを検証するための統計サンプリングのアプローチに従うことができます 。

これは、バックアップで「チェックサム」オプションを有効にすることとは異なります(私の知る限り、ウィザードでは実行できません)。

オプションがBACKUPコマンドに対して自動的に有効になるように、トレースフラグ3023を有効にすることができCHECKSUMます。いつものように、環境内のトレースフラグの動作をテストしてください!

一番下の行は-メンテナンスプランを捨て、より賢明なバックアップソリューション (ヒント:Olaのバックアップソリューション)を使用します。これにより、ニーズに基づいてカスタマイズできます。

(必要に応じて、ネットワーク経由でEMC DD-800バックアップアプライアンスにバックアップします。)

ディスクにローカルでバックアップしてから、サーバーからネットワーク共有(バックアップサーバー)にバックアップをローカルにコピーするPowerShell転送ジョブを実行します。ネットワーク共有に直接コピーするよりも高速です。

また、ファイルの即時初期化を有効にします。これは、データファイルの自動成長に役立ち、復元時間の短縮に役立ちます(データベースを復元する必要がある場合)。オプションがあると便利です。

良い読み物は次のとおりです。バックアップ:回復戦略の計画


詳細な回答をありがとう。バックアップでチェックサムを有効にすることをお勧めします。これにより、バックアップ手順中にエラーの割合がわずかに高くなり、BACKUP VERIFYONLYをスキップする(ごくわずかな)高いリスクを相殺できるはずです。別のサーバーへの定期的な復元に関して、あなたが推奨していることは理解していますが、環境の規模のために、おそらくサンプリングベースの場合を除いて、それは妥当ではないようです。
BradC

@BradC私の答えがあなたにとって役立つことを嬉しく思います。私の答えの要点は、(メインプラン)TSQLとは対照的に使用GUIすることです。これにより、柔軟性を活用し、オープンハンドでそれを適応させることができます。FYI ..メンテナンスプランがSQL Server 2016 CTP 2.4で強化されたように、MSはSQL Serverスマートメンテナンスプランと呼びます -ベストプラクティスを統合し、最適な戦略をその場で識別できます。それでもGUIはTSQLに勝るものはありません:-)
Kin Shah

ありがとう@Kin。私は他の環境からのすべてカスタムスクリプトアプローチに精通しています。明らかに、それはエラーやスクリプトメンテナンスに固有の問題を抱えている可能性があります。サードパーティの圧縮エージェントを評価しているため、最終的にはカスタムスクリプトが必要になる可能性があります。
BradC

2

結論としては、どこかでデータベースの復元を行わない限り、特定のバックアップファイルが適切であると完全に確信することはできません。

バックアップを検証する理想的なテストは、日々のプロセスの一部としてデータベースバックアップとデータベースログバックアップが常に復元される環境をセットアップすることです。これは、ログ配布を使用する利点の1つです...

それでもverifyonlyに固執したい場合は、これを行うためだけに環境をセットアップできます。これにより、(おそらく)実稼働サーバーから作業がオフロードされ、ジョブ時間が短縮されます。

最後に、メンテナンス計画からの移行を検討しましたか?Olaのスクリプトのようなスクリプトは、バックアップとメンテナンスを除きますhttps : //ola.hallengren.com/


一部のサードパーティのバックアップエージェント(特定のバックアップアプライアンスで動作するように作られている)を評価しているため、将来、メンテナンスプランから移行する可能性があります。Olaが開発したものと同様に、これらにはカスタムスクリプトが必要になると思います。
BradC

1

技術的には、verfyonlyの復元は復元の実行に似ていますが、データベースを実際に復元して有効なバックアップをチェックするより良いチェックはありません。verifyonlyが成功したが、破損のためにデータベースが復元されないインスタンスがありました。私の意見では、バックアップが正常であることの検証としてこれを期待していません。現在、すべてのデータベースを別のインスタンスに復元してその有効性を確認するシステムを開発しました。明らかにそれが常に可能であるとは限らないため、特定のデータベースを1週間サンプリングしてみてください。longとshortは、verifyonlyを100%信頼していません。


確かに、環境でRESTORE VERIFYONLYをオフにすることをお勧めているため、それが本当に私の質問に答えるかどうかはわかりません。「実際の完全な復元のみがバックアップが実行可能であることを証明するため、このオプションをオフにしてもリスクはそれほど増加しません」という点がない限り。
BradC

正しい、唯一の真のチェックは芋、実際に本物のために復元を実行で
ゲルダー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.