【问题标题】:How to parse postgresql wal log file to sql如何将postgresql wal日志文件解析为sql
【发布时间】:2013-11-19 07:31:42
【问题描述】:

PostgreSQL 数据库服务器将“更改数据”存储在 WAL 日志文件中,我想将归档日志文件解析为 sql,如 mysqlbinlog parse binlog file to sql,我可以找到应用程序执行 sql。有人有这样的工具吗?

【问题讨论】:

    标签: postgresql wal


    【解决方案1】:

    你不能。这是对实际磁盘块的更改。

    如果您愿意,您可以将服务器设置为将所有 SQL 语句记录到文件中。不过,不确定您是否能够在不非常清楚事务边界的情况下重放它们。

    【讨论】:

      【解决方案2】:

      此功能目前正在开发中。 (寻找 Andres Freund 的“逻辑复制”补丁。)这是一个巨大的项目,所以不要屏住呼吸。简短的回答是:目前不可能。

      【讨论】:

      • 逻辑解码是在 9.4 中提交的,所以现在一切就绪,并且有使用它的工具。但是您只能在设置后将其用于解码,您不能追溯解码过去某个时间点创建的 WAL。 (我知道你知道彼得,为了其他发现这个问题的人的利益)。
      • wal 记录是否有关于其关系模式的任何信息?如果与记录对应的关系在解码发生之前被更改会怎样?
      【解决方案3】:

      如果您喜欢冒险,xlogdump 可能会帮助您从 WAL 段中提取数据。如果您确实只需要在集群中执行的 SQL,请设置 log_min_duration_statement = 0 以记录所有语句。

      【讨论】:

      • 这现在是contrib 中的核心模块pg_xlogdump。顺便说一句。
      【解决方案4】:

      现在您可以使用 SQL 进行复制。看pglogical。但是,它不包括架构更改。

      【讨论】:

        猜你喜欢
        • 2018-09-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-07
        • 1970-01-01
        • 2012-04-03
        • 1970-01-01
        • 2016-01-09
        相关资源
        最近更新 更多