首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安装pglogical:查找postgres包含文件夹,将所有包含文件夹添加到C_INCLUDE_PATH

安装pglogical:查找postgres包含文件夹,将所有包含文件夹添加到C_INCLUDE_PATH
EN

Database Administration用户
提问于 2022-02-19 19:12:23
回答 1查看 630关注 0票数 1

我试图在postgres数据库中安装pglogical扩展,我用自制软件在macOS上安装了这个扩展。当我准备用数据库迁移服务将我的数据库迁移到CloudSQl时,我正在遵循GCP博客上提供的说明。

我正在努力完成这些步骤的以下步骤,并可能需要一些建议:

查找本地安装的Postgres,查找包含文件夹,将所有包含文件夹添加到C_INCLUDE_PATH

我的问题是:

  • 我找到了包含pg_config --includedir的文件夹
  • 但是现在,pglogical C_INCLUDE_PATH变量在哪里?(我搜索了pglogical,但没有找到它),或者在哪里创建C_INCLUDE_PATH变量?
  • 我是否要将包含文件夹的所有子目录添加到C_INCLUDE_PATH变量中?

当我在pglogical中运行make时,我得到以下信息:

代码语言:javascript
复制
sed 's/__PGLOGICAL_VERSION__/2.4.1/;s/__REQUIRES__//' /.../.../Documents/pglogical/pglogical.control.in > /.../.../Documents/pglogical/pglogical.control
EN

回答 1

Database Administration用户

发布于 2022-02-21 04:02:23

pglogical第二象限提供的第三方PostgreSQL扩展,不是postgreSQL的一部分。其中有些是用C++编写的,因此必须在运行它的平台上编译和构建。虽然通过homebrew为macos提供了许多预先构建的工具和软件包,但pglogical似乎并不是其中之一--正是我对此的搜索使我想到了您的问题。

备选方案有:

  • 从源代码构建、安装和启用macos版本
  • 在postgres旁边的Docker容器中安装一个打包的linux版本
  • 在云提供商上运行一个版本(我正在使用AWS,看起来您在GCP上)

在macos上构建和安装非常简单。在我的例子中,我使用homebrew安装了postgresql (14.1)。一旦完成:

  • 克隆github的逻辑扩展
  • 如果您不确定,请确保安装了XCode和命令行工具-运行brew doctor
  • 遵循“类unix平台”这里:的说明
    • make PG_CONFIG=/usr/local/Cellar/postgresql/14.1_1/bin/pg_config
    • make PG_CONFIG=/usr/local/Cellar/postgresql/14.1_1/bin/pg_config install

接下来,在postgres中向shared_preload_libraries添加扩展:

  • cd /usr/local/var/postgres
  • 编辑postgresql.conf
    • 找到注释行shared_preload_libraries
    • 添加一行shared_preload_libraries = 'pglogical';

  • 重新启动postgres (使用自制:brew services restart postgresql)

最后,在本地服务器中启用扩展:

  • psql
    • 应该响应的CREATE EXTENSION pglogical
    • CREATE EXTENSION

这一切对我都有用!希望你的运气也一样好。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/307728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档