1. 安装xtrabackup
1.1查看libgcrypt版本
[root@localhost tools]# rpm -qa |grep libgcrypt
1.2 下载安装包:根据libgcrypt版本选择安装包
如本地安装了libgcrypt183,就下载下方的包
1.3 解压并配置环境变量
(1) tar xf percona-xtrabackup-2.4.14-Linux-x86_64.libgcrypt183.tar.gz
(2) mv percona-xtrabackup-2.4.14-Linux-x86_64 /usr/local/xtrabackup
(3) echo "export PATH=$PATH:/usr/local/xtrabackup/bin" >> /etc/profile
(4) source /etc/profile
1.4 检测是否安装成功
[root@localhost tools]# xtrabackup --version
2.备份准备
2.1 创建备份用户:
进入到mysql数据库下:mysql> use mysql
创建用户:
create user 'backupuser'@'localhost' identified by 'backupuser';
2.2 对当前的用户授权管理:
GRANT BACKUP_ADMIN,PROCESS,SELECT, RELOAD, LOCK TABLES, REPLICATION CLIENT, SHOW VIEW, EVENT, TRIGGER ON *.* TO 'backupuser'@'localhost' IDENTIFIED BY 'backupuser';
FLUSH PRIVILEGES;
总结:一个mysql的备份用户需要以下权限:SELECT, RELOAD, LOCK TABLES, REPLICATION CLIENT, SHOW VIEW, EVENT, TRIGGER。
2.3 创建一个备份数据的目录
mkdir -p /data/backupDB
2.4 配置XtraBackup
vim /etc/my.cnf
target_dir=/data/bakupDB
2.5 检查备份目录是否为空(xtrabackup 不会覆盖现有文件)
ls -lh /data/bakupDB/
如果有文件则清空
rm -r /data/bakupDB/*
ls -lh /data/bakupDB/
3.开始备份
备份命令:
innobackupex --defaults-file=/etc/my.cnf --compress --compress-threads=4 --stream=xbstream --parallel=5 --host=localhost -S /data/mysql/mysql_tmp/mysql.sock --user=backupuser --password=backupuser --databases=数据库名 /data/backupDB/> /data/backupDB/backup.xbstream
4.还原数据库准备
4.1 安装解压工具:qpress
下载:http://www.quicklz.com/qpress-11-linux-x64.tar
解压:tar xvf qpress-11-linux-x64.tar
cp qpress /usr/bin
4.2 检查mysql服务是否已经停止
ps -ef|grep mysqld
5. 还原数据库
5.1 到备份目录:
cd /data/backupDB/
5.2 创建文件夹:
mkdir -pv outputdir
5.3 打开
xbstream -x < /data/backupDB/backup.xbstream -C /data/backupDB/outputdir/
5.4 解压
进入目录:cd outputdir
innobackupex --decompress --parallel=8 --compress-threads=7 ./
5.5 删掉压缩文件,如果不删 ,后边会报错
find ./ -name "*.qp" |xargs rm -rf
5.6 回滚未提交的事务,先执行此句再恢复数据:
innobackupex --apply-log /data/backupDB/outputdir/
5.7 修改outputdir为对应的库的名称,并修改原库为另外的一个名称,修改新库的权限
查看原库:ll /data/mysql_data
如果目录有内容则修改原库:
mv /data/mysql_data /data/mysql_data_bak_20211230
进入目录:cd /data/backupDB/
修改还原库:mv outputdir /data/mysql_data
修改权限:chown -R mysql.mysql /data/mysql_data
6 启动实例
启动实例:service mysql start