MYSQL千万级大数据高效快速备份
mysql数据库全量备份、增量备份、数据迁移
·
测试用例
1、MYSQL5.7
2、数据量大小在200个G左右
3、单表数据量:订单表4000W+,明细表10000W+ 以及其他几个千万行表
4、忽略带宽以及压缩、解压时间,大概用时不到1小时
Percona XtraBackup安装
- 需要安装与数据库版本对应的版本,本文以(mysql5.7)为例,安装 Percona XtraBackup 2.4()
- 添加 Percona 软件源
// 添加 Percona 的官方软件源,让系统能够找到并安装 Percona XtraBackup 2.
wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb
sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
lsb_release -sc 会自动引用系统版本
- 更新软件包列表
sudo apt update
- 启用 Percona 仓库
sudo percona-release enable-only tools release
- 安装 Percona XtraBackup 2.4
sudo apt install percona-xtrabackup-24
# mysql8+ 需要使用 sudo apt-get install percona-xtrabackup-80
- 验证安装
xtrabackup --version
若成功显示 Percona XtraBackup 2.4 的版本号,则说明安装已成功完成。
全量备份
- 重新执行备份命令
sudo xtrabackup --backup --target-dir=/mnt/myData/mysqlbackup --user=root --password=your_password
–target-dir=指定的备份文件位置
–user=指定需要备份数据库用户名
–password=指定需要备份数据库用户密码
- 停止mysql服务
sudo systemctl stop mysql.service
- 删除需要恢复数据库的数据库目录内容
rm -rf /var/lib/mysql/*
- 恢复数据
sudo xtrabackup --copy-back --target-dir=/mnt/myData/databack/mysqlbackup --datadir=/var/lib/mysql
–target-dir=指定备份文件位置
–datadir=指定mysql数据位置
- 修改文件权限
sudo chown -R mysql:mysql /mnt/myData/mysql
- 启动 MySQL 服务
sudo systemctl start mysql
增量备份
- 开始增量备份
sudo xtrabackup --backup --target-dir=/mnt/myData/mysqlbackup_1 --incremental-basedir=/mnt/myData/mysqlbackup --user=your_user --password=your_password
–target-dir=本次增量备份路径
–incremental-basedir=全量或上次增量备份路径
–user=mysql用户名
–password=mysql用户密码
- 将增量备份数据整合到全量备份中
xtrabackup --prepare --apply-log-only --target-dir=/mnt/myData/databack/mysqlbackup
xtrabackup --prepare --apply-log-only --target-dir=/mnt/myData/databack/mysqlbackup --incremental-dir=/mnt/myData/databack/mysqlbackup_1
xtrabackup --prepare --target-dir=/mnt/myData/databack/mysqlbackup --incremental-dir=/mnt/myData/databack/mysqlbackup_2
备注:准备最后一个增量备份时,不需要使用 --apply-log-only 参数
/mnt/myData/databack/mysqlbackup — 表示全量备份路径
/mnt/myData/databack/mysqlbackup_1 — 表示第一次增量备份路径
/mnt/myData/databack/mysqlbackup_2 — 表示第二次(或最后一次)增量备份路径
- 停止目标mysql数据库(B)
sudo systemctl stop mysql
- 删除mysql数据库(B)数据目录
rm -rf /mnt/myData/mysql/*
- 数据恢复
sudo xtrabackup --copy-back --target-dir=/mnt/myData/databack/mysqlbackup --datadir=/mnt/myData/mysql
- 修改文件权限
sudo chown -R mysql:mysql /mnt/myData/mysql
- 启动 MySQL 服务
sudo systemctl start mysql
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)