当前位置:   article > 正文

实现xtrabackup全量备份与全量恢复_xtrackup 全量还原命令

xtrackup 全量还原命令

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依赖并安装

  1. wget ftp://rpmfind.net/linux/dag/redhat/el6/en/x86_64/dag/RPMS/libev-4.15-1.el6.rf.x86_64.rpm
  2. 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,网上给了很多解决方法,我也是一个一个试出来的

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/522316
推荐阅读