ページの先頭行へ戻る
Enterprise Postgres 15 クラスタ運用ガイド(データベース多重化編)

3.3.1 データベースサーバでの状態確認

データベースサーバでの状態確認について説明します。

多重化したデータベースの状態は、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
--------------------------------------------------------------------------------------------------------
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 /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    | 2022-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       | 2022-03-23 11:23:27.703366+09

参照

  • mc_ctlコマンドの詳細は、“リファレンス”を参照してください。

  • アプリケーションの互換性の維持に関する詳細は、“アプリケーション開発ガイド”の“アプリケーションの互換に関する注意事項”を参照してください。

  • pg_stat_replicationの詳細は、“PostgreSQL Documentation”の“Server Administration”の“The Statistics Collector”を参照してください。