首页 > 代码库 > innobackupex实现MySQL数据库的备份与恢复
innobackupex实现MySQL数据库的备份与恢复
Xtrabackup是由percona开发的一个开源软件,它是innodb热备工具ibbackup(收费的商业软件)的一个开源替代品。Xtrabackup由个部分组成:xtrabackup和innobackupex,其中xtrabackup工具用于备份innodb和 xtraDB引擎的表;而innobackupex工具用于备份myisam和innodb引擎的表,本文将介绍如何用innobackupex工具做全量和增量备份。
一、安装
在安装Xtrabackup之前已经安装了mysql数据库,选用的Xtrabackup版本是2.2.9,如果想用其他的版本,请参考:https://www.percona.com/downloads/XtraBackup。
为了方便,直接使用yum进行安装:
yum install https://www.percona.com/downloads/XtraBackup/XtraBackup-2.2.9/binary/redhat/6/x86_64/percona-xtrabackup-2.2.9-5067.el6.x86_64.rpm
二、数据库的全备与还原
innobackupex --defaults-file=/u01/app/mysql/my.cnf --user=root --password=*** --port=3306 --socket=/u01/app/mysql/run/mysql.sock /u01/app/mysql/backup/
还原:
关闭数据库:
innobackupex --defaults-file=/u01/app/mysql/my.cnf --user=root --password=*** --use-memory=100m --apply-log /u01/app/mysql/backup/2016-11-10_14-16-50
innobackupex --defaults-file=/u01/app/mysql/my.cnf --user=root --password=*** --copy-back /u01/app/mysql/backup/2016-11-10_14-16-50
#应用binlog日志
[root@mysql 2016-11-10_14-16-50]# cat xtrabackup_binlog_info
mysql-bin.000012 311
mysqlbinglog /u01/app/mysql/log/mysql-bin.000012 --start-position=311 |mysql -u root -p***
修改权限
cd /u01/app/mysql/data
chown -R mysql:dba
启动数据库
/etc/init.d/mysql start
三、增量备份与还原
--增量备份
create table t_time(id int auto_increment primary key,t_time datetime);
insert into t_time(t_time) values(now());
--先做全备
innobackupex --defaults-file=/u01/app/mysql/my.cnf --user=root --password=*** --port=3306 --socket=/u01/app/mysql/run/mysql.sock /u01/app/mysql/backup/
--再做增量备份
innobackupex --defaults-file=/u01/app/mysql/my.cnf --user=root --password=*** --incremental-basedir=/u01/app/mysql/backup/2016-11-10_14-46-43 --incremental /u01/app/mysql/backup/
--增量恢复的步骤
innobackupex --apply-log --redo-only /u01/app/mysql/backup/2016-11-10_14-46-43
innobackupex --apply-log --redo-only /u01/app/mysql/backup/2016-11-10_14-46-43 --incremental-dir=/u01/app/mysql/backup/2016-11-10_14-49-09
--应用备份
innobackupex --defaults-file=/u01/app/mysql/my.cnf --user=root --password=*** --use-memory=100m --apply-log /u01/app/mysql/backup/2016-11-10_14-46-43
innobackupex --defaults-file=/u01/app/mysql/my.cnf --user=root --password=*** --copy-back /u01/app/mysql/backup/2016-11-10_14-46-43
mysqlbinglog /u01/app/mysql/log/mysql-bin.000014 --start-position=482 |mysql -u root -p***
本文出自 “三国冷笑话” 博客,请务必保留此出处http://myhwj.blog.51cto.com/9763975/1872531
innobackupex实现MySQL数据库的备份与恢复