[英]Stop PostgreSQL streaming replication
我想将我的 PostgreSQL 主/从流复制设置变成一个没有复制且没有 HA 的主从设置。
怎么可能告诉 master 它不再有 slave 并且它不应该将它的数据复制到 slave?
当然,它也不应该像从站暂时关闭时那样,将WAL发送给从站。
根据您使用的 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');
参考:
这是我所做的:
pg_hba.conf
,删除:
主机复制复制器 xxxx/32 md5
选择 pg_reload_conf()
standby.signal
然后slave会保留数据,但不再从master复制,slave是可写的。
使用以下命令停止 walsender 以恢复服务器 memory 也非常重要:
select pg_terminate_backend(pid) from pg_stat_replication;
这将释放您的服务器存储空间 memory。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.