问题描述
在生产中,我的数据库大小为150 GB。此表中删除了许多行,并对其应用了Vacuum。现在,我需要将未使用的空间从数据库释放到OS的磁盘。因此,需要应用“真空完全”。 流复制在具有三个辅助节点的生产服务器上配置。 最好的方法是什么?
- 暂停复制并在主节点上运行Vacuum FULL。然后再次开始复制。
- 在主节点上执行Vacuum FULL后停止复制并重新创建。
解决方法
您无需执行上述任何操作。
VACUUM (FULL)
就像其他数据修改一样被复制。
备用服务器上的限制与主服务器上的限制相同:VACUUM (FULL)
运行时,受影响的表被锁定为任何并发访问。
由于VACUUM (FULL)
重写了表,它将产生大量的WAL,因此复制性能当然会受到影响。但是停止复制只会延迟而不是减少延迟,而重建备用数据库将产生更多的流量。