primary节点服务器失效不可恢复,...
 
通知
清除全部

primary节点服务器失效不可恢复,导致集群缺少足够的primary,启动失败,那么如何从有效的mirror导出数据  

页 1 / 2

Peter
帖子: 21
青梅少侠
已加入: 3月 前

各位老师,最近遇到了如题的情况,想尝试从mirror导出测试数据,但是在操作的过程中遇到如下问题。麻烦各位老师能够帮忙看看,谢谢

环境:

greenplum5.27.0

Centos7.8

测试目的:模拟primary节点故障无法恢复,数据丢失,集群不能启动。而对应的mirror可以正常单独启动,尝试从mirror导出数据。

测试步骤:

我尝试将测试集群停止

gpstop -af

然后对其中一个mirror实例进行单独启动

$GPHOME/bin/pg_ctl -D /data/mirror/gpseg51 -l /data/mirror/gpseg51/pg_log/startup.log -w -t 600 -o " -p 51001 --gp_dbid=5 --gp_num_contents_in_cluster=2 --silent-mode=true -i -M quiescent --gp_contentid=1 " start 2>&1

启动的结果如下

aiting for server to start.... done
server started in mirror or quiescent mode

对于primary这样的操作我可以直接如下访问是没问题的:

PGOPTIONS='-c gp_session_role=utility' psql -d work -p 50001

但是对mirror就不能这么访问提示如下信息:

psql: FATAL: the database system is in mirror or uninitialized mode。

问题:

如何在这个情况下访问mirror

7 回复
Peter
帖子: 21
青梅少侠
已加入: 3月 前

集群配置是2p+2m的模式。这个情况下,发现mirror和primary的启动命令,除了端口和目录不一致之外,其余全都是一样的。

所以也测试了primary,也是访问不了。

但是前面说的,能够访问是在集群还未添加mirror的情况下测试的。

回复
Peter
帖子: 21
青梅少侠
已加入: 3月 前

然后突然想到,是否mirror也可以按照mirrorless模式进行启动,发现也是可以对mirror实例进行启动:waiting for server to start.... done
server started

这种模式下是可以对集群进行访问的就是可以的

回复
gfphoenix
帖子: 3
初出茅庐
已加入: 3周 前

primary失败后,集群不会把primary标记为down,提升mirror吗?

回复
1 回复
Peter
已加入: 3月 前

青梅少侠
帖子: 21

@gfphoenix 肯定会的,只不过很不巧,物理机连续宕机两台导致primary不够,相当于mirror也都挂了 🤣

回复
gfphoenix
帖子: 3
初出茅庐
已加入: 3周 前

在最新的GPDB里,同样不可以直接以utility方式连接mirror。需要打开hot_standby,并打一个patch,才可以以utility方式连接到mirror上。默认的GPDB关闭了hot_standby, 并且没有上面说的patch。

回复
1 回复
Peter
已加入: 3月 前

青梅少侠
帖子: 21

@gfphoenix 你说的我都看不懂 🤣 。但是把mirror以mirrorless模式启动就可以utility模式访问。应该就是你说的hot_standby模式吧 😥 

回复
页 1 / 2

关注微信公众号

Greenplum中文社区

Greenplum官方微信群

扫码加入我们的技术讨论,请备注“网站”