CN隔离恢复
集群CN由于故障被隔离时,可以根据本节内容恢复故障CN。该操作仅支持在分布式部署模式下执行。
背景信息
部署集群时,建议用户将CN实例分散部署在其他多个服务器上,以避免主机故障造成的集群不可用。如表1所示。
主机 |
AZ |
CN |
CM |
ETCD |
DN |
---|---|---|---|---|---|
plat1 |
AZ1 |
CN 1 |
CM备 |
ETCD1 |
DN1备 |
plat2 |
AZ1 |
CN 2 |
CM主 |
ETCD2 |
DN2备 |
plat3 |
AZ1 |
- |
- |
ETCD3 |
DN1主 |
plat4 |
AZ1 |
- |
- |
- |
DN2主 |
前提条件
- 不支持恢复由于物理损坏而被隔离并替换的故障CN。
- 在故障CN恢复期间,不允许进行DDL操作。
- 如果集群中有负载均衡组件,需要从负载均衡组件中剔除对故障CN的业务分发。在故障恢复后,再在负载均衡组件中恢复CN。
操作步骤
- 以omm用户身份登录GaussDB 100被隔离CN所在服务器。
- 使用以下命令查看集群状态。
gs_om -t status
状态显示为DELETED的CN,为被隔离的CN。集群状态详解,请参见集群状态查询。
- (可选)故障CN被隔离期间,如果在其它正常CN上进行过DDL操作,需要将元数据同步到故障CN上。
- 在故障CN上以本地登录方式使用zsql连接数据库。
zsql / as clsmgr -D cn_data_dir
- (可选)如果使用zsql连接失败,需要使用如下命令手工启动CN进程后再使用命令“zsql / as clsmgr -D cn_data_dir”本地登录故障CN。
zengine open --coordinator -D cn_data_dir
- 将元数据同步到故障CN上。
@业务DDL脚本.sql
- 退出当前链接。
exit
- 使用以下命令,关闭CM自动更新CN和DN的路由信息表功能。
cm ctl updateCNSwitchCmd updateNodeRoute=OFF
- 关闭CM检测CN自动隔离开关。
cm ctl set -p CoordinatorHeartbeatTimeout -v 0
- 在除故障CN以外的集群所有CN、主DN上,以本地登录方式执行以下命令,加回故障节点。
本地登录CN的命令为“zsql / as clsmgr -D cn_data_dir”,本地登录DN的命令为“zsql / as sysdba -D dn_data_dir”。
CREATE NODE cn_name WITH ( TYPE = 'coordinator', NODEID =401, HOST = '192.168.0.3 ', PORT = 8000, USERNAME = omm, PASSWORD = 'gaussdb_123' );
- 恢复集群中故障CN的状态。
cm ctl restoreCn -H host_name -I instance_name
- 重启故障CN。
gs_om -t start -h host_name -I cn_name
- 打开CM检测CN自动隔离开关。
cm ctl set -p CoordinatorHeartbeatTimeout -v 300
系统默认CN故障5分钟(即300秒)后进行故障隔离。
- 启动CM的自动更新CN和DN的路由信息表功能。
cm ctl updateCNSwitchCmd updateNodeRoute=ON
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」关注作者【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。评论
- (可选)如果使用zsql连接失败,需要使用如下命令手工启动CN进程后再使用命令“zsql / as clsmgr -D cn_data_dir”本地登录故障CN。
- (可选)故障CN被隔离期间,如果在其它正常CN上进行过DDL操作,需要将元数据同步到故障CN上。