测试用例

1、MYSQL5.7
2、数据量大小在200个G左右
3、单表数据量:订单表4000W+,明细表10000W+ 以及其他几个千万行表
4、忽略带宽以及压缩、解压时间,大概用时不到1小时

Percona XtraBackup安装

  1. 需要安装与数据库版本对应的版本,本文以(mysql5.7)为例,安装 Percona XtraBackup 2.4()
  2. 添加 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 会自动引用系统版本

  1. 更新软件包列表
sudo apt update
  1. 启用 Percona 仓库
sudo percona-release enable-only tools release
  1. 安装 Percona XtraBackup 2.4
sudo apt install percona-xtrabackup-24
# mysql8+ 需要使用 sudo apt-get install percona-xtrabackup-80
  1. 验证安装
xtrabackup --version

若成功显示 Percona XtraBackup 2.4 的版本号,则说明安装已成功完成。

全量备份

  1. 重新执行备份命令
sudo xtrabackup --backup --target-dir=/mnt/myData/mysqlbackup --user=root --password=your_password

–target-dir=指定的备份文件位置
–user=指定需要备份数据库用户名
–password=指定需要备份数据库用户密码

  1. 停止mysql服务
sudo systemctl stop mysql.service
  1. 删除需要恢复数据库的数据库目录内容
rm -rf /var/lib/mysql/*
  1. 恢复数据
sudo xtrabackup --copy-back --target-dir=/mnt/myData/databack/mysqlbackup --datadir=/var/lib/mysql

–target-dir=指定备份文件位置
–datadir=指定mysql数据位置

  1. 修改文件权限
sudo chown -R mysql:mysql /mnt/myData/mysql
  1. 启动 MySQL 服务
sudo systemctl start mysql

增量备份

  1. 开始增量备份
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用户密码

  1. 将增量备份数据整合到全量备份中
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 — 表示第二次(或最后一次)增量备份路径

  1. 停止目标mysql数据库(B)
sudo systemctl stop mysql
  1. 删除mysql数据库(B)数据目录
rm -rf /mnt/myData/mysql/*
  1. 数据恢复
sudo xtrabackup --copy-back --target-dir=/mnt/myData/databack/mysqlbackup --datadir=/mnt/myData/mysql
  1. 修改文件权限
sudo chown -R mysql:mysql /mnt/myData/mysql
  1. 启动 MySQL 服务
sudo systemctl start mysql
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐