DWS 线下集群重装OS场景下重装主机实施方案
1. 适用场景
1) 当GaussDB A节点硬件发生故障后无法修复,界面上会出现12006告警。为了使服务快速地恢复正常,需要将发生故障的一个或多个节点更换为正常节点。
2) 本方案仅适用于线下产品。
3) 本方案仅适用于OS重装后,主机置换场景。
4) OS未重装场景,不在此文档适用范围内。
2. 前提条件
1) GaussDB A集群安装成功,且处于已启动状态。
2) 准备新的硬件服务器,新服务器的硬件条件(CPU,内存,磁盘等)必须满足GaussDB A安装的基本要求,等同或者优于被更换服务器的配置。
3) 新节点的root密码需要与环境中其他节点的root密码保持一致。
4) DN环的主、备实例不能同时损坏,DN环的主、从备实例不能同时损坏,DN环的备、从备实例不能同时损坏,即一个DN环中只能损坏一个实例。
5) GaussDB A集群内至少存在一个状态正常物理节点。
6) FusionInsight Manager主备管理节点不出现故障。
7) GaussDB A(除去要替换的节点)如下实例,至少存在一个正常运行的:
◾CMServer
◾CMAgent
◾GTM
◾Coordinator
8)对于静默安装补丁,或者单独升级补丁的集群,必须确认交付时或者补丁变更时,已经替换OMS节点MPPDB软件包。
3. 注意事项
1) 更换故障节点中系统将关闭“自动剔除故障CN”功能,完成后系统再次打开该功能。因此建议在开始更换前确认故障的CN已经被自动剔除(即故障的CN状态为Deleted),否则在更换过程中用户执行DDL会报错。
2) 如果被更换的主机上含有CN,在更换主机过程中CN状态未变为Normal前,不能连接该CN执行业务。
3) 用户手动在故障主机上配置的guc参数、pg_hba.conf配置的白名单会丢失,需要重新设置。
4) 更换节点可能导致服务异常,属高危操作。
5) 在前一次更换结束后才能再次执行更换。
6) 更换前不能锁定GaussDB A集群。
7) 节点更换前需要检查LVS安装的主备主机的安装包解压的“lvs”目录下是否存在root属主的LVS安装日志(默认名称为“gaussdb_loadbalance.log”)。
说明 检查是否存在root属主的LVS安装日志,步骤如下: 1.以omm用户身份登录GaussDB A服务器。执行source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile命令启动环境变量。 2.进入“lvs”目录: cd ${BIGDATA_HOME}/FusionInsight_MPPDB_*/install/FusionInsight-MPPDB-*/package/MPPDB/lvs/ 如果存在root属主的LVS安装日志,则需要执行如下命令修改其日志属主为集群用户: sudo chown omm:wheel gaussdb_loadbalance.log |
4. 对系统影响
重装主机在操作前需要用户先停止数据库相关业务,从而避免因数据库业务干扰而产生升级失败问题。操作过程会关闭白名单,禁止业务接入。
5. 准备工作
5.1确认新节点已配置操作系统
1)新节点上与集群其他节点安装的OS为相同版本。
2)新节点的IP,例如192.168.10.10(下文涉及新节点ip,均以此为例)、HostName、OS编码格式、磁盘分区与故障节点保持一致。
3)新老节点不能同时接入网络,请把老节点下电或者断网。
4)如果用原主机进行主机替换,不涉及老节点下电或者断网操作。
5.2确认集群处于Degraded状态
步骤1 以omm用户登录GaussDB A集群的第一个正常的cn节点
步骤2 执行以下命令,启用环境变量
source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile |
步骤3 执行以下命令,查看GaussDB A集群当前状态
cm_ctl query |
步骤4 间隔5分钟,再次查询GaussDB A集群当前状态
cm_ctl query |
步骤5 两次查询结果一致,且处于 “Degraded”状态,则表明MPPDB服务属于故障状态
[ Cluster State ]
cluster_state : Degraded redistributing : No balanced : No |
步骤6 如果不满足以上状态,则联系华为工程师处理
5.3准备前置配置文件
步骤1 确认集群OMS主节点上的FusionInsight_SetupTool工具是否存在(一般为oms节点“/opt/FusionInsight_SetupTool/”)。如果不存在,则需要在Support上下载集群对应版本的FusionInsight_SetupTool工具。
步骤2 完成配置文件(preinstall.ini、hostN.ini),具体配置如下:
g_hosts="192.168.10.10" -----需要替换主机的管理平面IP(必填) g_user_name="root" -----执行前置的用户(默认root) g_port=22 ----- SSH服务端口(默认22) g_parted=2 -----分区格式化参数(默认2,强制格式化) g_parted_conf="192.168.10.10:host0.ini;" -----节点分区信息(管理IP) g_add_pkg=1 -----rpm补包参数(默认1:安装) g_pkgs_dir="redhat-6.4:/media/" ----- RPM包的源目录 g_log_file="/tmp/fi-preinstall.log" g_debug=0 -----调试模式 g_hostname_conf="192.168.10.10:192.168.20.10:host0; " -----节点管理平台IP地址、业务平面IP地址和主机名的对应关系 g_swap_off=1 -----关闭swap分区(1关闭) g_platform="x86_64" -----平台类型 |
5.4执行preinstall
步骤1 进入SetupTool工具目录,例如/opt/FusionInsight_SetupTool/
cd /opt/FusionInsight_SetupTool |
步骤2 执行前置脚本
./setuptool.sh preinstall |
Please enter cluster SSH password: #输入root用户的密码 **FusionInsight PreInstall is starting...
********************************** *****FusionInsight Preinstall***** ********************************** ***** Time:60s ***** Running:0 ***** Success:10 ***** Failure:0 ***** Total:10 ***** Schedule:100% |
“preinstall”过程结束后,默认会自动继续进行“precheck”过程。如下所示:
===========FusionInsight PreCheck is starting...=========== [INFO] start checking each hosts. [INFO] localhost: start parsing the configuration file. [INFO] localhost: parse the configuration file success. ...***** Schedule:100% ==========Summary Output============ Environment check failed,you can get more information from /opt/FusionInsight_SetupTool/precheck/log/precheck_failed.log You can get more information about the preinstall from /tmp/fi-preinstall.log and /tmp/diskmgt/autopart.log |
步骤3 检查格式化分区结果是否与配置的一致
df -h |
6. 变更步骤
6.1关闭集群通信白名单
步骤 1 现场实施人员知会并确认用户已完成数据库业务停止操作。
步骤 2 以omm用户登录第一个正常的CN节点,执行如下命令注释用户白名单
以默认CN实例目录/srv/BigData/mppdb/data1/coordinator为示例,现场需根据实际情况进行调整。
source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile
gs_ssh -c "hostname && if [ -f /srv/BigData/mppdb/data1/coordinator/pg_hba.conf ]; then cp -f /srv/BigData/mppdb/data1/coordinator/pg_hba.conf /srv/BigData/mppdb/data1/coordinator/pg_hba.conf_comment; fi "
gs_ssh -c "hostname && if [ -f /srv/BigData/mppdb/data1/coordinator/pg_hba.conf ]; then sed -i '/^[^#].*sha256.*/s/\(.*\)/#@#@#\1/g' /srv/BigData/mppdb/data1/coordinator/pg_hba.conf; fi "
gs_ssh -c "hostname && if [ -f /srv/BigData/mppdb/data1/coordinator/pg_hba.conf ]; then sed -i '/^[^#].*md5.*/s/\(.*\)/#@#@#\1/g' /srv/BigData/mppdb/data1/coordinator/pg_hba.conf; fi " |
步骤 3 以omm用户登录第一个正常的CN节点,关闭MPPDB实例节点下的后台访问连接和应用连接。具体操作如下:
source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile gs_ssh -c "ps ux |grep -w gsql |grep -v grep |awk '{print \$2}' |xargs -r kill -9" gs_ssh -c "ps ux |grep -w ap_agent |grep -v grep |awk '{print \$2}' |xargs -r kill -9" |
步骤 4 以omm用户登录第一个正常的CN节点,执行如下命令重启集群。
source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile cm_ctl stop && cm_ctl start |
6.2修改重装主机相关文件
步骤1 以omm用户登录主oms节点
步骤2 将node-replace.sh脚本拷贝到/home/omm目录下
步骤3 执行以下命令:
sh node-replace.sh –i hostname |
其中hostname为待替换主机的主机名;
6.3重启controller
步骤1 以omm用户登录主管理节点
步骤2 执行以下命令,备份互信配置文件
cp ${BIGDATA_HOME}/om-server/om/etc/om/known_hosts ${BIGDATA_HOME}/om-server/om/etc/om/known_hosts.replace |
步骤3 执行以下命令,注释文件中包含新节点主机名或者ip地址的行
vi ${BIGDATA_HOME}/om-server/om/etc/om/known_hosts |
步骤4 执行以下命令,重启controller,使配置生效
sh ${CONTROLLER_HOME}/sbin/restart-controller.sh |
6.4前台页面重装主机
步骤1 登录FusionInsight Manager
步骤2 单击“主机”
步骤3 勾选待重装主机前的复选框
步骤4 在“更多”选择“重装”
在弹出的确认框中,输入当前登录的用户密码确认身份,单击“确定”。
步骤5 在“重装主机”对话框,勾选“清理数据”、“我确定重装所选主机,接受可能出现的服务故障、数据丢失等后果。”
步骤6 选择“root”用户并输入密码,单击“确定”
界面提示“操作成功。”,单击“完成”
6.5重建实例
请严格按照步骤描述执行,不准跳步,不准并行
步骤1 以omm用户登录一个正常的数据节点,执行:
source /opt/huawei/Bigdata/mppdb/.mppdbgs_profile |
步骤2 以nohup方式对要做重建的主机进行config配置,其中hostname为要重建的主机名称
nohup gs_replace -t config -h hostname & |
注意 步骤2执行完成后,再执行步骤3,不能同时执行 |
通过如下命令确认步骤2是否执行完成,没有进程则为执行完成
ps -ef|grep gs_replace | grep -v grep |
步骤3 以nohup方式对要做重建的主机进行数据重建,其中hostname为要重建的主机名称
如果后台没有gs_replace,则执行下面的命令,否则继续等待
nohup gs_replace -t start -h hostname & |
注:该过程时间较长,可以通过6.6查看Build状态 查看build进度
6.6查看Build状态
步骤1 以omm用户登录一个正常的数据节点,执行:
source /opt/huawei/Bigdata/mppdb/.mppdbgs_profile |
步骤2 通过下面的命令查看Build的进度
cm_ctl query -Cv |grep -i Build |
6.7启动新增节点上的实例
步骤1 以omm用户登录第一个正常的CN节点,执行:
source /opt/huawei/Bigdata/mppdb/.mppdbgs_profile |
步骤2 通过下面的命令查看做完Build的实例状态
cm_ctl query -Cvd |
如果实例的状态从Building变成Normal,则跳过;
如果实例的状态从Building变成Manuel Stopped,则继续执行步骤3;
步骤3 启动Manuel Stopped的实例
cm_ctl start |
6.8均衡实例
步骤1 以omm用户登录第一个正常的CN节点,执行:
source /opt/huawei/Bigdata/mppdb/.mppdbgs_profile |
步骤2 通过下面的命令检查集群状态为Normal,balanced状态为No时,执行步骤3
cm_ctl query |
步骤3 检查主备追赶状态
登录第一个正常的CN节点,连接数据库
gsql -d postgres -p 25308 -r |
查看追赶视图
select * from pgxc_get_senders_catchup_time(); |
上述视图结果为0 row时,则执行步骤4,否则继续执行步骤3,直到结果为0 row
步骤4 执行主备均衡
cm_ctl switchover -a |
步骤5 检查集群状态
cm_ctl query |
如下则为正常
[ Cluster State ]
cluster_state : Normal redistributing : No balanced : Yes |
注意 如果超过15min以上,仍然达不到上述状态,请联系华为工程师。 |
6.9确认结果
1)后台集群状态验证
步骤1 以omm用户登录GaussDB A集群的第一个正常的cn节点
步骤2 执行以下命令,启用环境变量
source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile |
步骤3 执行以下命令,查看GaussDB A集群当前状态
cm_ctl query |
如下则为正常
[ Cluster State ]
cluster_state : Normal redistributing : No balanced : Yes |
2)前台集群状态验证
步骤1 登录FusionInsight Manager
步骤2 单击“集群”,选择MPPDB,点击实例
步骤3 组件MPPDBServer的“运行状态”显示为“良好”状态
3)客户业务验证
步骤1 验证方案需包括DDL和DML语句
6.10恢复MPPDB软件包
步骤1 以omm用户登录主oms节点,进入/home/omm目录下
步骤2 执行如下命令恢复MPPDB软件包:
sh node-replace.sh –u hostname |
其中hostname为待替换主机的主机名;
7. 常见问题
7.1 gs_checkos
步骤1 以root用户登录要替换的新节点
步骤2 执行以下命令,启用环境变量
source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile |
步骤3 执行以下命令,设置OS参数 hostname 替换为要置换节点的主机名
gs_checkos -i B -h hostname |
步骤4 执行以下命令,检查OS参数
gs_checkos -i A -h hostname |
- 点赞
- 收藏
- 关注作者
评论(0)