【Mysql/xtrabackup】主从恢复(高端操作)

一、安装xtrabackup工具

需要在mysql主和从节点安装xtrabackup工具,如未安装,可参考:【Mysql】Xtrabackup备份恢复(Mysql5.6/5.7/8.0)_xtrabackup备份mysql5.7-CSDN博客

说明:使用xtrabackup恢复mysql主从,最好当前用户使用mysql启动进程用户,避免后续修改权限等问题

本文章用于mysql数据量大情况,其他简单方法恢复主从,请访问:【Mysql】主从不一致恢复(详细简单操作)_mysql 主从同步断开恢复-CSDN博客

二、备份主库数据

bash 复制代码
#登录mysql主节点
xtrabackup --defaults-file=${my_cnf} --user=${user} --password=${passwd} --host=${host} --port=${port} --compress-threads=8 --backup --stream=xbstream --parallel=4 | gzip > ${backup}/${date}/mysqlsql.xb.gz

${my_cnf}:指定my.cnf路径

${user}:指定mysql用户

${passwd}:指定mysql用户密码

${host}:指定mysql登录节点,在mysql本节点备份就是127.0.0.1

${port} :指定mysql端口

{backup}/{date}/mysqlsql.xb.gz:指定备份数据mysqlsql.xb.gz的路径

三、将主库备份的数据拷贝到从库

bash 复制代码
scp mysqlsql.xb.gz 用户@从节点ip:路径

四、解压备份数据并preparerg过程

bash 复制代码
#解压
gzip -d -c mysqlsql.xb.gz | xbstream -x -v -C ${dir}
#prepareg过程
xtrabackup --defaults-file=${my_cnf} --user=${user} --password=${passwd} --host=${host} --port=${port} --prepare --target-dir=${dir}

${my_cnf}:指定my.cnf路径

${user}:指定mysql用户

${passwd}:指定mysql用户密码

${host}:指定mysql登录节点,在mysql本节点备份就是127.0.0.1

${port} :指定mysql端口

${dir}:指定解压路径

五、停掉从节点mysql进程

bash 复制代码
#查看mysql进程,获取到pid
ps -ef | grep mysql
#kill掉mysql进程
kill -9 PID号

六、将从节点的mysql数据存储目录和日志存储目录备份

bash 复制代码
#备份:mysql数据存储路径
#使用mv命令将数据目录改名来实现备份
mv mysql存储路径 mysql存储路径.bak
#再创建存储路径,注意权限关系
mkdir mysql存储路径


#备份:mysql日志存储路径
mv 日志路径 日志路径.bak
mkdir 日志路径

七、将解压的数据导入到从节点的数据存储目录

bash 复制代码
xtrabackup --defaults-file=${my_cnf} --user=${user} --password=${passwd} --host=${host} --port=${port} --copy-back --datadir=${mydata} --target-dir=${dir}

${my_cnf}:指定my.cnf路径

${user}:指定mysql用户

${passwd}:指定mysql用户密码

${host}:指定mysql登录节点,在mysql本节点备份就是127.0.0.1

${port} :指定mysql端口

${mydata}:指定mysql存储路径

${dir}:指定解压路径

八、启动从节点mysql

九、配置主从

进入从节点的mysql数据存储目录,里面有个xtrabackup_info,记录这个这俩个值,用于配置主从

进入从节点mysql配置主从:

bash 复制代码
#master_log_file和master_log_pos对应xtrabackup_info里面的值
change master to master_host='主节点ip',master_port=端口,master_user='用户名',master_password='密码',master_log_file='mysql_bin.000017',master_log_pos=157;

#开始主从
start slave;

#查看主从,查看Slave_IO_Running和Slave_SQL_Running是否都为yes
show slave status\G
相关推荐
运维开发那些事1 小时前
Mysql MIC高可用集群搭建
mysql
安顾里1 小时前
Linux命令-tar
linux·运维·服务器
沐土Arvin2 小时前
Nginx 核心配置详解与性能优化最佳实践
运维·开发语言·前端·nginx·性能优化
有莘不破呀2 小时前
服务器磁盘卷组缓存cache设置介绍
linux·运维·服务器
DBWYX2 小时前
gcc 链接顺序,静态库循环依赖问题
linux·运维·服务器
GoingYoo2 小时前
MySQL原理:逻辑架构
数据库·sql·mysql
zxsz_com_cn2 小时前
风电行业预测性维护解决方案:AIoT驱动下的风机健康管理革命
大数据·运维·人工智能
我们的五年2 小时前
【Linux系统】进程间通信-System V消息队列
linux·运维·服务器·c++
island13142 小时前
【Linux网络#18】:深入理解select多路转接:传统I/O复用的基石
linux·运维·数据库
手握风云-3 小时前
MySQL数据库精研之旅第五期:CRUD的趣味探索(中)
数据库·mysql