我想将PostgreSQL主/从流复制设置转换为一个没有复制和HA的主/从设置。如何才能告诉主服务器它不再拥有从服务器,并且它不应该将其数据复制到从服务器?当然,它也不应该像从机暂时停机时那样,保留要发送给从机的 * WAL *。
fwzugrvs1#
下面是我所做的:
pg_hba.conf
主机复制复制器x.x.x.x/32 md5
选择pg_reload_conf()
standby.signal
然后slave将保留数据,但不再从master复制,并且slave是可写的。
pxy2qtax2#
根据您使用的Postgres版本,您的复制可能是使用“复制插槽”完成的。如果您不再有来自复制插槽的客户端流,您可以删除该插槽。以下是一些有用的查询:获取每个复制插槽的磁盘使用情况(对于Postgres 9.6):
SELECT redo_location, slot_name,restart_lsn, round((redo_location-restart_lsn) / 1024 / 1024 / 1024, 2) AS GB_behind FROM pg_control_checkpoint(), pg_replication_slots;
获取每个复制插槽的磁盘使用情况(适用于Postgres 10+):
SELECT redo_lsn, slot_name, restart_lsn, round((redo_lsn-restart_lsn) / 1024 / 1024 / 1024, 2) AS GB_behind FROM pg_control_checkpoint(), pg_replication_slots;
删除复制插槽:
select pg_drop_replication_slot('slot_name');
参考文献:
dxxyhpgq3#
非常重要的是也要停止walsender以使用以下命令恢复服务器内存:
select pg_terminate_backend(pid) from pg_stat_replication;
这将释放服务器存储内存。
3条答案
按热度按时间fwzugrvs1#
下面是我所做的:
pg_hba.conf
,删除:主机复制复制器x.x.x.x/32 md5
选择pg_reload_conf()
standby.signal
然后slave将保留数据,但不再从master复制,并且slave是可写的。
pxy2qtax2#
根据您使用的Postgres版本,您的复制可能是使用“复制插槽”完成的。如果您不再有来自复制插槽的客户端流,您可以删除该插槽。以下是一些有用的查询:
获取每个复制插槽的磁盘使用情况(对于Postgres 9.6):
获取每个复制插槽的磁盘使用情况(适用于Postgres 10+):
删除复制插槽:
参考文献:
dxxyhpgq3#
非常重要的是也要停止walsender以使用以下命令恢复服务器内存:
这将释放服务器存储内存。