同期AlwaysOn可用性グループとしてSQL Server 2014データベースのペアが設定されています。SQL Server AlwaysOnでのダーティリード
両方のサーバーは、可用性モードSynchronous commit
に設定され、セッションタイムアウトは50秒です。セカンダリは、Read-intent only
可読セカンダリに設定されています。
プライマリに書き込み、すぐにセカンダリから読み取ると(ApplicationIntent=ReadOnly
経由)、私は一貫してダーティデータ(書き込み前の状態)を読み取ります。私が執筆と読書の間に約1秒待つと、正しいデータが得られます。
これが期待どおりの動作ですか?もしそうなら、セカンダリからの読み込みが最新であることを確認するためにできることはありますか?
プライマリの負荷を軽減するために、セカンダリをプライマリの読み取り専用バージョン(フェールオーバーと同様に)として使用したいと考えています。
多分よりよいのためのトランザクション応答時間とスループットを遅くすることができます/ /dba.stackexchange.com/ – Liam
"ダーティーリード"ではなく、レイテンシです。ここをクリックしてください:https://blogs.msdn.microsoft.com/sqlserverstorageengine/2011/12/22/alwayson-readable-secondary-and-data-latency/ – dean
http://dba.stackexchange.com/questions/84420を参照してください。/does-synchronous-commit-availability-mode - レプリカ間の一貫性を確保する。要するに:はい、これが期待されます。*レイテンシを許容できない場合は、プライマリから読み取ります。あなたは、あなたの読書が最新であることを確実にするための独自の仕組み(トリガーなどのタイムスタンプテーブル)を考え出すことができますが、ほとんどの場合、これは価値よりも面倒です。いずれにしても、レプリカを1つのワークロード内で混同しないように、まったく混同しないでください。 –