我对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')
删除插槽,但这会禁用我的复制吗?
答案:是的,将删除复制。
答案 0 :(得分:0)
我很高兴我的文章很有帮助。
如果复制有效,则表明它没有使用复制插槽。在备用服务器上检查recovery.conf
进行验证。
复制插槽标记了某个WAL位置,因此主服务器在该位置之后将不会丢弃任何WAL。原因是某个人(例如复制备用数据库)仍然需要该信息。
在正常操作期间,使用复制插槽的WAL使用者将定期前进。但是,如果没有人再使用它,它将阻止WAL回收和VACUUM
,这是一个主要问题。
如果您的复制未明确使用recovery.conf
中的复制插槽,则可以安全地删除它。