环境
- xtrabackup 2.4.21
- 数据库版本:MySQL 5.7.27
全量备份
创建备份用户
mysql> create user 'databak'@'localhost' identified by '1122333';
# 最小权限需要给 reload,lock tables,super这三个,其余的看着给一般不需要了
mysql> grant reload,lock tables,super,replication client,show view,event,process on *.* to 'databak'@localhost;
mysql> plush privileges;
全备
备份数据会在备份目录下创建一个以当前日期时间为名字的目录存放备份文件
xtrabackup --defaults-file=/etc/my.cnf --user=databak -S /tmp/mysql.sock --parallel=2 --backup --target-dir=/data/backup/xtra_full_`date +%Y%m%d%H%M%S`
恢复
准备操作
应用日志
xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/app/xtra_full_20210126234309/
/**
...
InnoDB: Shutdown completed; log sequence number 10524266024
210126 23:59:55 completed OK!
*/
停止mysql
- 恢复前需要停止 MySQL
- 恢复前保证MySQL数据目录为空
恢复文件
xtrabackup --defaults-file=/etc/my.cnf --copy-back --target-dir=/app/xtra_full_20210126234309/
#备份文件不需要保留的也能直接move,会快很多
xtrabackup --defaults-file=/etc/my.cnf --move-back --target-dir=/app/xtra_full_20210126234309/
授权
修改MySQL数据文件权限,'/var/lib/mysql'是数据文件路径,根据实际的datadir设置
chown -R mysql:mysql /var/lib/mysql