我如何压缩 WAL 文件?

Mar*_*cos 1 postgresql backup windows log write-ahead-logging

我喜欢紧凑的 WAL 文件。其实我这样做:

archive_command = 'cp "%p"C:\\%f"'
Run Code Online (Sandbox Code Playgroud)

最好的方法是什么?

Cra*_*ger 7

按照你的其他问题,听起来你有一个短,archive_timeout所以你的 WAL 档案大部分是空的,但仍然是完整的预分配 16MB 文件。

在大多数平台上,您只需对它们进行 gzip,例如

archive_command = 'gzip -c < "%p" > /archive/path/%f"'
Run Code Online (Sandbox Code Playgroud)

在 Windows 上,由于缺少gzip命令,这将无法在本地工作。您需要安装一个可从命令行使用的压缩实用程序,因为 Windows zip 支持不能直接从命令行使用。

我建议安装7-zip,然后在你的 中使用它,archive_command类似(未经测试):

archive_command = '%PROGRAMFILES%\7zip\7z.exe a "C:\\TheWALArchive\%f" "%p"'
Run Code Online (Sandbox Code Playgroud)

请注意,您restore_command将需要相应的解压步骤。