web-dev-qa-db-ja.com

SQLサーバーのバックアップが非常に遅い

30GBデータベースの完全バックアップの時間を見積もるにはどうすればよいですか?

この瞬間、それは約50分かかります。それを改善できますか?

ありがとう

4
Orit

少し追加して他の応答を要約するには:

  • 圧縮を使用すると、バックアップが高速化されます(読み取り、書き込み、「書き込み」を減らすと、処理速度が向上します)が、CPUがいくらか余分に消費されます。これを制限するために、2008年にバックアップ圧縮とリソースガバナーを組み合わせることができます。圧縮を使用すると、復元も高速化されます(一部を読み取ってから、再度書き込む)。これは、ディザスタリカバリの状況でダウンタイムを削減するのに最適です。
  • データベースファイルとバックアップに同じドライブを使用していません。競合の問題(I/Oサブシステムによって異なります)は別として、これは作成中の災害です。私が今まで見た中で最悪のデータ損失は、サードパーティの技術者がデータベースと唯一のバックアップを含むドライブを誤ってフォーマットしたときでした
  • ストライプバックアップセットを使用します。データベースを複数のバックアップファイルにバックアップできる場合、I/Oはバックアップファイル間でラウンドロビンされます。別のストレージにバックアップファイルがある場合は、大規模なパフォーマンスの向上を実現できます。
  • BLOCKSIZE、MAXTRANSFERSIZE、BUFFERCOUNTなどのより高度なパラメーターのいくつかを調整します

私が今まで見た中で最速のバックアップは、ウィーンにある私たちの顧客であるBwinにあります。彼らは36分で2TBをバックアップすることができます。これに関する私のブログ投稿を参照してください ハイエンドバックアップ圧縮数

このSQLCAT PDF をご覧ください。具体的には次のとおりです。

  • セクション4、71ページ:SQL Server2008でのバックアップ圧縮のパフォーマンスの調整
  • セクション1、15ページ:バックアップ圧縮の調整パート2

お役に立てれば!

17
Paul Randal

最近MSDBをクリーンアップしましたか?これがデータベースとバックアップにどのような影響を与えるかについてのBrentOzarによる良い記事

http://www.brentozar.com/archive/2009/05/brents-backup-bottleneck-msdb/

4
SQLChicken

どのバージョンのSQLサーバーを実行していますか? 2008は、バックアップ速度を劇的に向上させることができる圧縮を使用してバックアップを実行できます。バックアップジョブで圧縮をオンにすると、クライアントのバックアップの1つが1時間から10分になりました。

3
Jim B

データベースの物理ファイル(.MDF/.NDF)は、バックアップを作成しているのと同じディスクにありますか?その場合、ディスクはデータベースの読み取りとバックアップの書き込みを同時に行おうとしています。別の独立したディスクにバックアップすると役立つはずです。

基盤となるディスクに問題がある可能性もあります。ストレージエンジニアにディスクの整合性を確認してもらいます。

チェックするもう1つのことは、バックアップが別のプロセスによってブロックされている可能性があることです。バックアップの開始時にコマンドSP_WHO2ACTIVEを実行し、BlkBy列を確認します。数字が含まれている場合-これはバックアップをブロックしているプロセスのプロセスIDです。列が空白の場合、ブロックされていません。

復元はどれくらい速いですか?

3
SuperCoolMoss

これを改善する最善の方法は、サードパーティのバックアップユーティリティ(たとえば、QuestのLiteSpeed、Red GateのSQLBackup)を使用することです。

そうは言っても、完全バックアップを実行する頻度はどれくらいですか。差分バックアップとトランログバックアップを実装しましたか?

30GBの場合50分は少し長いように見えますが、ディスクアレイにストレスがかかっている場合は、それだけの時間がかかることがわかります。

2
Aaron Alton

トレースフラグ(3605,3213)を使用すると、エラーログに詳細がバックアップされます。

DBCC TRACEOFF(3605, –1)
DBCC TRACEOFF(3213, –1)

データベースまたはファイルグループからデータを読み取る速度を見積もり、確認するために、バックアップに使用できる特別なオプションがあります。DISK = 'NUL'

1222,1204を使用すると、エラーログにレコードのデッドロックが保持されます。

0
arnav

確認オプションをオフにすると、時間が大幅に短縮されますので、お勧めしません。スタンバイマシンにコピーされて復元されたバックアップでのみ実行するので、バックアップが不良であることがわかります。

0
SqlACID

私は間違いなくポールのランダルソリューションに行きます。ただし、SQLChickenが言ったように、msdbのバックアップ履歴が大きいかどうかを確認します。また、SQL 2008を使用している場合は、バックアップ圧縮を使用します。インスタントファイル初期化がこれに役立つかどうかはわかりません。しかし、それも試してみます。 (テストは完璧になります)

0