赞
踩
版本说明
(1)Percona XtraBackup 2.4版本,支持 MySQL 5.1 [1]、5.5、5.6 和 5.7服务器上的InnoDB数据库备份,但不支持MySQL 8.0 数据库备份。 (2)Percona XtraBackup8.0版本,仅支持MySQL 8.0服务器上存储引擎为InnoDB的数据库备份,但不支持在MySQL 8.0之前版本的数据库备份
我选用mysql版本是5.7的,就用Percona XtraBackup 2.4版本的
wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.22/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.22-1.el7.x86_64.rpm
直接安装会报错,缺少xtrabackup
的依赖包,
- wget ftp://rpmfind.net/linux/dag/redhat/el6/en/x86_64/dag/RPMS/libev-4.15-1.el6.rf.x86_64.rpm
-
-
- rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm
yum install perl-DBD-MySQL
yum -y install rsync perl l perl-Digest-MD5
这些依赖安装完毕之后就可以安装xtrabackup了。
rpm -ivh percona-xtrabackup-24-2.4.22-1.el7.x86_64.rpm
innobackupex --user=root --password=root123 --port=3306 --host=127.0.0.1 --socket=/tmp/mysqld.sock --datadir=/usr/local/mysql/data --stream=tar /home |gzip>/home/mysql.tar.gz
执行完这个命令,不出错得话,会出一堆堆日志,头疼,只要最后出现completed OK!,就证明备份成功了
这个命令的参数:
--user #指定数据库备份用户 –password #指定数据库备份用户密码 –port #指定数据库端口,不填默认3306 –host #指定备份主机,不填默认127.0.0.0或者localhost –socket #指定socket文件路径,docker容器里的mysql挂载目录data里,普通安装默认在/var/lib/mysql --datadir #指定mysql datadir路径,docker容器里的mysql挂载目录data里,普通安装默认在/var/lib/mysql --stream #指定流的格式做备份,–stream=tar,将备份文件归档 --/home/mysql.tar.gz #备份的数据存储的位置,可以更改
1)修改备库my.cnf文件
在my.cnf文件中加入以下配置
datadir=/usr/local/mysql/data 这个是你数据库数据存储的位置,备份恢复也会恢复到这里的数据
2)把之前你备份的数据包解压
tar -zxvf mysql.tar.gz
3)执行日志文件恢复
innobackupex --detaults-file=/etc/my.cnf --apply-log /home/
其中/home/为备份文件存放位置,同样出现completed OK!,就证明恢复成功了。
4)执行数据文件恢复
innobackupex --defaults-file=/etc/my.cnf --copy-back /home/
此命令会将数据文件恢复至my.cnf文件中datadir目录下
5)执行mysql用户授权
chown -R mysql:mysql /usr/local/mysql/
6)启动mysql
service mysqld start
至此备份全量恢复完毕
当我在执行完用户授权后,启动MySQL的时候会出现
Starting MySQL... ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid)
大概意思是权限不够无法启动mysql,网上给了很多解决方法,我也是一个一个试出来的
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。