repmgr#
TPAは、 failover_manager インスタンス変数がrepmgr
に設定されているすべてのpostgresインスタンスにrepmgrをインストールします。これはデフォルト設定です。
repmgr
構成ファイルのディレクトリは、デフォルトで/etc/repmgr/<version>
になります。ここで、 <version>
は、このインスタンスにインストールされるpostgresのメジャーバージョンですが、インスタンスのrepmgr_conf_dir
変数を設定することにより変更できます。構成ファイル自分自身は常にrepmgr.conf
と呼ばれます。
デフォルトのrepmgr構成は、ロール primary とロール replica
で構成されたインスタンス間の自動フェイルオーバーをセットアップします。
repmgrパッケージバージョン#
デフォルトでは、TPAはrepmgrの最新バージョンをインストールします。
インストールされるrepmgrパッケージのバージョンは、 config.yml
ファイルのcluster_vars
セクションの下のrepmgr_package_version: xxx
を含めることにより指定できます。
cluster_vars:
…
repmgr_package_version: 4.0.5-1.pgdg90+1
…
aptまたはyumが受け入れるバージョン指定子を使用できます。
バージョンが一致しない場合は、 *
ワイルドカードを追加してみてください。これは、パッケージバージョンに2:...
のようなエポック修飾子がある場合に必要になることがよくあります。
repmgr構成#
次のインスタンス変数を設定できます。
repmgr_priority : sets priority in the config file
repmgr_location : sets location in the config file
repmgr_reconnect_attempts : sets reconnect_attempts in the
config file, default 6 repmgr_reconnect_interval : sets
reconnect_interval in the config file, default 10
repmgr_use_slots : sets use_replication_slots in the config
file, default 1 repmgr_failover 構成ファイルでfailover
を設定します、デフォルトautomatic
repmgr_conf_settings の追加設定もrepmgr構成ファイルに渡されます。
repmgrサービス構成#
repmgr_service_environment
環境変数をrepmgrサービスユニットファイルに設定します。環境変数は、
repmgr_service_environment
変数の下で、’キー-値’の方法で定義する必要があります。以下の例を参照してください。
repmgr_service_environment
を使用して、TPAで認識されるかどうかにかかわらず、パラメーターを設定できます。
repmgrd.service
ファイルに表示されるのとまったく同じように値を引用符で囲む必要があります。
cluster_vars:
repmgr_service_environment:
LD_PRELOAD: "/usr/edb/pge15/lib/libpq.so.5:/usr/edb/pge15/lib/libpqagent86.so"
AGENT86_SHARD_FILE: "/var/lib/pgsql/shard.dat"
repmgrサービスファイルで
root@kaput:~# cat /etc/systemd/system/repmgr.service
[Unit]
Description=Postgres replication manager
After=postgres-monitor.service
Wants=postgres-monitor.service
[Service]
Type=simple
User=postgres
Group=postgres
Environment=AGENT86_SHARD_FILE=/var/lib/pgsql/shard.dat
Environment=LD_PRELOAD=/usr/edb/pge15/lib/libpq.so.5:/usr/edb/pge15/lib/libpqagent86.so
StandardOutput=syslog
ExecStart=/usr/lib/postgresql/17/bin/repmgrd -f /etc/repmgr/17/repmgr.conf --verbose --daemonize=false
ExecStop=/bin/kill -TERM $MAINPID
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target
PGDインスタンスの## repmgr
PGDインスタンスでは、repmgr_failover はデフォルトでmanual
に設定されます。
tpaexec upgrade を使用したrepmgrのマイナー更新#
目的のバージョンを追加の引数としてtpaexec upgrade
コマンドに渡すこともできます。
tpaexec upgrade <cluster_dir> \
-e repmgr_package_version="<desired version>"\
--components=repmgr
詳細については、 package version selection and upgrade のセクションを参照してください。
アップグレードのためにrepmgrを選択するには、 tpaexec upgrade
コマンドに渡される--components フラグにrepmgr
またはall が含まれていることを確認します
component selection for upgrade のセクションを参照してください
詳細については、