一、下载,并全备份
1.2解压包
tar -xvf Percona-XtraBackup-2.4.9-ra467167cdd4-el7-x86_64-bundle.tar
1.3Yum安装并解决依赖:
yum -y install percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm
注意:查看/etc/my.cnf配置文件数据库配置的目录,因为Xtrabackup是根据你的/etc/my.cnf配置文件来获取你备份的文件,
比如如果数据库的路径是 datadir=/usr/local/mysql/data
在/etc/my.cnf的[mysqld] 下添加datadir=/usr/local/mysql/data,然后重启mysql
1.4创建全备:
innobackupex --user=root --password=root /home/mysql/
要是报socket错误 加上 -S /tmp/mysql.sock 报输入自己的数据库用户密码
innobackupex --defaults-file=/etc/my.cnf --user=root --password='root' -S /tmp/mysql.sock /home/mysql_backup/
备份就完成了
查看一下备份的目录不是空的就成功了。
二、innobackupex 恢复:
2.1模拟数据库被删除:
先停掉数据库;备份原来的数据库data目录
2.2 恢复数据--恢复data目录:
第一步只是初始化了一下;
innobackupex --use-memory=1024M --apply-log 2022-01-13_23-39-27
- -use-memory=512M:意思是恢复数据指定使用的内存为512M;
- (因为这是虚拟机,所以只是测试,要是线上的服务器64G我们可以使用32G来恢复数据,这样速度会更快些)
- --apply-log:指定需要恢复的日志文件
2.3 还原data文件并赋予权限:
innobackupex --defaults-file=/etc/my.cnf --copy-back ./2022-01-13_23-39-27 chown -R mysql.mysql /usr/local/mysql/data #再次执行要不数据库起不来
如果报错 Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/mysql/data/mysqld.pid) 是因为权限不对的
chown -R mysql.mysql /usr/local/mysql/data
2.4再次启动数据库就可以了
service mysqld start
再去查看数据的表就可以看到全部都恢复了。