MySQL主从断裂之备份恢复(xtrabackup)
场景:10.222.0.1主库,10.222.0.2从库,现需要恢复从库数据并和主库建立关系
1、首先在主库中获取数据
注意:如果主库数据库不是很大就不用压缩,如果很大就需要压缩。
安装完xtrabackup后在bin下执行
./innobackupex --defaults-file=/etc/my.cnf --user=root --password='密码' --compress --compress-threads=4 --parallel=4 --rsync /data/backup/20210831 > /tmp/aa.log 2>&1
(参数解释:--defaults-file=/etc/my.cnf 根据这个去分配执行;--compress 压缩;--compress-threads=4 压缩4个线程;)
2、scp -P 777 -r 2021-08-31_18-27-38/ root@10.222.0.2:/data/backup
3、/soft/percona-xtrabackup-2.4.12-Linux-x86_64/bin/xtrabackup --decompress --remove-original --parallel=4 --target-dir=/data/backup/20210831 > /tmp/bb.log 2>&1
(解压的服务器是需要安装qpress,并cp qpress /usr/bin)
4、停库 (删除之前/data/下的数据)切记在删除之前先要在从库看下repl用户的密码
5、./innobackupex --defaults-file=/etc/my.cnf --user=root --apply-log /backup/xtrafile/20210831/2021-08-31_20-00-05/
6、./innobackupex --defaults-file=/etc/my.cnf --user=root --copy-back /backup/xtrafile/20210831/2021-08-31_20-00-05/
7、修改新数据目录下所有文件的属主
8、启库
9、重新建立主从关系
如果是gtid的方式
首先在从库reset master
set @@global.gtid_purged='2dce5d7a-1ae8-11ea-bcab-069cb600d5e8:1-63578';(gtid号在xtrabackup.info文件里) 最后再change master to master_host='10.222.0.1',master_port=13306,master_user='repl',master_password='密码',master_auto_position=1;
start slave;
如果是一般复制
change master to master_host='10.222.0.1',master_port=13306,master_user='repl',master_password='密码',master_log_file='binlog.000039',master_log_pos=314547231;
start slave;
至此,主从关系就恢复了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!