停止流式复制

use*_*708 6 postgresql

我想让我的主/从流复制设置成为没有复制和 HA 的单个主从设置。

怎么可能告诉 master 它不再有 slave 并且它不应该将它的数据复制到 slave。当然,它也不应该像从站暂时关闭时那样将 WAL 发送到从站。

Aar*_*ron 4

根据您使用的 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;
Run Code Online (Sandbox Code Playgroud)

获取每个复制槽的磁盘使用情况(对于 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;
Run Code Online (Sandbox Code Playgroud)

删除复制槽:

select pg_drop_replication_slot('slot_name');
Run Code Online (Sandbox Code Playgroud)

参考: