クエリの実行が遅い、または早朝にタイムアウトになるという報告がありました。これに影響を与える可能性があると考えられる実行中の唯一のジョブは、データベースバックアップジョブです。
データベース自体は約300GBであり、バックアップジョブは午前4時30分に開始され、午前7時少し前まで終了しません。バックアップジョブの現在の構文は次のとおりです。
BACKUP DATABASE [DatabaseName]
TO DISK = N'E:\Database Backups\DatabaseName.Bak'
WITH INIT, NOUNLOAD, NAME = N'DatabaseName.Bak',
NOSKIP, STATS = 10, NOFORMAT
E:\
は、データベースとデータベースのバックアップの両方を保持するサーバー上のパーティションです。
また、これは仮想サーバーであり、専用のスタンドアロンサーバーではないことにも注意してください。仮想サーバーに切り替えた直後から、バックアップ処理の速度低下について苦情が出てきたので、関係しているのではないかと思います。
このバックアップジョブを実行してクエリのパフォーマンスに影響を与えないようにする方法はありますか?
SQL Server 2005を使用しています
STATS
オプションを使用する必要があるのはなぜですか?他のオプション(NOUNLOAD
、NOSKIP
、NOFORMAT
)が必要ですか?オプションのマトリックス全体に対して広範なパフォーマンステストを行ったことはありませんが、必要なオプションだけを使用する必要があります。これは一般的な問題であり、複数の解決策があり、実際には環境によって異なります。それらを見てみましょう:
1-オンザフライでのバックアップ圧縮
2008 R1でエンタープライズでバックアップ圧縮が利用可能になり、2008R2でスタンダードで利用可能になりました。これは巨大です。時間を大幅に節約できます。アップグレードできる場合は、アップグレードしてください。できない場合は、 RedGateのHyperBak ユーティリティ、または Quest LiteSpeed を確認してください。どちらも無料トライアルがあります。
2-完全バックアップと差分バックアップ
2TBのprodデータベースを継承したため、私が作成した24時間年中無休の大手インターネット会社では多くのタイムアウトが発生しました。完全バックアップと差分バックアップを有効にしたため、時間を大幅に節約できました。アクティビティが少ない日曜日の午前12:00に完全バックアップを取り、その週に差分を取ります。これは多くのスペースを節約しました。変更されたデータベースページで動作するため、Diffの動作はトランザクションログとは異なります。変更されたページはすべてバックアップされます。したがって、完全な復元を行ってから、変更されたページを追加するための差分復元を行います。
3-あなたのボトルネックは何ですか?
ボトルネック分析は診断に重要です。データファイルと同じディスクアレイにバックアップしていますか?データファイルがペグされていますか?バックアップ中のデータディスクのDISK SEC/READおよびDISK SEC/WRITEは何ですか?バックアップを変更して4つのファイルを作成しました。各ファイルには独自のスレッドライターがあり、SANうまくいきました。テストしてみたところ、4つのバックアップファイルを作成するだけで45分節約できました。上記のディスクメトリックが低。ベースラインを取得します。
4-別のサーバーに複製してバックアップする
これは少し高度です。レプリケートされたデータベースが最新であることを確認する必要があり、そのための適切な監視が必要です。それでも、レプリケートされたデータベースをバックアップするだけで済みます。