如何高效删除PostgreSQL数据库/wal目录下数千个WAL(Write-Ahead Logging)文件,释放磁盘空间,同时保证数据库的完整性?
-rw-------- 1 postgres postgres 16777216 2月5日14:11 000000020000000B0000004D
-rw-------- 1 postgres postgres 16777216 2月6日03:13 000000020000000B0000004E
-rw-------- 1 postgres postgres 16777216 2月6日07:57 000000020000000B0000004F
我的备份已损坏,因为该节不断向我显示此错误。
错误:[082]:WAL 段 000000020000000B00000093 在 60000 毫秒超时之前未存档
看来归档器有问题。设置
archive_mode = off
并重新启动 PostgreSQL,那么它将在下一个检查点之后自动删除 WAL 段。CHECKPOINT
如果您不想等待,可以使用该命令触发检查点。永远、永远不要删除
pg_wal
自己的任何文件。听起来您的存档设置已损坏。
https://www.postgresql.org/docs/16/wal-configuration.html
所以 - 您需要修复您的 wal 归档或将其关闭(删除
archive_command
)。显然,您会希望尽快让备份恢复工作。