【问题标题】:postgresql pgbadger error - can not load incompatible binary data, binary file is from version < 4.0postgresql pgbadger 错误 - 无法加载不兼容的二进制数据,二进制文件来自版本 < 4.0
【发布时间】:2020-06-20 15:08:29
【问题描述】:

我正在尝试使用 pgbadger 为 postgres 慢查询日志文件制作 html 报告。我的 postgres 日志文件在文件夹 pg_log 中采用 csvlog 格式。我传输所有日志文件 (80 个文件,每个 10 MB)到我的本地 Windows 机器并尝试为所有文件生成单个 html 报告。我通过以下方式从所有文件中创建了一个文件,

type postgresql-2020-06-18_075333.csv > postgresql.csv
type postgresql-2020-06-18_080011.csv >> postgresql.csv
....
....
type postgresql-2020-06-18_094812.csv >> postgresql.csv

我下载了“pgbadger-11.2”并尝试了以下命令,但出现错误。

D:\pgbadger-11.2>perl --version
This is perl 5, version 28, subversion 1 (v5.28.1) built for MSWin32-x64-multi-thread

D:\pgbadger-11.2>perl pgbadger "D:\June-Logs\postgresql.csv" -o postgresql.html
[========================>] Parsed 923009530 bytes of 923009530 (100.00%), queries: 1254764, events: 53
can not load incompatible binary data, binary file is from version < 4.0.
LOG: Ok, generating html report...

postgresql.html 已创建,但任何选项卡中都没有数据。但是当我为单个 csv 创建单独的报告时它可以工作。如下所示。

D:\pgbadger-11.2>perl pgbadger "D:\June-Logs\postgresql-2020-06-18_075333.csv" -o postgresql-2020-06-18_075333.html
D:\pgbadger-11.2>perl pgbadger "D:\June-Logs\postgresql-2020-06-18_080011.csv" -o postgresql-2020-06-18_080011.html
...
D:\pgbadger-11.2>perl pgbadger "D:\June-Logs\postgresql-2020-06-18_094812.csv" -o postgresql-2020-06-18_094812.html

请建议我解决这个问题。

【问题讨论】:

    标签: postgresql pgbadger


    【解决方案1】:

    我之所以这么说是因为:

    type postgresql-2020-06-18_075333.csv > postgresql.csv
    type postgresql-2020-06-18_080011.csv >> postgresql.csv
    

    很确定这是在引入 Windows 行尾,而 pgBadger 正在寻找 Unix 行尾。你能在服务器上做连接吗?

    更新。唔。跑过这个

    https://github.com/darold/pgbadger/releases

    “这个新版本打破了对旧二进制文件或 JSON 的向后兼容性 文件。这也意味着增量模式将无法读取 旧的二进制文件 [...] 添加有关版本的警告并跳过加载不兼容的二进制文件。

    • 将代码格式化程序更新到 pgFormatter 4.0。”

    不知道为什么它在 CSV 日志上失败,仍然是什么版本的 pgBadger 生成日志?

    【讨论】:

    • 嗨@Adrian。我试了一下。我通过“cat postgresql-2020-06-18_080011.csv >> postgresql.csv”为所有 80 个文件连接服务器上的文件,并将该大文件传输到本地。我用匹配的行号验证了组合文件,没关系。我尝试使用 pgbadger 获取大文件,但再次遇到同样的错误。
    • 我的 pgBadger 版本是 11.2,这是为 MSWin32-x64-多线程构建的最新版本和 perl 5,版本 28,subversion 1 (v5.28.1)。根据文档,看起来错误已在 11.2 中修复,但我仍然收到错误消息。它甚至没有给出行号之类的提示,否则我可能会丢失一些记录。
    • 我不知所措。我唯一能想到的就是在这里提出问题:github.com/darold/pgbadger/issues
    猜你喜欢
    • 2021-01-13
    • 2021-05-13
    • 2015-05-23
    • 2022-12-21
    • 1970-01-01
    • 1970-01-01
    • 2011-01-02
    • 2016-05-06
    • 1970-01-01
    相关资源
    最近更新 更多