多重化したデータベースの状態は、mc_ctlコマンドをstatusモードで実行することで確認します。
また、Mirroring Controllerのメッセージを監視することで異常を検知できます。定期的に状態やメッセージを監視すると、自動切り替えに失敗した場合にも迅速に対処できます。
mc_ctlコマンドを実行すると、多重化の構成の内容、異常が発生したときに切り替えが可能な状態であるかの情報、および切り替えや切り離しの原因となった異常の箇所と内容を表示します。データベース多重化運用を開始したあとは、mc_ctlコマンドのstatusモードで多重化の状態を確認するようにしてください。
例) mc_ctlコマンドを実行した場合の状態表示例を以下に示します。
$ mc_ctl status -M /mcdir/inst1 mirroring status ---------------- switchable server_id host_role host host_status db_proc_status disk_status -------------------------------------------------------------------------------------------------------- nd1 primary 192.0.2.100 normal normal normal nd2 standby 192.0.2.110 normal normal normal
また、プライマリサーバにおいて統計情報ビューpg_stat_replicationを参照することで、データの同期の状況を確認できます。ただし、監視プログラムを作成する場合には、pg_stat_replicationが将来変更される可能性がある点に注意してください。
例) この例は、送信と受信後のトランザクションログの位置(sent_location, replay_location)が一致しており、同期が完全に行われている状態を示しています。
postgres=# select * from pg_stat_replication; -[ RECORD 1 ]----+------------------------------ pid | 14336 usesysid | 10 usename | fsep application_name | standby client_addr | 192.0.2.210 client_hostname | client_port | 27500 backend_start | 2015-04-23 20:24:13.761424+09 backend_xmin | state | streaming sent_location | 0/3000060 write_location | 0/3000060 flush_location | 0/3000060 replay_location | 0/3000060 sync_priority | 1 sync_state | sync
参照
mc_ctlコマンドの詳細は、“リファレンス”を参照してください。
アプリケーションの互換性の維持に関する詳細は、“アプリケーション開発ガイド”の“アプリケーションの互換に関する注意事項”を参照してください。
pg_stat_replicationの詳細は、“PostgreSQL文書”の“サーバの管理”の“統計情報コレクタ”を参照してください。