在postgresql 10中删除archive_status日志文件是否安全

时间:2017-11-19 10:08:40

标签: postgresql ubuntu postgresql-bigsql

我不是DBA,但我使用postgresql生产服务器,我正在使用postgresql 10数据库。我正在使用Bigsql,我开始将我的生产服务器复制到其他服务器,并且在复制服务器上一切正常,但在我的生产服务器上,它们没有剩余空间。在我的生产服务器上执行du命令后,我得到pg_wal文件夹有17 GB的文件,每个文件的大小为16 MB。

在谷歌搜索之后,我将postgresql.conf文件更改为:

wal_level = logical
archive_mode = on
archive_command = 'cp -i %p /etc/bigsql/data/pg10/pg_wal/archive_status/%f'

我从Bigsql安装postgresql 10并做了以上更改。

更改后,dir / pg_wal / archive_status有16 GB的日志。所以我的问题是,我应该手动删除它们还是我必须等待系统自动删除它们。 如果我将archive_mode写入,那么wal文件会自动删除吗?

感谢您宝贵的时间。

1 个答案:

答案 0 :(得分:4)

这取决于您的备份方式以及是否需要将数据库还原到某个时间点。

只有完整的脱机文件系统备份(离线意味着关闭数据库)或带有pg_dumpall的在线逻辑备份才不需要这些文件进行恢复。

您需要这些文件来还原在数据库运行时创建的文件系统备份。没有它们,备份将无法恢复。虽然存在自动复制所需WAL文件的备份解决方案(如Barman)。

如果您的副本数据库由于某种原因会落后于主副本,那么您还需要这些文件。或者您需要将数据库恢复到过去的某个时间点。

但是这些文件压缩得很好 - 压缩后应该小于10% - 你可以编写archive_command来自动压缩它们而不是仅仅复制它们。

您应该最终从存档中删除它们。我建议不要删除它们,直到它们至少有一个月的时间,并且在创建它们之后至少完成2次完全成功的备份。