web-dev-qa-db-ja.com

既存のデータベースへのログ配布

SQL Server 2008でログ配布したい巨大なデータベースがいくつかあります。残念ながら、プライマリサーバーとセカンダリサーバー間のリンクはログ配布を処理するのに十分な速度ですが、最初のバックアップ/コピーは数週間ではなくても数日間帯域幅を占有します。可能な限り避けたいと思います。

プライマリデータベースをハードディスクにバックアップし、ハードディスクをセカンダリマシンに物理的に移動して、そこでデータベースを復元することにより、コピーを作成しました(現在は数日経過しています)。

プライマリサーバーとセカンダリサーバーは地理的に異なる場所にあります。プライマリサーバーはSQLServer 2008にあり、セカンダリは2008 R2にあります(理由は聞かないでください!)

バックアップ/コピー/復元プロセスを最初から開始せずに、ログ配布(またはミラーリング)を機能させる方法はないようです。

任意のアイデア/ソリューションをいただければ幸いです。

5
SeanDav
  1. ログ配布をオンにしますが、ターゲットは追加しないでください
  2. プライマリデータベースの完全バックアップを作成します
  3. データベースのバックアップをセカンダリサーバーに移動します
  4. バックアップを復元 WITH NORECOVERY
  5. セカンダリサーバーをログ配布ターゲットとして有効にする
  6. 次に、SQL Serverは、これまでに生成されたすべてのログ配布ファイルをリンクを介して新しいサーバーにコピーし、それらを復元します。

私はこれを何十回も実行しましたが、失敗することはありません。それでも機能しない場合は、質問を[〜#〜]正確な[〜#〜]手順で更新することをお勧めします。取った。

5
Mark Henderson

データベースが完全復旧モードの場合は、次の手順を実行する必要があります。

  • 完全バックアップを取る
  • ドライブをスタンバイに移動
  • nORECOVERYを使用してデータベースを復元し、「復元」モードのままにします。
  • すべてのログバックアップをプライマリから保持し、スタンバイにコピーします
  • nORECOVERYを使用してすべてのログをスタンバイデータベースに復元する
  • SSMSウィザードを実行してLSジョブを設定します

LSジョブを使用してログをバックアップ/コピー/復元する場合は、ログが欠落していないことを確認してください。また、これらのジョブ以外でログバックアップを作成する場合も、ログが必要になります。ジョブは、作成しないログバックアップをコピーまたは復元しません。

4

FTP というツールを使用して、高遅延リンクを介して巨大なSQLバックアップファイルを転送し、ログ配布のために最初の完全バックアップをセカンダリノードに転送しました。完全バックアップを取り、 FTP を使用してセカンダリサーバーにコピーし、データベースをリカバリなしで復元してから、プライマリでログ配布を構成し、[セカンダリデータベースが初期化されます]オプションを使用することをお勧めします。 。 uFTPがファイルを転送する速度が速いため、すべてが同期していないという問題を回避できるはずです。

最悪の場合、データベースの完全バックアップを取り、それをuFTPでセカンダリにコピーし、それが完了したら、巨大なデータベースの差分バックアップを取り、それをuFTPで転送します。うまくいけば、高速転送とディファレンシャルを使用したデルタの削減の組み合わせで、ログ配布を稼働させることができるはずです。

注:uFTPはUDPベースのファイル転送ユーティリティであり、UDPにはTCPとは対照的にエラー訂正がないため、アプリケーションにエラーチェックメカニズムが組み込まれています。

1
tcnolan

ログ配布ターゲットでデータベースが復元されていないことを確認してください。

先に進み、通常どおりにセットアッププロセスを実行します。

[セカンダリデータベースの設定]ウィンドウの[セカンダリデータベースの初期化]タブが表示されたら、[いいえ、セカンダリデータベースが初期化されています]オプションが選択されていることを確認します。

次に、完全バックアップと復元を実行するプロセスをスキップし、トランザクションログのバックアップから開始します。完全バックアップ以降、すべてのトランザクションログバックアップにアクセスできない場合は、差分バックアップを作成し、それを復元せずに復元して、最新の状態にすることができます。

0
KenJ