データベースのバックアップ


2

10gb RDBMS(SQL Server)があります。できるだけ頻繁にバックアップしたいのですが、これを1日に数回程度行うためには、非常に多くのスペースが必要になるでしょう。

どのくらいの頻度でこのサイズのDBをバックアップするのが妥当でしょうか。バックアップは通常どのように保存されますか?

Amazon S3を調べたところ、DBバックアップを行うためにこのようなサービスを使用するのが一般的なのでしょうか。

  0

私はThoreauに同意しますが、できるだけ多くのバックアップが必要だと言っていたので、必要に応じて2〜6時間ごとなど、より頻繁に増分/差分バックアップを実行することを検討することをお勧めします。 14 9月. 112011-09-14 15:22:23

1

どのバージョンのSQLを使用していますか?「できるだけ頻繁に」とはどういう意味ですか?なぜあなたはこれをしたいのですか?

フルバックアップを取る必要はありません。あなたは毎週一回フル、毎晩差分を行うことができます。t-sqlまたはSSMSを使用すると、n日後にバックアップを自動的に削除して、バックアップをきれいに整理できます。

できるだけ頻繁に?トランザクションログを5分ごとにバックアップしてから5日ごとに削除しないのはなぜですか。

::質問を追加しました::


4

主な問題は、他の人がデータベースをバックアップする頻度ではなく、ビジネスでどの程度の損失が発生するのかということです。あなたのサーバーが死んだ場合、彼らは24時間前からバックアップファイルに戻っていって幸せでしょうか、それとも1時間前からそれを必要とするでしょうか?

当社のすべての本番データベースは、1日1回フルバックアップを行い、その後1時間ごとにトランザクションログバックアップを実行します。完全に失敗した場合の最悪のシナリオは、1時間分のデータを失うことです(実際には、データベースミラーリングを使用してこれを防ぐことができます)。トランザクションログバックアップでは、ポイントインタイムリストアを実行することもできますhttp://msdn.microsoft.com/en-us/library/ms179451.aspx

もう1つの要因はデータベースの復旧モデルです。完全復旧モードになっている場合は、トランザクションログを管理できなくなるのを防ぐためにトランザクションログのバックアップが必要になります。対照的に、単純な回復を使用している場合は、トランザクションログのバックアップは選択肢になりません。

これはまともな出発点です。: http://msdn.microsoft.com/en-us/library/ms191239.aspx

それが役立つことを願っています...


1

月曜日から金曜日の午前9時から午後5時の間に忙しい時間を過ごすのに共通のビジネスシナリオがあるとしましょう。それから私は提案するでしょう:日曜日の夜にフルバックアップ。午前8時、午後6時、および午前1時の差分バックアップ(リカバリ時間を短縮するため)。バックアップを1時間ごとまたはビジネスに必要なものに応じて記録します。

保存期間によっては、古いバックアップファイルを消去するための自動クリーンアップジョブが必要です。

バックアップは何らかの形の冗長ディスク(ミラー)に保存する必要があります。

Amazon S3を使用している場合は、帯域幅、ストレージ、およびget/putリクエストに対して料金を支払う必要があります。DBに機密データが格納されている場合は、さらに複雑になります。代わりに、外付けドライブまたはNASデバイスを入手して、それらにバックアップを保存することができます。ディスクは安いので価格は問題にならないはずです。


5

SQL Serverのバックアップがどのように機能するのか理解できていないようです。SQL Serverには3種類のバックアップがあります。

FULL - データベース全体のバックアップでは、データベース全体とアクティブなトランザクションログをディスク上の単一の(またはストライプされていますが、この機能は無視できます)ファイルにダンプします。

差分 - 差分データベースバックアップは、最後のフルバックアップ以降に変更されたすべてのデータをバックアップファイルにバックアップします。差分バックアップから復元するには、差分バックアップが取られる前に取られたフルバックアップを持っていなければなりません。

LOG - ログバックアップは現在トランザクションログにあるデータだけをバックアップします。ログバックアップを使用すると、データベースを特定の時点に復元できます(たとえば、誰かがテーブルを削除した場合は、テーブルを削除してそのテーブルのすべてのデータを元に戻すことができます)。LOGバックアップでは、データベースがFULLまたはBULK_LOGGEDのいずれかの復旧モードになっている必要があります。ログバックアップを復元するには、復元するログバックアップの前に最新のフルバックアップを作成する必要があります。オプションで、フルバックアップとログバックアップの間の差分バックアップ、およびフルバックアップと差分バックアップの間のすべてのログバックアップ復元したい最後のログファイル。

あなたが説明したことから、できるだけ少ないデータを失う必要があるように思えます。リカバリモードをFULLまたはBULK_LOGGED(ほとんどの人が選択するもの)に変更してから、数分ごとに毎日のフルバックアップとトランザクションログのバックアップを設定する必要があります。ログバックアップを実行する頻度は、失うことができるデータ量によって異なります。ビジネスはあなたではなく、この数字を設定するものであるべきです。要件によっては、10〜15分ごとにログバックアップを実行することも珍しくありません。

バックアップを設定したら、数日後にファイルを削除するように設定する必要があります(ビジネス要件と保存できる容量によって異なります)。

データベースを別のEC2アベイラビリティーゾーンのサーバーにバックアップして、今年の初めからのAmazonの機能停止が繰り返されてもバックアップデータが安全であるようにします。

バックアップが正しく行われたことを確認するために1〜2時間コンサルタントを招集することは価値があるかもしれません。それらが正しく行われていない場合は、システムが故障したときではなく、今がそれを理解するための時間です。