【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
相关推荐
weixin_307779135 分钟前
Linux下GCC和C++实现统计Clickhouse数据仓库指定表中各字段的空值、空字符串或零值比例
linux·运维·c++·数据仓库·clickhouse
小Tomkk36 分钟前
阿里云 RDS mysql 5.7 怎么 添加白名单 并链接数据库
数据库·mysql·阿里云
Tender_光1 小时前
iptables实验
运维·服务器
szxinmai主板定制专家2 小时前
【飞腾AI加固服务器】全国产化飞腾+昇腾310+PCIe Switch的AI大模型服务器解决方案
运维·服务器·arm开发·人工智能·fpga开发
点击查询2 小时前
怎么把自己电脑设置成服务器?
运维·服务器
阿里云大数据AI技术2 小时前
ES Serverless 8.17王牌发布:向量检索「火力全开」,智能扩缩「秒级响应」!
大数据·运维·serverless
wanhengidc2 小时前
服务器中日志分析的作用都有哪些
运维·服务器
Mikhail_G3 小时前
Python应用变量与数据类型
大数据·运维·开发语言·python·数据分析
曹瑞曹瑞3 小时前
VMware导入vmdk文件
linux·运维·服务器
寒山李白3 小时前
MySQL复杂SQL(多表联查/子查询)详细讲解
sql·mysql·子查询·多表联查