web-dev-qa-db-ja.com

SQL Serverの適切なバックアップスケジュールとは何ですか?

バックアップタスクのセットアッププロセスに関する情報は多数あるようですが、データベースバックアップの全体像に関する情報は多くありません。少なくとも、その情報を提供する検索エンジンクエリを作成するのは困難です。私は3つの異なるタイプのバックアップがあることを知っています。

  • 完全データベースバックアップ
  • 差分データベースバックアップ
  • トランザクションログのバックアップ

3つ全部使うと思われます。それで、これは意味のあるスケジュールですか?

  • 毎月1日-実行するfullデータベースのバックアップ。
  • 毎日真夜中-differentialデータベースのバックアップ。
  • 15分ごと-トランザクションログを実行しますバックアップ。

このようにして、たとえば12日目にデータベースに障害が発生した場合、1回目から完全なデータベースバックアップを復元し、1回目から12回目まで12回の差分バックアップを実行し、最後に最新のトランザクションログを復元します(トランザクションログの差分?).

最後に、フルデータベースバックアップは自己完結型ですか?つまり、2月1日にデータベースの完全バックアップを作成したら、1月からすべてのファイルを削除できますか?もちろん、念のために前の2か月のセットを保持しますが、問題は概念的なものです。

19
atanamir

SQL Serverのすべてのものと同様に、状況によって異なります。

最初に行う必要があるのは、各タイプのバックアップが何を行うかを理解することです。

Books Onlineにはすべての詳細な情報があります ですが、これが私の要約です。

完全バックアップには、データベース内のすべてが含まれます。差分バックアップは、増分ではなく累積的です。この例では、データベースが12日に失敗した場合、1日目からフルバックアップを復元し、次に12日の最新の差分を復元し、その後に失敗までのすべてのトランザクションログバックアップを復元するだけで済みます。トランザクションログのバックアップは、完全または一括ログ復旧モデルを使用するデータベースにのみ必要です。単純な復旧モデルを使用している場合は、トランザクションログのバックアップは必要ありません。

これで解決しました...バックアップスケジュールの設計は、回復する必要のあるデータの量と、災害発生時にデータを回復するのに必要な速度によって異なります。毎日完全バックアップから始めることをお勧めします。後でいつでも頻度を下げることができます。差分バックアップは前回の完全バックアップ以降の累積であるため、データベースで行われている変更の量によっては、差分が数日後の完全バックアップよりも大きくなる可能性があることに注意してください。毎日完全バックアップを実行する場合、差分をまったく使用する必要がない場合があります。ただし、1日に1回実行して、正午にスケジュールすることはできます。トランザクションログバックアップでは、ログのみがバックアップされます。ログバックアップの頻度により、障害発生時にどれだけのデータを失う可能性があるかが決まります。ログバックアップを15分ごとに実行すると、変更された最後の15分のデータが失われることが予想されます。 15分が適切な頻度ですが、30分ごとに私の環境で完全に動作します。

前に言ったように、それはすべてあなたの環境に依存します。バックアップスケジュールを設計および設定したら、必ず代替サーバーでテストしてください。完全、差分、およびログのバックアップを復元する練習をして、設計どおりにすべてが機能することを確認します。

Books Onlineには、メンテナンスプランの使用を計画している場合に役立つ情報がありますが、柔軟性が本当に必要な場合は、 Ola Hallengrenのバックアップスクリプト を確認してください。

24
Patrick Keisler