到副本实例的云SQL(postgres)外部数据包装连接超时



嘿,当连接到副本实例时,我们在CloudSQL中使用postgres_fdw扩展时遇到了一些问题。我们将问题转交给了GCP支持,但他们的回答与我们的问题无关。因此,我们在这里有另一个尝试:

问题

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

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

  • 分析
  • 动物(名称有历史原因:D(

并且曾经具有来自分析的外部数据包装器连接->动物

如文档中所述,使用CloudSQLmaster实例的IP地址可以很好地工作。

外部数据包装设置同步到副本实例,因此仍然指向主实例(->仍然使用主实例的IP(。

A";图表";会是这样的:

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

复制副本--postgres_fdw(IP address A)->主(IP地址A(

为了避免在查询副本时碰到主实例,我们想将设置更改为:

master--postgres_fdw(IP address B)->复制品(IP地址B(

复制副本--postgres_fdw(IP address B)->复制品(IP地址B(

我们想更改这一点,以便我们的外部数据包装器在设置时通过更改IP地址始终指向副本实例(也在主实例上,这很好(。

但是,通过复制副本的IP和外部数据包装器连接到复制副本不起作用。当导入架构(在主服务器上(时,我们总是会收到连接超时

我们在master上运行的安装脚本

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>(主(时工作
  • $FDW_HOST=<IP_Address_B>(副本(时IMPORT FOREIGN SCHEMA public from SERVER "animal_fdw" into "$SCHEMA_NAME"超时

日志

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地址中没有拼写错误

您使用了读取副本,对吗?不能这样使用。

相关内容

  • 没有找到相关文章

最新更新