XtraBackup备份
1、基础知识
InnoDB 有个商业的InnoDB Hotbackup,可以对InnoDB引擎的表实现在线热备。而 percona出品的Xtrabackup,是InnoDB Hotbackup的一个开源替代品,可以在线对InnoDB/XtraDB引擎的表进行物理备份。mysqldump支持在线备份,不过是逻辑备份,效率比较差。xtrabackup是开源的MySQL备份工具,物理备份,效率很不错。
Xtrabackup有两个主要的工具:xtrabackup、innobackupex,其中xtrabackup只能备份InnoDB和XtraDB两种数据表,innobackupex则封装了xtrabackup,同时可以备份MyISAM数据表。Xtrabackup做备份的时候不能备份表结构、触发器等等,智能纷纷.idb数据文件。另外innobackupex还不能完全支持增量备份,需要和xtrabackup结合起来实现全备的功能。
2、安装XtraBackup
从官网下载Percona-XtraBackup,地址https://www.percona.com/downloads/XtraBackup/LATEST/
下载好之后,得到文件Percona-XtraBackup-2.4.5-re41c0be-el6-x86_64-bundle.tar,解压
tar xvf Percona-XtraBackup-2.4.5-re41c0be-el6-x86_64-bundle.tar
有三个rpm。
首先需要下载依赖包
yum install perl*
但还是在安装的过程的报错
参考:http://www.cnblogs.com/kerrycode/p/5308719.html,下载libev-4.15-1.el6.rf.x86_64.rpm
rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm rpm -ivh percona-xtrabackup-24-2.4.5-1.el6.x86_64.rpm
3、完全备份与还原
备份
innobackupex --user=root --password=1234 ~/
查看~目录,能够看出备份的文件多了backup-my.cnf、xtrabackup_binlog_info、xtrabackup_checkpoints、xtrabackup_info、xtrabackup_logfile。
(1)xtrabackup_checkpoints —— 备份类型(如完全或增量)、备份状态(如是否已经为prepared状态)和LSN(日志序列号)范围信息;
每个InnoDB页(通常为16k大小)都会包含一个日志序列号,即LSN。LSN是整个数据库系统的系统版本号,每个页面相关的LSN能够表明此页面最近是如何发生改变的。
(2)xtrabackup_binlog_info —— mysql服务器当前正在使用的二进制日志文件及至备份这一刻为止二进制日志事件的位置。
(3)xtrabackup_info—— 记录备份的信息,比如备份的指令、开始时间、结束时间、备份日志的记录点等等。
(4)xtrabackup_logfile—— 记录InnoDB的logfile,这里的记录是数据库现有的LSN点与xtrabackup_info中的LSN的差异部分;
(5)backup-my.cnf —— 备份命令用到的配置选项信息;
还原
删除mysql的存储文件。
cd /usr/local/mysql/data/
rm -rf *
还原
innobackupex --copy-back ~/2016-11-18_03-42-47/
注意:默认情况下还原出来的文件是root权限。需要进行更改权限。
chown -R mysql.mysql /usr/local/mysql/
还原完成