【TDSQL】更换DB节点硬盘后快速修复实例方法

【情况描述】 TDSQL的DB节点硬盘发生故障后,如果是数据盘故障,部署在该数据盘的实例无法正常使用;如果是管控盘故障,会造成该DB节点全部实例无法正常使用。按正常处置方式,是新增一台DB节点,替换这个有硬盘故障的DB节点下架。但这种方式需要有备用DB节点。同时会造成该节点上其他没有异常的实例,也一并被下架。往往会造成较大影响,并且修复处理时间较长。经过实践,可以通过本方法,快速恢复该DB节点。

【前置条件】

1. 非操作系统盘。操作系统盘故障不在本例讨论范围内。

2. 可快速更换故障硬盘。有备用硬盘可及时更换,并成功挂载。

3. 所有部署在该故障硬盘上的实例,都将主库切到其他正常节点。故障硬盘上的实例为从库节点。

【一】修复实例数据盘

故障硬盘仅存放实例的数据,即dbdata。一般路径为/data1/40xx/这类。管控程序tdsql_run所在磁盘正常,MYSQL进程正常。

这种情况,只需要在赤兔平台上,找到该实例,执行重做备库,恢复该磁盘上的数据即可。

【二】修复实例管控盘

故障硬盘存放的是tdsql_run目录下的管控进程,例如mysqlagnet、mysql等。该盘故障后,该DB节点上全部的实例都无法正常使用。这时,因为管控进程所在磁盘已经损坏,在赤兔后台也无法进行操作。默认会将该DB节点上的实例主库全部切到其他正常节点,故障DB节点实例全部自动降级为从库。

修复步骤:

1. 故障硬盘更换完毕,杀掉故障实例进程。如果更换硬盘需重启服务器,则跳过此步骤。

    ps -ef |grep 40xx  根据端口列出对应的进程,进行清理。

2. 找到其他备份DB节点,将tdsql_run目录打包传到该故障硬盘。 如果实例分布在多台机器上,不一致的话;按照实例,找到对应的物理备机,打包tdsql_run下的端口目录即可,需要一个一个处理。

举例:如果整个集群只有3台DB节点,实例都是1主2从架构,那么每个DB节点上部署的实例数量都是一样的。打包任意一台机器上的tdsql_run目录即可,因为里面的实例数量是一样的。

如果整个集群有4台DB节点,实例都是1主2从架构,那么DB节点的分布就不一致,有可能A主机部署了5个实例,而B主机只部署了3个实例。实例数量是不一致的。这种情况下就要逐个处理。

3. 将打包好的文件,传回已更换好硬盘的DB节点。

4.修改配置文件

在更换完硬盘的DB节点上,解压缩打包的文件,按照实例的40xx(端口)一个一个处理。
1) vi  tdsql_run/端口/mysqlagent/conf/mysqlagent_端口.xml  修改其中的原IP为更换硬盘的故障DB节点IP。修改点数量:IP有1个
2)vi tdsql_run/端口/percona-5.7.17/etc/my_端口.cnf  修改其中的1原IP为更换硬盘的故障DB节点IP;修改server_id值为任意数值。修改点数量:IP有2个,id有1个
3)vi tdsql_run/端口/percona-5.7.17/etc/add_my_40xx.ini  注意其中的read_only=OFF要修改为ON

4)如果Proxy在同一台机器,增加修改:

vi /data3/tdsql_run/40xx/gateway/conf/instance_240xx.cnf 里面的ip地址。

5. 迁移目录

将修改好的tdsql_run/40xx/  挪到 /data0/     这里最好是一个端口目录,一个端口目录的挪;不要一下都挪过去。

6.拉起进程,检查实例备库是否启动

挪目录后,注意crontab 中的  cd /data/oc_agent/scripts; ./agent_monitor.sh >crontab.log 2>&1   是否5分钟自动拉起
      ps -ef |grep mysql |grep 4xxx  观察实例进程有没有起来

      起来的话,去赤兔平台,看对应实例,故障的备机应该延时变成一串很长的数字(-9191说明实例启动有问题)


7. 重做备机

确认故障DB上的实例启动正常,在赤兔平台找到该实例,执行重做备机即可,等一会儿追上后就恢复正常了。

重复上述4~6的步骤,确认所有节点恢复正常。再摘掉赤兔平台的相关告警屏蔽。

注意事项:

1. 发起重做备机后,可能会报一些错误,不用理,一会儿就恢复正常。

2. 如果赤兔重做备机异常,去检查mysqlagent/log/里面的reinstall_mysql.log.yyyy-mm-dd.x  和 shell_reinstall_mysql_yyyy-mm-dd.log  日志,检查为什么重做失败。做对应处理。

3. 如果实例启动异常,赤兔上看提示日志磁盘空间使用100%,到机器上检查没有对应日志目录,手工建立目录,授权给tdsql:users   重启进程后恢复正常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值