复制副本实例的云SQL(Postgres)外部数据包装连接超时 [英] Cloud SQL (postgres) foreign data wrapper connection time out to replica instance

查看:18
本文介绍了复制副本实例的云SQL(Postgres)外部数据包装连接超时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嘿,连接到副本实例时,我们在使用CloudSQL中的postgres_fdw扩展时遇到一些问题。我们将问题转发给GCP支持,但他们的回答与我们的问题并不真正相关。因此,我们在这里进行另一次尝试:

问题

我们在应用程序中使用postgres_fdw扩展以便能够跨数据库运行联接。

我们在主实例上有2个数据库(它有一个副本实例)

  • 分析
  • 动物(这个名字有历史原因:d)

,并且过去具有来自Analytics->;Animal的外来数据包装连接。

documentation中所述,使用CloudSQL主实例的IP地址可以很好地工作。

外来数据包装设置与副本实例同步,因此仍指向主实例(-&>;仍在使用主实例的IP)。

图表将如下所示:

master--postgres_fdw(IP address A)--&>master(IP地址A)

副本--postgres_fdw(IP address A)--&>主服务器(IP地址A)

为了避免查询副本时遇到主实例,我们希望将设置更改为:

主服务器--postgres_fdw(IP address B)--&>副本服务器(IP地址B)

副本--postgres_fdw(IP address B)--&>副本(IP地址B)

我们希望在设置副本实例时更改IP地址,以使外来数据包装始终指向副本实例(也在主实例上,这很好)。

但是,通过副本服务器的IP和外来数据包装连接到副本服务器不起作用。导入架构(在主服务器上)时,我们始终会遇到连接超时

我们在主服务器上运行的安装脚本

BEGIN;

    CREATE EXTENSION IF NOT EXISTS postgres_fdw;

    --- Update foreign data server
    DROP SERVER IF EXISTS "animal_fdw" CASCADE;
    CREATE SERVER "animal_fdw" FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host '$FDW_HOST', dbname '$TARGET_DB_NAME');

    --- Create user mapping for default agrando user and metabase
    CREATE USER MAPPING FOR "$USER" SERVER "animal_fdw" OPTIONS(user '$USER', password '$PASSWORD');

    --- Update Schema
    DROP SCHEMA IF EXISTS "$SCHEMA_NAME";
    CREATE SCHEMA "$SCHEMA_NAME";

    --- The following line times out
    IMPORT FOREIGN SCHEMA public from SERVER "animal_fdw" into "$SCHEMA_NAME"
COMMIT;
  • $FDW_HOST=<IP_Address_A>(主)
  • 时起作用
  • IMPORT FOREIGN SCHEMA public from SERVER "animal_fdw" into "$SCHEMA_NAME"超时$FDW_HOST=<IP_Address_B>(副本)

日志

Thu, 10 Sep 2020 14:56:24 GMT
DROP SERVER
Thu, 10 Sep 2020 14:56:24 GMT
CREATE SERVER
Thu, 10 Sep 2020 14:56:24 GMT
CREATE USER MAPPING
Thu, 10 Sep 2020 14:56:24 GMT
CREATE USER MAPPING
Thu, 10 Sep 2020 14:56:24 GMT
CREATE USER MAPPING
Thu, 10 Sep 2020 14:56:24 GMT
DROP SCHEMA
Thu, 10 Sep 2020 14:58:36 GMT
CREATE SCHEMA
Thu, 10 Sep 2020 14:58:36 GMT
ERROR:  could not connect to server "animal_fdw"
Thu, 10 Sep 2020 14:58:36 GMT
DETAIL:  could not connect to server: Connection timed out
Thu, 10 Sep 2020 14:58:36 GMT
    Is the server running on host "<IP Address B>" and accepting
Thu, 10 Sep 2020 14:58:36 GMT
    TCP/IP connections on port 5432?

我们已经在所有环境中进行了尝试,以确保环境不受影响。我们还确保IP地址没有拼写错误

推荐答案

您使用的是已读副本,对吗?不能这样使用。

这篇关于复制副本实例的云SQL(Postgres)外部数据包装连接超时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆