GreemPlum怎样将故障恢复后的主库加入集群

环境介绍:

原主库IP      原主库hostname

192.168.1.202   pc1

192.168.1.204   pc3

 

当原主库故障恢复后,在原主库上执行gpstart -a时报错:

gpstart:pc1:gpadmin-[ERROR]:-gpstart error: Standby activated, this node no more can act as master.

执行gpstart -m虽然能启动成功,但是只是master-only模式,不能登录该数据库。

1 将原主库以standby的角色加入

1.1 删除原master的数据目录

cd /data/greenplum/data/master

mv gpseg-1 gpseg-1_bak

1.2 将原主库以standby的角色加入集群

在现主库上执行:

gpinitstandby -s pc1

--pc1是原主库的主机名

如果报错:

-[ERROR]:-Failed to copy data directory from master to standby.

20200331:15:20:51:008596 gpinitstandby:pc3:gpadmin-[ERROR]:-Failed to create standby

[ERROR]:-Error initializing standby master: ExecutionError: 'non-zero rc: 1' occurred.  Details: 'ssh -o StrictHostKeyChecking=no -o ServerAliveInterval=60 pc1 ". /usr/local/greenplum-db/./greenplum_path.sh; pg_basebackup -c fast -D /data/greenplum/data/master/gpseg-1 -h pc3 -p 5432 --xlog --force-overwrite --write-recovery-conf --target-gp-dbid 7 -E ./db_dumps -E ./gpperfmon/data -E ./gpperfmon/logs -E ./promote --progress --verbose"'  cmd had rc=1 completed=True halted=False

请确认原主库的防火墙端口是否开通

 

#查看master standby信息

[gpadmin@pc3 ~]$ gpstate -f

1.3 主从切换

#杀掉pc3的master节点:

gpstop -m

 

#激活pc1上的standby master

gpactivatestandby -d $MASTER_DATA_DIRECTORY

 

#检查集群状态

gpstate -s

会看到Master host变成pc1了。

1.4 将最初的standby master以standby角色加入集群

主从切换完成后,会显示Master standby                 = No master standby configured。

所以需要将pc3以standby的角色加入集群,请参考1.1,1.2步骤:

 

正常情况下standby master的状态应该是这样的:

Standby host passive

1.5 需要确保master节点的keepalive处于启动状态,并确保浮动ip在master节点而非standby master节点

#检查keepalive状态命令

systemctl status keepalived

#启动keepalive命令:

systemctl start keepalived

若浮动ip在standby master上,则须在standby master上执行systemctl stop keepalived停止keepalive,使得浮动ip漂移到master上。 确定浮动ip漂移完成后,再启动standby master的keepalive。

--本篇文章主要参考了https://blog.51cto.com/ylw6006/2088991

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好,针对您的问题,可以通过以下步骤操作: 1. 首先查看故障节点的状态,可以使用以下命令检查: curl -XGET 'http://localhost:9200/_cat/nodes?v' 该命令将列出所有ES节点的信息,例如: ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name 127.0.0.1 50 90 5 0.04 0.10 0.23 mdi * es-master-1 127.0.0.1 30 60 3 0.01 0.05 0.19 mdi - es-node-1 127.0.0.1 30 60 3 0.01 0.05 0.19 mdi - es-node-2 127.0.0.1 50 90 5 0.04 0.10 0.23 mdi - es-node-3 从上面的结果中可以看到,有三个节点处于正常状态,一个节点(state列未知)处于故障状态。 2. 接下来,您需要在故障节点上执行重启操作,可以使用以下命令: systemctl restart elasticsearch.service 这个命令将会重启ES服务。 3. 然后,您需要确保配置文件中的所有集群相关信息都是正确的,如下所示: cluster.name: your_cluster_name node.name: your_node_name network.host: your_host_ip #发现节点的地址信息,可以是多个 discovery.seed_hosts: ["192.168.10.10","192.168.10.11","192.168.10.12"] cluster.initial_master_nodes: ["node1","node2","node3"] 在上面的代码中,“discovery.seed_hosts”属性指定了节点地址列表,“cluster.initial_master_nodes”属性指定了初始主节点列表。确保这些信息与集群配置一致。 4. 最后,执行以下命令,加入集群: bin/elasticsearch 这个命令将启动您的ES节点并将其添加到集群中。 希望上述步骤能够解决您的问题,如果您有其他问题或疑问,请随时联系我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值