备份恢复工具xtrabackup安装和使用的记录
一、安装
下面的方法是在测试环境可以上网的情况下安装的:
提供的是在centos7上安装的方法:
包下载:
wget https://www.percona.com/downloads/percona-toolkit/2.2.6/RPM/percona-toolkit-2.2.6-1.noarch.rpm (这个可能会用到,但我未使用到)
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.12/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.12-1.el7.x86_64.rpm
wget http://rpmfind.net/linux/epel/7/x86_64/Packages/l/libev-4.15-3.el7.x86_64.rpm
包安装:
rpm -ivh libev-4.15-3.el7.x86_64.rpm
yum install perl-Digest-MD5 -y
rpm -ivh percona-xtrabackup-24-2.4.12-1.el7.x86_64.rpm
追加其它centos版本上的安装方法:
先到https://www.percona.com/downloads/XtraBackup/LATEST/这个网站下载对应系统对应版本的percona-xtrabackup的rpm包,然后执行rpm -ivh安装这个包,会报错,并告知相应的依赖包,下载安装这些依赖包就可以。我认为它需要的依赖就两个:perl-Digest-MD5和libev-4
perl-Digest-MD5这个使用yum安装就可以了。
libev-4的下载地址为:http://rpmfind.net/linux/rpm2html/search.php?query=libev(x86-64)
下面的方法是在测试环境没网的情况下安装的:
rpm -ivh libev-4.03-3.el6.x86_64.rpm
rpm -ivh percona-xtrabackup-24-2.4.11-1.el6.x86_64.rpm
备注:这两个包都是centos6上的,但在centos7上也安装成功了。
这两个包可以网上下载。然后使用filezilla上传到测试环境上。下载地址前面已经提供。
如果安装percona-xtrabackup-24-2.4.11-1.el6.x86_64.rpm这个包失败,请先安装下面两个包,再安装这个包:
rpm -ivh percona-toolkit-2.2.6-1.noarch.rpm --force --nodeps #前面已提供下载地址
rpm -ivh perl-IO-Socket-SSL-2.056-1.fc28.noarch.rpm --force --nodeps
下载地址:https://pan.baidu.com/s/1fadL26_EfGDItqWMuzmRwQ
二、全量备份和恢复
1.创建一个用于备份的用户(这一步看情况使用,如果需要的话,将第二步中用户替换成这个备份用户):
grant reload,process,lock tables,replication client on *.* to 'pxb'@'localhost' identified by '123456' with grant option;
flush privileges;
2.备份全量数据库的命令(innodb引擎不需要停库):
innobackupex --defaults-file=/etc/my.cnf --user=root --password="p@ssw0rd" --backup /dbback/temp/
3.将备份下来的文件拷贝到另一台测试数据库所在的机器:
scp -r 2018-12-24_10-28-15/ root@172.16.173.10:/var/lib/
4.将全量备份恢复到数据库中:
(1)准备(prepare)一个完全备份:
innobackupex --apply-log /var/lib/2018-12-24_10-28-15/
(2)关闭数据库,并删除数据文件:
service mysqld stop
rm -rf /var/lib/mysql
mkdir /var/lib/mysql
(3)执行恢复操作:
innobackupex --defaults-file=/etc/my.cnf --copy-back --rsync /var/lib/2018-12-24_10-28-15/
(4)恢复完成后,授予权限:
chown -R mysql.mysql /var/lib/mysql
(5)启动数据库
service mysqld start
(6)数据库root密码修改
vim /etc/my.cnf
在[mysqld]下添加:
skip-grant-tables
保存退出。
mysql -uroot
update mysql.user set Password=password('Ideal123@WSX') where user='root';
flush privileges;
exit;
注释掉/etc/my.cnf下skip-grant-tables保存退出。
重启mysql
如果数据库还是启动不起来,请查看日志,看一下报错原因:
tail /var/log/mysqld.log
三、指定数据库备份和恢复
1.指定数据库备份的命令:(如备份zqzwfwsys库)
innobackupex --defaults-file=/etc/my.cnf --databases 'zqzwfwsys mysql performance_schema' --user=root --password="p@ssw0rd" --backup /dbback/temp/
2.