他的回复:
出现以上报错:1、首先需要确定数据库DN节点的haPort(分布式存在dn和cn,集中式只有dn节点),可以通过cm_ctl query -Cpvid 查看数据库对应dn节点的haPort,[ Datanode State ]下面展示的即为各个DN节点的node node_ip instance state其中就包含haPort使用逻辑复制功能连接时,连接串中的端口为haPort,通常默认是所连接DN的port+1端口。如:jdbc:postgresql://xxx.xxx.xxx.xxx:8001/postgres2、确保开启了白名单,在连接dn节点的时候,确保开启了连接白名单,否则会有以下报错FATAL: no gs_hba.conf entry for replication connection from host "X.X.X.X", user "Ruby", SSL off处理方法•针对用户没有解码权限场景:为解码用户(如下以Ruby为例)赋予解码角色权限,执行以下SQL语句:GRANT gs_role_replication TO Ruby;•针对连接CN解码白名单未配置场景:使用gs_guc工具,为用户名(以Ruby为例)和用户所在机器IP(如下用X.X.X.X指代,实际使用时需替换为正确IP)在数据库解码节点上配置白名单:gs_guc reload -Z coordinator -N all -I all -h 'host replication Ruby X.X.X.X/32 sha256'•针对直连DN解码白名单未配置场景:使用gs_guc工具,为用户名(以Ruby为例)和用户所在机器IP(如下用X.X.X.X指代,实际使用时需替换为正确IP)在数据库解码节点上配置白名单:gs_guc reload -Z datanode -N all -I all -h 'host replication Ruby X.X.X.X/32 sha256'•针对连接CN解码时,指定用户未在主DN上配置来自CN连接的白名单:使用gs_guc工具,为用户名(以Ruby为例)和解码连接CN所在机器IP(如下用X.X.X.X指代,实际使用时需替换为正确IP)在主DN节点上配置白名单:gs_guc reload -Z datanode -N all -I all -h 'host replication Ruby X.X.X.X/32 trust'