今回はセカンダリが停止している状態のログの連携について少しまとめていきたいと思います。
■ログの連携状態を確認する
それぞれのセカンダリに対してどこまでログブロックが連携されているかは [sys.dm_hadr_database_replica_states] で確認することができます。
[last~] 関連の項目を調べると、どこまで連携されているかが確認できます。
SELECT |
現在は、2008R2-SQL11-03] はサービスを停止した状態にしています。
そのため [last~] の項目が同期をされている [2008R2-SQL-02] が異なっている状態となります。
# [2008R2-SQL11-01] がプライマリとなっています。
それでは [2008R2-SQL11-03] を開始してみます。
[last_hadrended_lsn] がすべてのサーバーで同一になっているのが確認できますね。
ログプールはメモリ上のデータですのでいつまでデータが保持されているかの保証はないですよね。
セカンダリが復帰した場合、ログの連携はどのように行われるかというと、ログファイルからログプールにデータが読み込まれそこから連携がされます。
以下のデータが、セカンダリを復旧する前のプライマリのログファイルの読み込み状況になります。
それでは、セカンダリを復旧させてみます。
セカンダリを復旧させたタイミングでプライマリのログファイルの読み込みが増加していることが確認できます。
こちらはパフォーマンスモニタの情報になるのですが、 [Log Pool Disk Reads/sec] が表れているのが確認できますね。
このカウンタはログディスクを介して、ログプールに読み込みが発生した際に上昇するカウンタですのでディスクから読み込みが発生しているということがパフォーマンスモニタからも確認することができます。
というような経路も用意がされているようですね。
まだ調べていないので見れるかわかっていないのですが、セカンダリ上の REDO スレッドの動きが見れるようでしたら次の投稿でまとめてみたいと思います。