系列文章目录
MySQL5.7基于innobackupex工具进行全量备份/恢复
MySQL5.7.42安装
前言
在实际生产环境中,常用的数据库架构有单节点、主从、高可用三种架构,但是随着业务量的增长,数据库可能会面临着一些风险,例如:单节点数据库TPS、QPS性能跟不上业务量,随时出现数据库高负载进而导致业务数据加载失败,还有可能面临着事务量的增加导致主从架构的数据库面临着从库落后主库太多binlog,导致主从数据不一致问题,还可能由于主从同步延时过高导致从库同步数据失败等问题。因此面临着诸多问题,那么作为运维或DBA,就得需要想办法解决单点故障、恢复主从关系等问题。因此,本篇文章从这个角度出发,通过备份恢复的方式搭建主从/恢复从库两种情况进行分享。
以下分享基于MySQL5.7版本,同时采用innobackupex工具进行全量备份和恢复操作。且MySQL是基于GTID同步模式搭建的主从或单点
一、MySQL安装
数据库安装再次不再做过多描述,如果对数据库安装有疑问,请参考顶部链接MySQL5.7安装文章即可
二、单节点MySQL通过全量备份恢复的方式搭建主从
由单节点架构转换为主从复制架构
服务器名 | ip | 作用 |
---|---|---|
mysql1 | 192.168.56.130 | 主库 |
mysql2 | 192.168.56.131 | 从库 |
1.从库安装
数据库安装再次不再做过多描述,如果对数据库安装有疑问,请参考顶部链接MySQL5.7安装文章即可。
安装目录、数据目录如下所示
2.主库全量备份
采用innobackupex工具进行全量备份操作,以文件的形式备份至主库机器的备份目录下。执行备份命令,其中使用备份的用户是dbbackup。如果备份较大,可以考虑加上并行参数--parallel=n,n代表并发的线程
#命令执行完成后,会在/export/backup/目录下产生一个当前时间命令的目录,这个目录就是整个备份文件目录
[root@mysql1 ~]# /usr/bin/innobackupex --defaults-file=/data/my3306/my.cnf
--user=dbbackup --password=dbbackup --backup --lock-ddl-per-table --
socket=/data/my3306/run/mysqld.sock --slave-info
/export/backup
#也可以参考顶部文章MySQL5.7基于innobackupex工具进行全量备份/恢复,对备份命令及参数有一定的了解
当执行完成后出现completed OK!字样则说明全量备份成功
备份完成后,检查备份目录,如下所示
[root@mysql1 ~]# ls -lrth /export/backup/2024-09-14_15-53-33
3.将备份传输至目标服务器(从库)
1、从库创建备份目录
[root@mysql2 ~]# mkdir /export/backup
2、将主库备份拷贝至目标服务器(如果文件过大,可以考虑压缩)
[root@mysql1 ~]#scp -r /export/backup/2024-09-14_15-53-33 192.168.56.131:/export/backup
4.通过备份恢复的方式搭建从库步骤
4.1.检查从库是否有xtrbackup工具
如果不知道怎么安装请参考顶部文章MySQL5.7基于innobackupex工具进行全量备份/恢复
[root@mysql2 ~]# rpm -qa |grep percon
4.2.停止从库
因为采用顶部文章MySQL5.7安装教程安装完成之后,会直接启动数据库,但是要恢复数据,必须停止从库,主库不能停,此时主库还要接着提供服务的
[root@mysql2 ~]# /etc/init.d/mysql3306.server stop
Shutting down MySQLEnter password:
SUCCESS!
4.3.清空从库相关数据目录
虽然从库是新部署的,为了保险起见,执行以下删除操作,确保恢复工作一次性完成
相关数据目录在数据库安装那里有截图所示
[root@mysql2 ~]# cd /data/my3306/data
[root@mysql2 data]# rm -rf ./binlog/*
[root@mysql2 data]# rm -rf ./data/*
[root@mysql2 data]# rm -rf ./iblog/*
[root@mysql2 data]# rm -rf ./ibdata/*
4.4.从库根据备份文件生成回滚日志
执行innobackupex生成回滚日志命令,完成后如下图所示,会有completed ok!字样
[root@mysql2 ~]# cd /export/backup