1

我需要将企业生产数据库从运行 Postgres 9.5 的 Windows 源计算机迁移到运行 Postgres 11.6 的 Ubuntu 目标计算机,并且停机时间小于 15 分钟。我打算用 pglogical 来做这件事,这需要在源和目标上都加载扩展。我在源端遇到问题,因为它是 Windows。

我对 Postgres-Windows 的经验很少,既找不到任何关于特定情况的有用文献,也无法自己弄清楚如何从源代码安装。

4

2 回答 2

1

Alex,您在自己的评论中链接到的 2ndQuadrant 文章解决了这个问题。那里提到的一些项目或构建选项在较新的 VisualStudio 社区版本中发生了一些变化,所以我可以看到你在哪里挂了。

只是为了好玩,我在我最旧的 Windows 实例上编译了 32 位 DLL。我包含了 /Release 路径,因此您可以获取我的 DLL 并查看它是否适合您。它是(a)32 位,因为我假设旧的 v9.5 安装是最坏的情况,并且(b)针对 Postgres 9.6,因为那是我安装的。除非有重大的 API 更改,否则它应该可以毫无问题地连接到 v9.5:

如果您发现您需要一个完全匹配 Postgres 9.5 的版本,请获取我的解决方案文件和 VS Community 20xx。加载项目并更新Additional Include Directories项目配置以定位您的 v9.5 路径。这应该是链接 v9.5 Postgres 库所需的全部内容。

于 2020-01-09T03:47:55.517 回答
1

我挖了又挖,到目前为止,我能找到的唯一答案是“呃……Windows”。似乎从源代码构建的唯一方法是使用 Visual Studio,我没有也不知道如何使用它。

资料来源:

https://www.2ndquadrant.com/en/blog/compiling-postgresql-extensions-visual-studio-windows/

https://postgrespro.ru/list/thread-id/1835275

于 2019-12-31T06:21:13.673 回答