Rus*_*ith 8 postgresql replication database-replication
如果我永久删除主节点的唯一副本,我需要在主节点上执行任何操作吗?我担心 WAL 文件会填满磁盘。
我想从单节点复制设置中删除唯一的副本:
P -> R
我想删除R。
您的担心是完全正确的。副本在主服务器上创建复制槽restart_lsn并存储在其中。根据文档,restart_lsn是:
最旧的 WAL 的地址(LSN)仍然可能被该槽的使用者所需要,因此在检查点期间不会被自动删除。
如果副本不在该复制槽中提前 LSN,则主副本将保留从该位置开始的所有 WAL 段并忽略max_wal_size限制。
如果你想删除副本并启用 WAL 轮换,那么你还必须删除复制槽:
postgres=# SELECT * FROM pg_replication_slots;
postgres=# SELECT pg_drop_replication_slot('replication_slot_name');
Run Code Online (Sandbox Code Playgroud)
Postgres Commitfest 上有一个补丁,它引入了新的 GUC 来限制复制槽持有的 WAL 数量。然而,该补丁是长期有效的,但尚未提交。