データベースサーバでの状態確認について説明します。
多重化したデータベースの状態は、mc_ctlコマンドをstatusモードで実行することで確認します。
また、Mirroring Controllerのメッセージを監視することで異常を検知できます。定期的に状態やメッセージを監視すると、自動切り替えに失敗した場合にも迅速に対処できます。
多重化したデータベースの状態確認
mc_ctlコマンドを実行すると、多重化の構成の内容、異常が発生したときに切り替えが可能な状態であるかの情報、および切り替えや切り離しの原因となった異常の箇所と内容を表示します。データベース多重化運用を開始したあとは、mc_ctlコマンドのstatusモードで多重化の状態を確認するようにしてください。
例) mc_ctlコマンドを実行した場合の状態表示例を以下に示します。
> mc_ctl status -M D:\mcdir\inst1 mirroring status ---------------- switchable server_id host_role host host_status db_proc_status disk_status -------------------------------------------------------------------------------------------------------- server1 primary 192.0.2.100 normal normal normal server2 standby 192.0.2.110 normal normal normal
Mirroring Controller裁定プロセスとの接続状態の確認
裁定サーバを利用して自動縮退を行う運用では、--arbiterオプションを指定することで、Mirroring Controller裁定プロセスとの接続状態を確認することができます。statusの表示が“online”になっている場合は、データベースサーバから裁定サーバへの裁定依頼ができる状態です。裁定サーバを利用して自動縮退を行う運用では、--arbiterオプションを指定したstatusモードを定期的に実行し、statusの表示が“online”になっていることを確認してください。
例) mc_ctlコマンドに--arbiterオプション指定して実行した場合の状態表示例を以下に示します。
> mc_ctl status --arbiter -M D:\mcdir\inst1 arbiter_id host status --------------------------------------- arbiter 192.0.3.120 online
データの同期状況の確認
プライマリサーバにおいて統計情報ビューpg_stat_replicationを参照することで、データの同期の状況を確認できます。ただし、監視プログラムを作成する場合には、pg_stat_replicationが将来変更される可能性がある点に注意してください。
例) この例は、送信と受信後のトランザクションログの位置(sent_lsn, replay_lsn)が一致しており、同期が完全に行われている状態を示しています。
postgres=# select * from pg_stat_replication; -[ RECORD 1 ]----+------------------------------ pid | 10651 usesysid | 10 usename | fsep application_name | standby client_addr | 192.0.2.210 client_hostname | client_port | 55098 backend_start | 2020-03-23 11:17:49.628793+09 backend_xmin | state | streaming sent_lsn | 0/3000060 write_lsn | 0/3000060 flush_lsn | 0/3000060 replay_lsn | 0/3000060 write_lag | flush_lag | replay_lag | sync_priority | 1 sync_state | sync reply_time | 2020-03-23 11:23:27.703366+09
参照
mc_ctlコマンドの詳細は、“リファレンス”を参照してください。
アプリケーションの互換性の維持に関する詳細は、“アプリケーション開発ガイド”の“アプリケーションの互換に関する注意事項”を参照してください。
pg_stat_replicationの詳細は、“PostgreSQL Documentation”の“Server Administration”の“The Statistics Collector”を参照してください。