复制副本实例的云SQL(Postgres)外部数据包装连接超时 [英] Cloud SQL (postgres) foreign data wrapper connection time out to replica instance
本文介绍了复制副本实例的云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屋!
查看全文