9

プライマリ レプリカにデータを書き込んだ直後に、同期セカンダリ レプリカからデータを読み取ろうとしています。しかし、私のデータはセカンダリに存在しません。

データがセカンダリに表示されるまでに、約 100 ~ 500 ミリ秒の待ち時間があります。

セカンダリ レプリカを読み取りクエリに対して実際に同期させることはできますか?

4

1 に答える 1

9

記事「AlwaysOn: 読み取り専用ワークロードのセカンダリ レプリカへのオフロード」の MS から:

セカンダリ レプリカで実行されているレポート ワークロードでは、プライマリ ワークロードとネットワーク待機時間に応じて、通常は数秒から数分のデータ待機時間が発生します。セカンダリ レプリカを同期モードに構成した場合でも、データの待機時間は存在します。同期レプリカが、プライマリに ACK を送信する前にコミットされたトランザクションのトランザクション ログ レコードを強化することにより、理想的な状態 (つまり、RPO = 0) でデータ損失がないことを保証するのに役立つことは事実ですが、REDO スレッドがセカンダリ レプリカでは、関連するログ レコードがデータベース ページに実際に適用されました。したがって、いくらかのデータ遅延があります。セカンダリ レプリカを非同期モードで構成した場合に、このデータ レイテンシが発生する可能性が高いのではないかと思われるかもしれません。これは、答えるのがより難しい質問です。プライマリ レプリカとセカンダリ レプリカの間のネットワークがトランザクション ログ トラフィックに対応できない場合 (つまり、十分な帯域幅がない場合)、非同期レプリカはさらに遅れて、データの待機時間が長くなる可能性があります。同期レプリカの場合、不十分なネットワーク帯域幅が原因でセカンダリのデータ レイテンシが高くなることはありませんが、トランザクションの応答時間とプライマリ ワークロードのスループットが低下する可能性があります。

于 2014-03-04T18:21:31.403 に答える