是的,您可以同时运行它。
您应该在主节点中具有此配置:
listen_addresses = '*'
port = 5432
wal_level = hot_standby
max_wal_senders = 16
wal_keep_segments = 32
synchronous_commit = on
synchronous_standby_names = 'pgsql_0_node_0'
重新启动节点以进行更改:
$ systemctl restart postgresql-14
创建复制角色:
$ CREATE ROLE replication_user WITH LOGIN PASSWORD 'PASSWORD' REPLICATION;
并在您的备用节点中进行配置:
两个都:
wal_level = hot_standby
hot_standby = on
同步:
standby_mode = 'on'
promote_trigger_file='/tmp/failover_5432.trigger'
recovery_target_timeline=latest
primary_conninfo='application_name=pgsql_0_node_0 host=PRIMARY_NODE port=5432 user=replication_user password=PASSWORD'
用正确的值替换 PRIMARY_NODE、用户和密码。
异步:
promote_trigger_file='/tmp/failover_5432.trigger'
recovery_target_timeline=latest
primary_conninfo='application_name=pgsql_0_node_1 host=PRIMARY_NODE port=5432 user=replication_user password=PASSWORD'
用正确的值替换 PRIMARY_NODE、用户和密码。
重新启动节点以进行更改:
$ systemctl restart postgresql-14
然后,您可以在主节点中运行此命令以查看复制节点:
$ SELECT pid,usename,application_name,state,sync_state FROM pg_stat_replication;
pid | usename | application_name | state | sync_state
-------+------------------+------------------+-----------+------------
10951 | replication_user | pgsql_0_node_1 | streaming | async
10952 | replication_user | pgsql_0_node_0 | streaming | sync
(2 rows)