Postgresql复制和复制插槽阻止VACUUM

时间:2019-01-23 13:16:37

标签: postgresql database-replication

我对PostgresSQL中的复制有疑问。我在表上执行VACUUM,并得到以下信息:

  

详细信息:3263410死行版本尚未删除,最早的xmin:574

在此网站上,要点2解释了我获取该信息的原因,但我不知道如何解决。

https://www.cybertec-postgresql.com/en/reasons-why-vacuum-wont-remove-dead-rows/

选择返回:

slot_name       slot_type     temporary  active   xmin   restart_lsn
it_rdbms02      physical         f         f        574     0/302B380   

我读到您可以使用功能pg_drop_replication_slot('name_slot')删除插槽,但这会禁用我的复制吗?

答案:是的,将删除复制。

1 个答案:

答案 0 :(得分:0)

我很高兴我的文章很有帮助。

如果复制有效,则表明它没有使用复制插槽。在备用服务器上检查recovery.conf进行验证。

复制插槽标记了某个WAL位置,因此主服务器在该位置之后将不会丢弃任何WAL。原因是某个人(例如复制备用数据库)仍然需要该信息。

在正常操作期间,使用复制插槽的WAL使用者将定期前进。但是,如果没有人再使用它,它将阻止WAL回收和VACUUM,这是一个主要问题。

如果您的复制未明确使用recovery.conf中的复制插槽,则可以安全地删除它。