暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBASE南大通用-GBase 8a集群节点替换

手机用户5523 2023-12-25
138

GBASE南大通用-GBase 8a集群节点替换

1简介

当集群规模不断扩大时,集群的节点损坏会成为一个比较常见的现象,同

时随着数据量的增大,单个节点的计算能力和存储能力也会成为瓶颈。这两种

情况下都需要对集群节点进行替换升级,使集群能够正常工作。

2功能概述

GBASE南大通用-GBase8a数据库节点替换针对节点机器彻底损坏的情况,通过节点替换流程来恢复数据,

最终达到替换损坏节点的目的。新旧机器使用相同的 IP。

节点替换过程中,集群状态必须是非 LOCK 状态。

在节点替换过程中,替换节点的状态会发生变化。

节点故障状态变更顺序为:

OFFLINE -> UNAVAILABLE -> REPLACE -> ONLINE

升级时状态变化过程如下:

ONLINE -> UNAVAILABLE -> REPLACE -> ONLINE

替换开始前:节点损坏,节点的状态为 OFFLINE,用户必须设置节点

状态为 UNAVAILABLE;

替换开始后:节点状态转换为 REPLACE

替换成功后:节点状态转换为 ONLINE

替换执行失败:节点状态回滚为 UNAVAILABLE

在节点替换过程中,集群模式会发生变化,模式变更顺序为:

NORMAL -> READONLY -> NORMALGBase 8a MPP Cluster 管理员手册

同步表结构前:集群模式为 NORMAL,集群可以正常操作

同步表结构期间:集群模式为 READONLY,只允许进行查询操作,不允

许任何 dml、ddl 以及加载操作,此时进行数据表结构的同步操作,

对用户数据表设置全同步标志。

同步完成后:集群模式为 NORMAL,集群可以正常操作

替换完成后,集群可以正常进行操作。

3注意事项

节点替换过程需要注意以下问题:

节点状态转换为 UNAVAILABLE 后,只有在节点替换成功的时候,节点

状态才能转换为 ONLINE。用户不能对 corosync 中的节点状态持久化

文件进行手工操作,如果手工修改持久化文件中的节点状态

(UNAVAILABLE -> ONLINE),会导致数据丢失。

设置节点为 UNAVAILABLE 时,若集群中有大量 ddl event,dml event

或 dmlstorage event 时,程序需要检查所有的 event,判断被设置状

态的节点的备份节点是否正常,有大量 event 时,该过程可能需要较

长时间。

开始节点替换时,若被替换节点有大量 ddl event,dml event 或

dmlstorage event 时,节点替换程序要将被替换节点的所有 event 删

除,该过程可能会需要较长时间。

损坏的节点上有 nocopy 表,数据无法恢复,必须用户手工进行恢

复。

损坏的节点上存在不通过集群命令创建的数据,这些数据无法恢复,

必须用户手工进行恢复。



在节点替换过程中,如果出现 replace.py 命令被强杀或者执行

replace.py 命令的机器掉电等现象,可能会导致集群状态处于GBase 8a MPP Cluster 数据抽取及加载工具参考手册



READONLY状态无法自行恢复正常。此时可以使用gcadmin switchmode

normal 恢复集群状态然后继续使用集群。或者再一次执行

replace.py 命令替换节点,节点替换成功后集群状态就恢复正常。



节点替换时,需保证 gbase 用户拥有 GCWare 配置文件

(/etc/corosync/corosync.conf)的访问权限,即该文件的权限属性

应为 644。



用户在执行节点替换前,必须保证执行替换的用户拥有安装程序目录

的读写权限,即可以在该目录下创建文件和子目录。



执行节点替换时,若出现宕机或掉电等情况,将导致替换失败,替换

节点和源节点上可能会有残留数据。此时需要再次执行节点替换,进

行残留数据清理,完成清理后方可重新进行节点替换操作。

4节点替换的步骤

4.1步骤一:检查网络

在进行节点替换操作前,首先要保证集群内的网络通畅。如果遇到网络异

常的情况,可以请网络管理员协助排查异常情况,恢复网络通畅。

4.2步骤二:gcadmin 设置要替换节点的状态

我们在操作系统的 gbase 用户(demo.options 文件中 dbauser 参数指定的

用户)下运行 gcadmin setnodestate 命令设置要替换的节点状态为

UNAVAILABLE。

注:gcadmin 设置要替换节点的状态,现在只支持单个节点设置。

4.3步骤三:准备用于节点替换的新机器 GBase 8a MPP Cluster 管理员手册

新机器安装和原节点机器相同的操作系统,使用相同的 ip,并符合集群

安装的要求:关闭防火墙、关闭 selinux。

4.4步骤四:gcadmin 查看集群各项状态

选择集群中一个 coordinator 节点,切换到 gbase 用户(demo.options 文

件中 dbauser 参数指定的用户),使用 gcadmin 命令来查看集群的各项状态。

集群的状态为如下时,表示正常:

CLUSTER STATE: ACTIVED

CLUSTER MODE: NORMAL

===============================================================

| GBASE COORDINATOR CLUSTER INFORMATION |

===============================================================

| NodeName | IpAddress |gcware |gcluster |DataState |

---------------------------------------------------------------

| coordinator1 | 192.168.153.126 | UNAVAILABLE | | |

===========================================================

| GBASE DATA CLUSTER INFORMATION |

===========================================================

|NodeName | IpAddress |gnode |syncserver |DataState |

-----------------------------------------------------------

| node1 | 192.168.153.126 | UNAVAILABLE | | |

如果 CLUSTER STATE: LOCKED:节点替换的后续步骤不能进行,必须解决

问题使集群的状态变为 ACTIVED,才可以继续。

4.5步骤五:replace.py 对节点进行替换安装

选择集群中一个 coordinator 节点,切换到 gbase 用户(demo.options 文

件中 dbauser 参数指定的用户),使用 replace.py 命令对要替换的节点进行替

换安装。GBase 8a MPP Cluster 数据抽取及加载工具参考手册

命令格式:

replace.py [options]

参数说明:

--host 指定将要替换的节点 ip 列表,用逗号分隔

--rootPwd root 用户的密码, 要求所有节点 root 密码一致。

--root_pwd_file 该参数支持 root 用户在多节点不同密码方式,与参数

rootPwd 不能同时使用,否则报错。

--dbaRootPwd 要替换节点的数据库 root 用户密码如果不为空,需要传入

该数据库 root 用户密码。目前密码中不支持单引号,其它特殊符号用单引号

包围。

--overwrite 强制覆盖安装,这个参数可选。

--sync_coordi_metadata_timeout 设置 coordinator 节点替换的超时时

间。默认值为 15,最小值为 1。

--parallel_pack coordinator节点替换并行打包开关。默认值为 0,最小

值为 1。

--retry_times节点替换时同步系统表retry次数。默认值为 3,最小值为

1,最大值为 2147483647。

--license_file 针对带有 License 认证的集群,在执行节点替换的时候,

需要提前生成 license文件,通过--license_file 参数将文件传入,在集群安

装成功后,集群可正常使用。

--passwordInputMode,可选,用于指定密码获取的方式,通过不同的参数

实现不同的获取方式。若指定该参数,则 demo.options 中的密码不必再修改。

默认值: file

取值范围:[file,pwdsame,pwddiff]GBase 8a MPP Cluster 管理员手册



1) file : 表示从文件获取,和原有的方式一致,该方式下,文件中的密

码是明文的;

2) pwdsame:表示从终端由用户输入密码,并且所有节点的密码一致情况

下使用该参数,对于不同用户密码只输入一次,适用于所有节点都用

这个密码;

3) pwddiff: 表示从终端由用户输入密码,并且节点间的密码不一致情

况下使用该参数,对于不同用户密码每个节点分别输入一次,适用于

不同节点使用不同的密码;

运行前提:

替换节点使用原有节点的 IP。

当用户没有使用强制安装选项,替换节点上不能存在集群软件。删除集群

软件时必须先停止相应节点的集群服务。集群服务包括:

1. coordinator 节点:corosync、gclusterd、gcrecover、gcmonit、

gcmmonit;

2. dataserver 节点:gbased、gc_sync_server;

用户使用强制安装选项时,用户必须保证替换节点上的有用的信息已经妥

善备份,否则可能导致数据无法恢复。

在已有的 coordinator 节点上使用 dba 用户执行。

如果替换 coordinator 集群节点,要求总数不可以超过 coordinator 集群

总数的一半,也就是保证集群不能是 LOCK 状态。

如果是 data 集群,不可以同时替换主备分片的节点,保证分片必须有可

用的备份源数据。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论