【发布时间】:2013-11-19 07:31:42
【问题描述】:
PostgreSQL 数据库服务器将“更改数据”存储在 WAL 日志文件中,我想将归档日志文件解析为 sql,如 mysqlbinlog parse binlog file to sql,我可以找到应用程序执行 sql。有人有这样的工具吗?
【问题讨论】:
标签: postgresql wal
PostgreSQL 数据库服务器将“更改数据”存储在 WAL 日志文件中,我想将归档日志文件解析为 sql,如 mysqlbinlog parse binlog file to sql,我可以找到应用程序执行 sql。有人有这样的工具吗?
【问题讨论】:
标签: postgresql wal
你不能。这是对实际磁盘块的更改。
如果您愿意,您可以将服务器设置为将所有 SQL 语句记录到文件中。不过,不确定您是否能够在不非常清楚事务边界的情况下重放它们。
【讨论】:
此功能目前正在开发中。 (寻找 Andres Freund 的“逻辑复制”补丁。)这是一个巨大的项目,所以不要屏住呼吸。简短的回答是:目前不可能。
【讨论】:
如果您喜欢冒险,xlogdump 可能会帮助您从 WAL 段中提取数据。如果您确实只需要在集群中执行的 SQL,请设置 log_min_duration_statement = 0 以记录所有语句。
【讨论】:
contrib 中的核心模块pg_xlogdump。顺便说一句。
现在您可以使用 SQL 进行复制。看pglogical。但是,它不包括架构更改。
【讨论】: