0

SQL Server 2012 でのミラーリング データベースのセットアップ中に、元のデータベースのバックアップを誤って 2 つ作成してしまいました。

ミラー サーバーでデータベースを復元した後、データベースが同期されませんでした。

この問題を解決するために、復旧モデルを「フル」から「シンプル」に変更し、再び「フル」に戻しました。その後、データベースを再度バックアップしました。ミラーリング手順をミラーサーバーに復元する場合。

私の質問は、元のデータベースの完全なバックアップを複数取ると、同期が失敗するのはなぜですか?

4

1 に答える 1

0

これはログ チェーンのためです。ミラーリングは、トランザクション ログのバックアップを他のサーバーに復元するようなものですが、自動的に機能するには、フル バックアップから最後の t-log バックアップまでの切れ目のないログ チェーンが必要です。次のようになります (適切な順次 LSN を使用):

Full-1->LogA->LogB->LogC->Full-2->LogD->LogE->LogF など...

したがって、上記の例では、フル 1 バックアップを復元した場合、ログ バックアップ A、B、C は復元できますが、D、E、F は復元できません。Full-2 を復元する場合にのみ復元できます。

ミラーリングでは、DB の完全バックアップを作成してから復元します。次に、SQL サーバーはログ シーケンス番号 (LSN) を調べ、復元されたミラー データベースに存在しないトランザクションを転送します。別の完全バックアップを作成すると、シーケンシャル LSN のチェーンを壊します。

あなたの場合、Full-1 を復元してから Logs D、E、F を適用しようとしたようです。シーケンス番号にギャップがあります。ミラー サーバーに取得した 2 番目の偶発的なバックアップを再復元し、ミラーリングを開始した場合は、うまくいくはずです。復旧モデルを変更すると、ログ チェーンが完全にリセットされ、最初からやり直す必要があります。

于 2013-07-03T13:49:33.197 に答える