【问题标题】:Compress xlog when restoring postgres db?恢复postgres db时压缩xlog?
【发布时间】:2013-08-01 02:40:46
【问题描述】:

对于 postgres,

我使用“pg_dump”转储数据库,然后使用“psql”在其他服务器上恢复数据库。我发现在 pg_xlog/ 创建了大量的 WAL 日志,这消耗了大量的磁盘空间。

postgres 有没有办法自动压缩这些 WAL 日志?

我在 postgres 手册中看到了“archive_command”设置。方向正确吗?

【问题讨论】:

    标签: postgresql-9.1 wal


    【解决方案1】:

    是的,archive_command 是您要查找的指令。来自the manual

    archive_command (string)

    用来归档一个完整的 WAL 文件段的 shell 命令。 字符串中的任何 %p 都被替换为文件的路径名 存档,并且任何 %f 仅替换为文件名。 (路径名 相对于服务器的工作目录,即 集群的数据目录。)使用 %% 将实际的 % 字符嵌入 命令。命令返回零退出很重要 仅在成功时的状态。有关详细信息,请参阅第 24.3.1 节。

    这个参数只能在 postgresql.conf 文件或者 服务器命令行。除非 archive_mode 在 服务器启动。如果archive_command 是一个空字符串(默认) 启用 archive_mode 时,暂时禁用 WAL 归档, 但服务器继续在 期望很快会提供命令。环境 archive_command 到一个除了返回 true 什么都不做的命令,例如 /bin/true(Windows 上的 REM),有效地禁用归档,但也 破坏了归档恢复所需的 WAL 文件链,因此它 只应在不寻常的情况下使用。

    Postgres wiki 有一个例子:

    # Enable WAL archiving on the primary to an archive directory accessible from
    # the standby. If wal_keep_segments is a high enough number to retain the WAL
    # segments required for the standby server, this is not necessary.
    archive_mode    = on
    archive_command = 'cp %p /path_to/archive/%f'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-29
      • 2012-04-15
      • 1970-01-01
      • 2023-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多