我有postgres 10的pg_wal已满。我有文件pg_wal目录从2020年12月。我已启用“存档”,但我得到归档程序错误,我的应用程序停止工作。由于这个问题是在生产,我已禁用存档。
从日期为2020年12月和2021年1月的pg_wal中删除旧文件是否安全?
我可以看到:
postgres=# SELECT * FROM pg_replication_slots;
slot_name | plugin | slot_type | datoid | database | temporary | active | active_pid | xmin | catalog_xmin | restart_lsn | c onfirmed_flush_lsn
-----------+--------+-----------+--------+----------+-----------+--------+------------+------+--------------+--------------+---------------------
m9t0179g | | physical | | | f | f | | | | 50/B780000 |
m9t | | physical | | | f | f | | | | 3B0/EB000920 |
1条答案
按热度按时间kwvwclae1#
否。从不手动删除文件。
如果你将
archive_mode
设置为off
(并重新启动)或者将archive_command
更改为类似/bin/true
的内容(并重新加载),那么PostgreSQL将开始自行删除旧的WAL段。如果单凭这一点还不能解决问题,那么一定还有其他东西会阻止删除WAL段,比如一个过时的复制插槽。
这两个插槽都是可疑的,因为它们不是
active
,即当前未使用。至少第一个插槽肯定是过时的,因为它比第二个插槽落后3.5 TB。