天津南大通用数据技术股份有限公司是国内少有的专注于数据库产品研发,并且在金融、电信行业得到规模化应用的独立数据库服务商。GBase 8a 是南大通用公司面向海量数据分析型应用领域,以列存储,压缩和智能索引技术为基础,自主研发的一款极高性能的数据库产品。具有满足各个数据密集型行业日益增大的数据分析、数据挖掘、数据备份和即席查询等需求的能力。
通常情况下,GBase 8a集群节点替换是发生在节点数据盘损坏的场景下,这种情况按照8a产品手册节点替换流程执行节点替换即可。与上述场景不同的是节点系统盘损坏(数据盘正常),无法正常启动操作系统的情况,也需要进行节点的替换恢复操作,当集群数据量较大时,仍然使用传统的节点替换做法存在耗时过久的问题(coor节点元数据打包复制,data节点数据重分布都可能需要大量时间),此时可采用只替换系统盘数据的方法来恢复节点,处理速度快且对集群业务影响更小,这个做法在8a产品手册中没有正式说明。
本文整理8a集群节点系统盘损坏(数据盘正常)的节点替换方法(不走传统节点替换流程,仅替换系统盘数据)。验证的集群版本环境为:8a MPP 862Build33-R11,CentOS7.3,具体场景分为纯数据节点系统盘损坏(数据盘正常)和复合节点系统盘损坏(数据盘正常)两种(纯管理节点的场景可参考复合节点),为在测试环境验证整理得到。
一、纯数据节点系统盘损坏节点替换方法
验证环境:8a MPP 862Build33-R11,CentOS7.3,3节点集群(2coor+3data,2个复合节点1个纯data节点)
异常场景:1个纯data节点系统盘损坏(数据盘正常)
处理流程:
1、设置异常节点failure
gcadmin setnodestate [异常节点IP] failure
2、备份异常节点系统盘数据:
【备注:实际操作可备份整个根目录,如系统盘损坏无法备份,可从其他数据节点恢复,使用root账户备份、恢复】
1)系统参数文件,注意恢复时使参数生效
/etc/sysctl.conf
/etc/security/limits.conf
2)gbase服务配置文件
/etc/rc.d/init.d/gbased
/etc/rc.d/init.d/gcsync
/etc/rc.d/init.d/gcware
/etc/sysconfig/gbase
3)/home/gbase数据
【备注:如果无法通过备份还原,则重装操作系统时新建gbase账户】
/home/gbase
3、修复/更换故障系统盘、重装操作系统
安装操作系统尽量选择不格式化的方式、保留原用户数据,如果系统盘2块都坏了,则只能选择完全重装。IP配置与原来相同。
4、节点机器检查
按照扩容节点标准进行机器检查,重点检查操作系统参数及基础软件包。
5、还原节点系统盘数据
参考备份数据内容
6、启动节点集群服务
验证gcware服务启停正常
servcie gcware start/stop
验证集群组件启停正常
gcluster_services all start/stop
检查确认gbased的system.log、express.log日志正常
7、验证节点的gn层ddl/dml正常
8、设置异常节点normal
gcadmin setnodestate [异常节点IP] normal
9、验证集群服务及ddl/dml正常
二、复合节点系统盘损坏节点替换方法
验证环境:8a MPP 862Build33-R11,CentOS7.3,3节点集群(3coor+3ata,3个复合节点)
异常场景:1个复合节点系统盘损坏(数据盘正常)
处理流程:
1、设置异常节点failure
gcadmin setnodestate [异常节点IP] failure
2、备份异常节点系统盘数据:
【备注:下列文件内容根据验证集群版本升级过程中的备份内容确定,不同版本集群可能会有所差异】
【备注:实际操作可备份整个根目录,如系统盘损坏无法备份,可从其他复合节点恢复,使用root账户备份、恢复】
1)系统参数文件,注意恢复时使参数生效
/etc/sysctl.conf
/etc/security/limits.conf
2)gbase服务配置文件
/etc/rc.d/init.d/corosync
/etc/rc.d/init.d/corosync-notifyed
/etc/rc.d/init.d/gclusterd
/etc/rc.d/init.d/gbased
/etc/rc.d/init.d/gcsync
/etc/rc.d/init.d/gcrecover
/etc/rc.d/init.d/gcware
/etc/sysconfig/gbase
3)corosync配置文件
【备注:恢复时调整corosync.conf里的bindnetaddr一行为本节点IP】
/etc/corosync
4)gbase可执行文件、库文件
/usr/bin:3个文件
/usr/bin/corosync-blackbox
/usr/bin/gadm_cp_sys_tbl.py
/usr/bin/gcadmin
/usr/lib64:2个目录,18个库文件和18个链接文件
【备注:/usr/lib64下的36个库文件(包括链接文件),属主是gbase,权限为777,还原后需要重新设置】
/usr/lib64/pkgconfig
/usr/lib64/python_gcware
/usr/lib64/libcfg.so.4*
/usr/lib64/libconfdb.so.4*
/usr/lib64/libcoroipcc.so.4*
/usr/lib64/libcoroipcs.so.4*
/usr/lib64/libcpg.so.4*
/usr/lib64/libevs.so.4*
/usr/lib64/libGcClm.so*
/usr/lib64/libGcClm.so.3*
/usr/lib64/libGcCrm.so*
/usr/lib64/libGcCrm.so.3*
/usr/lib64/libGcLck.so*
/usr/lib64/libGcLck.so.3*
/usr/lib64/liblogsys.so.4*
/usr/lib64/libpload.so.4*
/usr/lib64/libquorum.so.4*
/usr/lib64/libsam.so.4*
/usr/lib64/libtotem_pg.so.4*
/usr/lib64/libvotequorum.so.4*
/usr/libexec:1个目录
/usr/libexec/lcrso
/usr/sbin:10个文件
/usr/sbin/corosync*
/usr/sbin/gcwexec
5)corosync文档
/usr/share/doc/corosync
6)/home/gbase数据
【备注:如果无法通过备份还原,则重装操作系统时新建gbase账户】
/home/gbase
7)gcware数据
【备注:gcware数据从其他管理节点复制恢复,选择REDOLOG文件尾号数字最大的那个节点】
/var/lib/gcware
3、修复/更换故障系统盘、重装操作系统
安装操作系统尽量选择不格式化的方式、保留原用户数据,如果系统盘2块都坏了,则只能选择完全重装。IP配置与原来相同。
4、机器检查
按照扩容节点标准进行机器检查,重点检查操作系统参数及基础软件包。
5、集群停服
【备注:停服的目的是恢复gcware数据】
cexec all: 'service gcware stop'
6、还原节点系统盘数据
参考备份数据内容
7、启动节点集群服务
验证集群服务启停正常
servcie gcware start/stop
验证集群组件启停正常
gcluster_services all start/stop
检查确认gbased的system.log、express.log日志正常
8、验证节点的gn层ddl/dml正常
9、启动所有集群服务
cexec all: 'service gcware start'
10、设置异常节点normal
gcadmin setnodestate [异常节点IP] normal
11、验证集群服务及ddl/dml正常




