通过 ssh 隧道设置 pglogical,由对等方重置连接
Setting up pglogical over ssh tunnel, connection reset by peer
我正在内部部署的 PostgreSQL 10.14(发布者和 AWS RDS Postgresql 10.16(订阅者)之间设置 pglogical 复制,但是在设置订阅之后,我只能进行连接重置。任何人都可以发现我的问题吗?我做错了吗?
网络设置:
On-premise postgres < jumphost > <-- ssh tunnel --> AWS RDS
internal-ip 10.2.0.8 db01.some.tld
我已验证 ssh 隧道正在运行:
- 我可以使用连接到隧道的 psql 从 AWS 连接到内部部署的 postgres
- 使用 postgres_fwd
时,我什至可以从 AWS RDS 连接到内部部署的 postgres
逻辑设置:
本地:
- 使用 dsn 创建节点
host=10.2.0.8 dbname=... user=... password=...
AWS:
- 使用 dsn 创建节点
host=db01.some.tld dbname=... user=... password=...
- 使用 dsn 创建订阅
host=10.2.0.8 dbname=... user=... password=...
一旦完成:
- pg 逻辑进程在提供者和订阅者上都是 运行
- 但我遇到以下 错误 :
AWS:
LOG: could not receive data from client: Connection reset by peer
LOG: unexpected EOF on client connection with an open transaction
内部部署:
LOG: unexpected EOF on client connection with an open transaction
我试过摆弄日志参数,但没有得到任何有用的信息。同样,我无法从 ssh 隧道日志中获得任何帮助。
知道我做错了什么吗?
想通了。在这种情况下:
连接正常。但是,副本上一个 table 的模式存在问题,导致复制失败。
我正在内部部署的 PostgreSQL 10.14(发布者和 AWS RDS Postgresql 10.16(订阅者)之间设置 pglogical 复制,但是在设置订阅之后,我只能进行连接重置。任何人都可以发现我的问题吗?我做错了吗?
网络设置:
On-premise postgres < jumphost > <-- ssh tunnel --> AWS RDS
internal-ip 10.2.0.8 db01.some.tld
我已验证 ssh 隧道正在运行:
- 我可以使用连接到隧道的 psql 从 AWS 连接到内部部署的 postgres
- 使用 postgres_fwd 时,我什至可以从 AWS RDS 连接到内部部署的 postgres
逻辑设置:
本地:
- 使用 dsn 创建节点
host=10.2.0.8 dbname=... user=... password=...
AWS:
- 使用 dsn 创建节点
host=db01.some.tld dbname=... user=... password=...
- 使用 dsn 创建订阅
host=10.2.0.8 dbname=... user=... password=...
一旦完成:
- pg 逻辑进程在提供者和订阅者上都是 运行
- 但我遇到以下 错误 : AWS:
LOG: could not receive data from client: Connection reset by peer
LOG: unexpected EOF on client connection with an open transaction
内部部署:
LOG: unexpected EOF on client connection with an open transaction
我试过摆弄日志参数,但没有得到任何有用的信息。同样,我无法从 ssh 隧道日志中获得任何帮助。
知道我做错了什么吗?
想通了。在这种情况下:
连接正常。但是,副本上一个 table 的模式存在问题,导致复制失败。