通过xtrabackup工具完成mysql大量数据迁移

背景

最近,我们部署的MySQL主从复制集群出现从库同步异常问题,导致从库无法正常接收主库的binlog日志更新。由于同步中断时间较长,主从数据库已产生显著数据差异,且现有备份方案无法有效恢复数据一致性。
由于主库数据量较大,采用传统的SQL文件导出再导入从库的方式容易因内存溢出导致进程中断。为规避此风险,现决定采用XtraBackup工具进行数据迁移,该方案通过物理备份方式直接复制数据文件,能有效处理海量数据场景,同时支持热备份保障业务连续性。

实现方式

1、安装XtraBackup工具 (主从服务器均需要安装)

因为我们服务器为内网服务器,且操作系统为ubuntu,因此选用二进制方式安装。

1)、下载工具

wget https://downloads.percona.com/downloads/Percona-XtraBackup-LATEST/Percona-XtraBackup-8.0.34-29/binary/tarball/percona-xtrabackup-8.0.34-29-Linux-x86_64.glibc2.17.tar.gz
## 解压
tar -zxvf percona-xtrabackup-8.0.34-29-Linux-x86_64.glibc2.17.tar.gz

2)、进入目录即可找到 xtrabackup 可执行文件,并建立软连接方便全局使用

cd /home/percona-xtrabackup-8.0.34-29-Linux-x86_64.glibc2.17/bin

ln -s $(pwd)/bin/xtrabackup /usr/local/bin/xtrabackup

3)、验证是否成功

xtrabackup --version

输出示例:

xtrabackup version 8.0.34-29 based on MySQL server 8.0.34 Linux (x86_64)

2、迁移数据

1)、 使用 XtraBackup 备份主库(在主库中执行)

xtrabackup --backup \
  --user=root \
  --password=your_root_password \   ## 数据库root用户的密码
  --target-dir=/path/to/backup/    ## 本地存放备份的目录

2)、 将备份传输到从库(使用 scp,在主库中执行)

scp -r /path/to/backup/ root@slave_ip:/path/to/restore/ 
## slave_ip 从库IP地址

3)、准备备份(在从库中执行)

xtrabackup --prepare --target-dir=/path/to/restore/

4)、恢复备份到从库的数据目录(在从库中执行)

systemctl stop mysql  ## 停止从库mysql
rm -rf /var/lib/mysql/*  ## 删除从库mysql中数据,确保从库数据备份了
xtrabackup --copy-back --target-dir=/path/to/restore/ ## /path/to/restore/为备份数据
chown -R mysql:mysql /var/lib/mysql
systemctl start mysql

5)、获取 binlog 文件名和位置(查看 xtrabackup_binlog_info)(主库执行)

cat /path/to/restore/xtrabackup_binlog_info

6)、配置从库连接主库并启动复制(在从库中执行)

CHANGE MASTER TO
  MASTER_HOST='master_ip',
  MASTER_USER='replica_user',   ## 之前在主库中设置的主从复制用户
  MASTER_PASSWORD='your_password',
  MASTER_LOG_FILE='mysql-bin.000003',
  MASTER_LOG_POS=328;

START SLAVE;

检查复制状态:

SHOW SLAVE STATUS\G
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值