mysql mha for rhel5_MHA–master在线修复

本文介绍了在RHEL5环境下,使用MHA(Master High Availability)工具修复MySQL主节点故障的过程。包括恢复背景、修复步骤、提升已修复节点为新主节点的操作,并给出了注意事项。修复过程涉及备份、恢复、配置更改、二进制日志同步以及通过MHA manager监控集群状态。最后强调了MHA集群维护的关键点和潜在风险。
摘要由CSDN通过智能技术生成

一、恢复背景

二、修复故障节点及MHA集群

三、提升已修复的节点为master

四、注意事项

3c8ce6380daa33c267ccb0e2e66a02de.png

一、恢复背景

1、设备清单

3c8ce6380daa33c267ccb0e2e66a02de.png

2、:percona-xtrabackup-2.3.2

(注:生产环境应定时备份;不应等到数据库DOWN后才备份,以免加剧集群的压力)

备份数据库操作:

[root@jev72 ~]#innobackupex --user=root --password=centos /data/

。 。 。

xtrabackup: innodb_log_file_size = 5242880 #注意记录该日志文件大小值

。 。 。

以上为故障前,数据库备份操作,这里写出来是为了便于说明后面调节日志大小操作;

二、修复故障节点及MHA集群

1、恢复前备份文件准备:

将备份文件拷贝到jev1(故障master)上:

[root@jev72 ~]#scp -r /data/2017-02-27_21-23-44 172.16.250.131:/data/

模拟生产环境,在备份后,对数据库进行写操作:

[root@jev6 ~]#mysql -umhaadmin -h172.16.250.188 -pmhapass

mysql> show databases ;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| test |

| test2 |

+--------------------+

5 rows in set (0.00 sec)

#新建test3数据库

mysql> create database test3;

Query OK, 1 row affected (0.00 sec)

2、修改日志大小配置,及清空数据库

此处用直接在故障master操作,如果用新主机需要重新搭建系统环境,注意停止mariadb服务;

将日志大小配置为xtrabackup备份时使用的大小5242880

[root@jev71 ~]#vim /etc/my.cnf.d/server.cnf

[mysqld]

nnodb_log_file_size=5242880

#清空原数据库文件(生成环境,建议先挪走再删除,以防误删)

[root@jev71 ~]#rm -rf /var/lib/mysql/

3、恢复数据

[root@jev71 ~]#innobackupex --copy-back /data/2017-02-27_21-23-44/

。 。 。

170227 22:07:12 completed OK!

4、予mysql权限,启动mariadb,并查看数据库状态

[root@jev71 ~]#chown -R mysql:mysql /var/lib/mysql

[root@jev71 ~]#systemctl start mariadb

[root@jev71 ~]#mysql

MariaDB [(none)]> show databases ;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| test |

| test2 |

+--------------------+

5 rows in set (0.00 sec)

5、查看时二进制文件位置并进行事务回放重写

(注,如果备份点之后服务器的写操作比较少,可以在恢复节点(jev1)直接指定master日志复制位置直接复制(合并到集群),如果期间产生的二进制文件较大,需要先拷贝备份点之后的所有二进制文件,进行日志重写再合并到集群)

[root@jev71 ~]#cat /data/2017-02-27_21-23-44/xtrabackup_binlog_info

master-log.000004 245

备份点之后的所有二进制文件拷贝到恢复节点上(jev1)

[root@jev73 ~]#scp /var/lib/mysql/master-log.000004 172.16.250.131:/tmp/

将备份备份点之后的二进制文件保存到文件中(如果是误删的话,需要将其中的误删的语句删除)

[root@jev71 ~]#mysqlbinlog /tmp/master-log.000004 --start-position=245 >/tmp/myqlsbinlog.001

[root@jev71 ~]#mysql

#关闭二进制日志;

MariaDB [(none)]> set @@session.sql_log_bin=0 ;

#事务回放重写

MariaDB [(none)]> source /tmp/myqlsbinlog.001 ;

6、故障节点修复后以slave的身份并入集群;

将/etc/my.cnf.d/repl.cnf配置为slave:

[root@jev71 ~]#vim /etc/my.cnf.d/repl.cnf

[mysqld]

server-id=1

log-bin=master-log

relay-log=relay-log

relay_log_purge=0

read_only=1

innodb_file_per_table=1

skip_name_resolve=1

#重启mariadb服务;

[root@jev71 ~]#systemctl restart mariadb && systemctl status mariadb

确定二进制文件最后复制位置,查看用于恢复节点(jev1)的二进制日志最后一个end_log_pos 的值,确定复制起点;

[root@jev71 ~]# mysqlbinlog /tmp/master-log.000004 --start-position=245

。 。 。

#170227 21:34:17 server id 2 end_log_pos 415 Query thread_id=39 exec_time=0 error_code

。 。 。

[root&

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值