web-dev-qa-db-ja.com

パフォーマンスに影響を与えずに大規模なSQL Serverデータベースをバックアップするにはどうすればよいですか?

クエリの実行が遅い、または早朝にタイムアウトになるという報告がありました。これに影響を与える可能性があると考えられる実行中の唯一のジョブは、データベースバックアップジョブです。

データベース自体は約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を使用しています

18
Rachel
  1. システム上の残りのI/OからバックアップI/Oを分離します。時間がかかりしゃっくりが発生しやすくなりますが、ローカルディスクではなくネットワーク経由でバックアップすると、インスタンスへの直接的な影響を軽減できる場合があります。仮想マシン内でも、SQL Serverが別のI/Oサブシステムに書き込むことができるように、他のストレージを公開できる必要があります。
  2. 違いが生じることはほとんどありませんが、これがジョブから実行される場合、STATSオプションを使用する必要があるのはなぜですか?他のオプション(NOUNLOADNOSKIPNOFORMAT)が必要ですか?オプションのマトリックス全体に対して広範なパフォーマンステストを行ったことはありませんが、必要なオプションだけを使用する必要があります。
  3. 通常のユーザーアクティビティを妨げない別の時間にフルバックアップを実行します。これは常に可能であるとは限りませんが、24時間年中無休の運用であっても、ピーク時間と休止時間があります。
  4. 2008以降に移行すると、バックアップ圧縮を利用できます(2008年のエンタープライズ、2008 R2以降のスタンダードまたはエンタープライズ)。 2008年に移行できない場合、または適切なエディションがない場合は、圧縮を実行するサードパーティのバックアップツールがあり、それらはすべて非常に優れています。 2008年以降、ネイティブ圧縮を使用できるようになりました。速度と圧縮率の両方に非常に満足しており、サードパーティにさらに投資する必要はありません。しかし、2005年に Red-Gate SQL Backup ;で成功したことを覚えています。 Quest LiteSpeed も非常に優れていますが、デルの買収以降、どのような努力が払われているのかはわかりません。
  5. データベースが完全に回復している場合は、完全バックアップの間隔が長くなり、特定の時点まで回復する必要がある場合、復元するログが増える可能性があるという知識と引き換えに使用できます。このオプションを、週を通して差分を取るという以下のALiの提案と組み合わせることができます。木曜日に回復する必要がある場合は、1つのフル、1つの差分、および差分以降のログを復元する必要があります。
  6. 古くて変更されていない大量のデータがある場合は、別のデータベースで別のリカバリプランでホストするか、少なくとも別のファイルグループでホストして、バックアップ操作をそのように分割することを検討できます。読み取り専用にすることができる参照データまたはアーカイブデータがあり、単純な回復を行っている場合は、それを独自の読み取り専用ファイルグループに移動し、一度バックアップするだけで、毎晩のバックアップに含める必要はありません。二度と。これらのMSDNトピックを参照してください。

断片的な復元の実行

例:一部のファイルグループのみの段階的な復元(単純復旧モデル)

21
Aaron Bertrand

これは一般的な問題であり、複数の解決策があり、実際には環境によって異なります。それらを見てみましょう:

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-別のサーバーに複製してバックアップする

これは少し高度です。レプリケートされたデータベースが最新であることを確認する必要があり、そのための適切な監視が必要です。それでも、レプリケートされたデータベースをバックアップするだけで済みます。

8
Ali Razeghi