背景
源数据库:MySQL 5.5.20
- 主库:10.159.39.38
- 从库:10.159.39.39
源库信息 (10.159.39.38:3306) | 目标库信息 (10.199.96.188:3306) | |
---|---|---|
版本 | MySQL 5.5.20 | |
数据量 | 137.50 GB | … |
操作系统 | CentOS release 6.5 (Final) | CentOS release 6.10 (Final) |
目的数据库:MySQL 5.6.36
- 主库:10.199.96.188
- 从库:10.199.96.189
方案对比
特性 | xtrabackup (开源第三方) | mysqldump (自带) | mysqldumper |
---|---|---|---|
性能 | 最佳 | 最差 | 次之 |
数据量 | 最大 | 次之 | 最少 |
远程备份 | 不支持 | 支持 | 支持 |
数据一致性 | 支持 | 支持 | 支持 |
工具便捷性 | 次之 | 较好 | 较好 |
版本兼容性 | 较差 | 较好 | 较好 |
备份类型 | 物理备份 | 逻辑备份 | 逻辑备份 |
参考案例
需求背景:xx 项目,将生产环境数据库迁移至测试环境,迁移数据量约 185GB
环境信息:
- 生产库:
10.138.22.218:3100
,MySQL 5.6.27
- 测试库:
10.138.22.192:3306
,MySQL 5.6.27
Tips:数据库版本一致,且配置文件
my.cnf
一致,才能使用XtraBackup
准备条件:
- 生产库和测试库服务器都已 安装 XtraBackup
- 已配置互信
操作步骤:
- 备份主库(约耗时 30min)
1 | $ innobackupex --defaults-file=/etc/my.cnf --user=root --password='xx' --no-timestamp /data/backup |
- 传输备份数据到测试服务器 (约耗时 30min,速度取决于服务器 IO 性能)
1 | $ scp -r /data/backup/* root@10.138.22.192:/data/backup |
- 恢复全备数据(约耗时 60min)
1 | $ mysqladmin -S /data/mysql/mysql.sock -uroot -p'xx' shutdown |