【问题标题】:could not access file wal2json no such file or directory无法访问文件 wal2json 没有这样的文件或目录
【发布时间】:2020-11-22 20:36:52
【问题描述】:

我是 PostgreSQL 新手。我正在尝试在笔记本电脑中安装的 PostgreSQL 中实现逻辑复制。

当我运行以下查询来创建复制槽时,我得到了

could not access file wal2json: no such file or directory 
SELECT * FROM pg_create_logical_replication_slot('test_slot', 'wal2json');

在谷歌搜索后,我了解到 wal2json 是一种额外的扩展类型,需要单独设置。

有人知道如何在安装在本地笔记本电脑(Windows 操作系统)上的 PostgreSQL 中设置“wal2json”吗?

【问题讨论】:

    标签: postgresql change-data-capture


    【解决方案1】:

    wal2json 是一个插件(不是扩展),需要单独安装。 README.md 文件包含一些关于为 Windows 安装它的信息。我认为您将更轻松地在 Linux 虚拟机中安装和管理 PostgreSQL 和插件。

    【讨论】:

    • 谢谢乔纳森。我看过这个 github 链接,但不清楚如何在 Windows 中安装。当我按照步骤使用 Microsoft Visual Studio 创建 dll 时。它给出了一些编译错误。因此,我正在检查是否还有其他选择。
    • 那么可能会问一个关于那个编译错误的问题。
    • 正如@LaurenzAlbe 所写:询问你真正的障碍。您也可以在 Github 存储库中打开问题。
    【解决方案2】:

    您可以在此处找到 wal2json 的二进制文件:https://www.striim.com/docs/smsgc/en/smsgc-how-to-guides/postgresql-to-google-cloud-postgresql-migration-guide/set-up-the-postgresql-source.html

    (它们是由第三方 Striim 提供的,但该公司看起来是合法的,所以我并不担心。)

    下载后,将dll文件复制到C:\Program Files\PostgreSQL\VERSION\lib文件夹中,然后重启PostgreSQL。

    编辑:实际上,在尝试使用 NodeJS 的 wal2json 扩展时,上面预构建的 Windows 10 二进制文件与我的 Postgres 安装之间似乎有些不兼容。我在 Postgraphile 中收到以下错误:

    Could not Initiate PgLDSSourcePlugin, continuing without LDS live queries. Error: Couldn't create replication slot, seems you don't have wal2json installed? Error: could not load library "C:/Program Files/PostgreSQL/13/lib/wal2json.dll": The specified procedure could not be found.
    

    所以最后我不得不自己编译 dll,正如wal2json readme 指定的那样。 (我遇到了编译错误,所以我尝试将 Visual Studio 从 2015 升级到 2019。一旦我这样做了,构建很容易完成。我只是打开了wal2json.vcxproj 文件,按下Build->Build wal2json,然后复制了 dll 文件生成到 PostgreSQL lib 文件夹中。)

    【讨论】:

      猜你喜欢
      • 2016-02-26
      • 2022-01-15
      • 2014-01-16
      • 2020-08-18
      • 2019-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多