1.安装percona源 rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm

2.使用yum安装percona-xtrabackup: yum -y install percona-xtrabackup yum install -y perl-DBD-MySQL perl-DBI perl-Time-HiRes libaio*

3.安装结果 rpm -qa |grep xtrabackup

rpm -ql percona-xtrabackup-2.3.10-1.el6.x86_64 用来查看是否正常安装

xtrabackup:是用于热备份innodb, xtradb表中数据的工具,不能备份其他类型的表,也不能备份数据表结构;

innobackupex:是将xtrabackup进行封装的perl脚本,提供了备份myisam表的能力。

4.innobackupex --user=root --password=xxx /data/dbbackup 进行全备操作 /data/dbbackup 作为你全备存放的目录 最后操作如果正常 会提示 “completed OK ”

5.innobackupex --apply-log /data/dbbackup/2018-01-19_19-41-35/ 在备份的同时,备份数据会在备份目录下创建一个以当前日期时间为名字的目录存放备份文件 一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处理不一致状态。“--apply-log”的主要作用正是通过回滚未提交的事务及同步已经提交的事务至数据文件也使得数据文件处于一致性状态。

最后操作如果正常 会提示 “completed OK ”

6.误删操作实验 将mysql 3306进程关掉, 将 /data/mysql目录下的文件删除,当然删除前 请记得先备份。

7.执行全备数据恢复操作 innobackupex --copy-back /data/dbbackup/2018-01-19_19-41-35/

innobackupex命令的--copy-back选项用于执行恢复操作,其通过复制所有数据相关的文件至mysql服务器DATADIR目录中来执行恢复过程。innobackupex通过backup-my.cnf来获取DATADIR目录的相关信息。

提示: innobackupex: completed OK!

8.这个时候不能直接启动数据库,不然看到的还是已经删除掉的数据库。因为/data/mysql目录的用户权限已经修改为root -rw-r--r--. 1 root root 0 10月 4 21:27 05.sql -rw-r--r--. 1 root root 18874368 10月 4 21:27 ibdata1 -rw-r--r--. 1 root root 5242880 10月 4 21:27 ib_logfile0 -rw-r--r--. 1 root root 5242880 10月 4 21:27 ib_logfile1 drwxr-xr-x. 2 root root 4096 10月 4 21:27 jiaowu drwxr-xr-x. 2 root root 4096 10月 4 21:27 mysql drwxr-xr-x. 2 root root 4096 10月 4 21:27 performance_schema drwxr-xr-x. 2 root root 4096 10月 4 21:27 test

所以我们要将权限修改为mysql chown -R mysql:mysql /data/mysql

然后在重新启动mysqld

然后在查看数据库是否已经还原正常 information_schema | | jira | | mysql | | mysql_test | | performance_schema | | serverinfo | | test

  1. cat xtrabackup_binlog_pos_innodb 查看完全备份时日志位置:mysql-bin.000007 3951