【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
相关推荐
AtoposのCX3301 小时前
Docker运行hello-world镜像失败或超时
运维·docker
熊延2 小时前
麒麟V10系统安装部署elasticsearch
linux·运维·服务器·elasticsearch·搜索引擎·全文检索
Yeats_Liao5 小时前
评估体系构建:基于自动化指标与人工打分的双重验证
运维·人工智能·深度学习·算法·机器学习·自动化
·云扬·5 小时前
MySQL 8.0 Redo Log 归档与禁用实战指南
android·数据库·mysql
爱吃生蚝的于勒6 小时前
【Linux】进程信号之捕捉(三)
linux·运维·服务器·c语言·数据结构·c++·学习
文艺理科生Owen6 小时前
Nginx 路径映射深度解析:从本地开发到生产交付的底层哲学
运维·nginx
期待のcode6 小时前
Redis的主从复制与集群
运维·服务器·redis
筵陌7 小时前
MySQL索引及其底层原理(上)
mysql
怣507 小时前
MySQL子查询零基础入门教程:从小白到上手(零基础入门版)
数据库·mysql
wangjialelele7 小时前
Linux下的IO操作以及ext系列文件系统
linux·运维·服务器·c语言·c++·个人开发