实现xtrabackup全量备份与全量恢复

xtrabackup安装

版本说明

(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

我选用mysql版本是5.7的,就用Percona XtraBackup 2.4版本的

下载XtraBackup

 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的依赖包,

 下载libev依赖并安装

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

 安装perl(DBD::mysql)

yum install  perl-DBD-MySQL

 安装perl(Digest::MD5)

yum -y install rsync perl l perl-Digest-MD5

 这些依赖安装完毕之后就可以安装xtrabackup了。

安装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   #备份的数据存储的位置,可以更改

全量备份恢复(需要停止备库mysql)

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,网上给了很多解决方法,我也是一个一个试出来的😂,我解决的方法,既然权限不够就从权限入手;

对mysql的安装目录和数据目录分别进行授权

 chown -R mysql.mysql /usr/local/mysql
 chown -R mysql.mysql /usr/local/mysql/data/mysql
 #然后重启服务
 service mysqld start

结果还是出现这个问题,我试了试杀掉进程

ps -ef|grep mysqld     查看进程
 kill -9 ‘进程号’

重启了一下试试,还真解决了问题。

参考文档:xtrabackup全量备份与全量恢复_weixin_43937315的博客-CSDN博客_xtrabackup全量备份与恢复

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值