web-dev-qa-db-ja.com

SQL Serverの「クイック」増分バックアップ?

私は2億2500万をはるかに超えるレコードを持つ非常に大規模なデータベース(250以上のギグ)に取り組んでいます。データベースは、そのサイズだけでは操作が困難です。このデータベースは読み取り専用です。

私たちはより高速なハードウェアの入手を検討していますが、どちらの方法でも、データベースを操作するための最も効率的な方法を見つけようとしています。このデータベースは、マスターデータベースから毎晩更新する必要があり、ダウンタイムを最小限に抑える必要があります。マスターデータベースはサードパーティによって維持されています。

データベースを更新するための最良の方法を見つけようとしていますが、運がよくありません。差分バックアップとトランザクションログバックアップを調べましたが、それらを適用するには、最初に完全バックアップを復元する必要があります。私の場合、これは差分バックアップの目的を完全に無効にします。これは、マスターデータベースで完全バックアップを実行してから、毎晩完全バックアップを復元する方が、完全バックアップを復元して差分バックアップを毎回適用するよりも高速であるためです。夜。

フルバックアップを1回(または月に1回)実行し、それ以降は、相互に構築された元のフルバックアップに基づいてある種の増分バックアップを適用するだけのソリューションが必要でした。最初の完全バックアップが完了すると、増分バックアップは毎晩のみ適用されるため、これによりダウンタイムが最小限に抑えられます。 「増分」バックアップのたびに、インデックスを再構築するだけです。私はこのような解決策を見つけることに成功していません。

私はちょうど今、データベースのバックアップとパフォーマンスについて多くの調査を行っており、MSDNを常に読んでいますが、このソリューションはオプションではないようです。最後の手段としてお願いしたいと思いました。確かに、ここには大規模なデータベースを管理しているものがあり、夜間に復元を行うのは現実的ではありません。

助言がありますか?私はこれほどのサイズのデータ​​ベースを使ったことがないので、パフォーマンスに関する提案やページへのリンクも受け付けています。

3
KTF

ログ配布 について説明していますが、ログバックアップの代わりに「差分」バックアップを使用したいので、これがアプローチの問題です。ログ配布では、データベースを1回復元してから、プリンシパルサイトで作成されているログバックアップを適用します。最初の完全バックアップの復元をやり直す必要はありません。数時間ごとに出荷されたログを適用し続けるだけで、読み取り専用のコピーを利用できるようになります。

3
Remus Rusanu

おそらく、このサードパーティは、変更を毎晩移動するために、ある種の レプリケーション を設定しますか?

2
Sam

本番データベースとマスターおよび読み取り専用データベースを格納する環境へのアクセスが許可されている場合は、SQL2005/SQL2008 Enterpriseエディションを実行しているのと同じデータベースインスタンスにすることができ、データベーススナップショットを使用できます。これにより、データベースの読み取り専用コピーが瞬時に提供されます。

http://msdn.Microsoft.com/en-us/library/ms175158.aspx

本番環境へのアクセスが許可されていない場合は、環境にミラーデータベースをセットアップするかどうかを尋ねることができます。これにより、スナップショットを実行することもできますが、Enterpriseエディションのソフトウェアとライセンスが必要です。

http://msdn.Microsoft.com/en-us/library/ms175511.aspx

Enterpriseを使用している/使用していない場合、またはライブデータに近いものが必要な場合は、トランザクションレプリケーションが別のオプションです。

http://msdn.Microsoft.com/en-us/library/ms151176.aspx

復元に時間がかかりすぎる場合は、バックアップディスク圧縮ソフトウェアを購入するオプションを検討してください。これにより、通常、保持されているデータの種類に応じた係数でバックアップ/復元が高速化されます。

2
SuperCoolMoss

Remusが最初に答えましたが、ログ配布シナリオがどのように機能するかを次に示します。

  1. サードパーティが1/1にデータベースの完全バックアップを送信します
  2. スタンバイモードでデータベースをリカバリなしで復元します。これにより、データベースが読み取り専用として設定されます(dboのみ)
  3. サードパーティが1/2にトランザクションログバックアップ(または複数)を送信し、それらをデータベースに適用して、変更を最新の状態にします。バックアップが適用された後、データベースは再びスタンバイモードになり、読み取り専用になります
  4. 毎日プロセスを繰り返す
1