我有一台主服务器,另外两台服务器正在从主服务器复制。
我在主服务器上获得了完整的磁盘空间(我有一个archive_command
将 wal 档案放入/wal_archive/
目录中)。
它已满,PostgreSQL 日志显示错误:
archive command failed:
2019-06-04 09:52:49.079 EEST [3365] LOG: archive command failed with exit code 1
2019-06-04 09:52:49.079 EEST [3365] DETAIL: The failed archive command was: test ! -f /wal_archive/000000010000028C0000003B && cp pg_xlog/000000010000028C0000003B /wal_archive/000000010000028C0000003B
我用 清理了/wal_archive/
目录pg_archivecleanup
,但 PostgreSQL 仍然抛出同样的错误。
我试图重新加载 PostgreSQL 配置而不更改配置本身并且不使用以下命令重新启动:
/etc/init.d/postgresql reload
但还是一样,在日志中,PostgreSQL 会抛出一个错误。我应该如何恢复 wal_archive 复制到 wal_archive 目录?
我是否应该更改archive_command
为true
、重新加载并将存档再次更改回原始文件?
我试图避免重新启动服务器本身。
似乎归档在空间用完之前设法部分写入了 WAL 归档文件。
然后
test
你archive_command
会注意到已经有一个同名的 fike 并且会失败。在这种情况下,解决方案是手动删除部分归档的 WAL 段,以便下一次归档它的尝试可以成功。
如果失败,您可能希望
archive_command
通过删除文件来改进您的文件cp
(同时仍返回非零返回码)。