【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
相关推荐
程序员-Benothing8 小时前
Linux安全加固指南:账号、权限、服务、审计基线
linux·运维·安全
Mininglamp_27188 小时前
接口调用 vs 屏幕理解:两种 GUI 自动化架构的技术取舍
运维·架构·自动化
凯凯姜10 小时前
MySQL 联合索引设计与索引失效
数据库·mysql
爱喝水的鱼丶10 小时前
SAP-ABAP:ECC→S/4HANA ABAP 迁移升级指南——程序改造、语法兼容与性能优化 导语
运维·开发语言·性能优化·sap·abap·经验交流·开发交流
木子欢儿10 小时前
openconnect Linux客户端安装 以及开机自启和登录
linux·运维·服务器
..Dauntless..11 小时前
【Linux】文件系统(一)
linux·运维·服务器
天空属于哈夫克311 小时前
企业微信API二次开发 赋能私域运营自动化
运维·自动化·企业微信
天远API12 小时前
零信任架构实战:基于天远运营商二要素V即时版构建自动化分时租赁出行会员身份一致性审核网关
运维·人工智能·架构·自动化
极光通讯12 小时前
液冷服务器对内存和SSD的适配要求:高密度部署下的散热与信号完整性
运维·服务器
2501_9377671613 小时前
面向设计 / 研发部门:终端文件统一归档 + 服务器定时备份实践
运维·安全