复制代码 代码如下:
create database backup_test;nbsp; //创建库nbsp;
nbsp;
CREATE TABLE `backup` (nbsp; //创建表nbsp;
nbsp;`id` int(11) NOT NULL AUTO_INCREMENT ,nbsp;
nbsp;`name` varchar(20) NOT NULL DEFAULT '' ,nbsp;
nbsp;`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ,nbsp;
nbsp;`del` tinyint(1) NOT NULL DEFAULT '0',nbsp;
nbsp;PRIMARY KEY (`id`)nbsp;
) ENGINE=myisam DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;nbsp;
2、增量备份
复制代码 代码如下:
mysqlgt; INSERT INTO backup (name) VALUES ('tank'),('tank1');nbsp; //插入数据nbsp;
nbsp;
# innobackupex --defaults-file=/etc/my.cnf --user=root --incremental-basedir=/home/tank/backup/2014-09-18_16-35-12 --incremental /home/tank/backup/nbsp;
3、在增量的基础上在进行增量备份
复制代码 代码如下:
mysqlgt; INSERT INTO backup (name) VALUES ('tank2'),('tank3'),('tank4'),('tank5'),('tank6');nbsp; //在插入数据nbsp;
nbsp;
//2014-09-18_18-05-20这个目录,上次增量备份产生的目录nbsp;
# innobackupex --defaults-file=/etc/my.cnf --user=root --incremental-basedir=/home/tank/backup/2014-09-18_18-05-20 --incremental /home/tank/backup/nbsp;
查看增量备份记录文件:
复制代码 代码如下:
[root@localhost 2014-09-18_16-35-12]# cat xtrabackup_checkpointsnbsp;nbsp; //全备目录下的文件nbsp;
backup_type = full-preparednbsp;
from_lsn = 0nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; //全备起始为0nbsp;
to_lsn = 23853959nbsp;
last_lsn = 23853959nbsp;
compact = 0nbsp;
nbsp;
[root@localhost 2014-09-18_18-05-20]# cat xtrabackup_checkpointsnbsp; //第一次增量备份目录下的文件nbsp;
backup_type = incrementalnbsp;
from_lsn = 23853959nbsp;
to_lsn = 23854112nbsp;
last_lsn = 23854112nbsp;
compact = 0nbsp;
nbsp;
[root@localhost 2014-09-18_18-11-43]# cat xtrabackup_checkpointsnbsp; //第二次增量备份目录下的文件nbsp;
backup_type = incrementalnbsp;
from_lsn = 23854112nbsp;
to_lsn = 23854712nbsp;
last_lsn = 23854712nbsp;
compact = 0nbsp;
增量备份做完后,把backup_test这个数据库删除掉,drop database backup_test;这样可以对比还原后。
4、增量还原
复制代码 代码如下:
# innobackupex --defaults-file=/etc/my.cnf --user=root --apply-log --redo-only /home/tank/backup/2014-09-18_16-35-12nbsp;
nbsp;
# innobackupex --defaults-file=/etc/my.cnf --user=root --apply-log --redo-only /home/tank/backup/2014-09-18_16-35-12 --incremental-dir=/home/tank/backup/2014-09-18_18-05-20nbsp;
nbsp;
# innobackupex --defaults-file=/etc/my.cnf --user=root --apply-log --redo-only /home/tank/backup/2014-09-18_16-35-12 --incremental-dir=/home/tank/backup/2014-09-18_18-11-43nbsp;
在这里有三个目录:
1)、/home/tank/backup/2014-09-18_16-35-12,全备份目录
2)、/home/tank/backup/2014-09-18_18-05-20,第一次增量备份产生的目录
3)、/home/tank/backup/2014-09-18_18-11-43,第二次增量备份产生的目录
到这里增量还原,还没有结束,还有最重要一步,就是要进行一次全量还原。停止数据库,删除/var/lib/mysql,在还原。
增量备份的原理就是,把增量目录下的数据,整合到全变量目录下,然后在进行,全数据量的还原。
总体来说,innobackupex速度快,支持innodb,myisam,用起来是还不是很方便,单库还原,还是增量备份还原,都要进行全部数据库还原,这个不合理。
五、innobackup 常用参数说明
--defaults-file
同xtrabackup的--defaults-file参数
--apply-log
对xtrabackup的--prepare参数的封装
--copy-back
做数据恢复时将备份数据文件拷贝到MySQL服务器的datadir ;
--remote-host=HOSTNAME
通过ssh将备份数据存储到进程服务器上;
--stream=[tar]
备 份文件输出格式, tar时使用tar4ibd , 该文件可在XtarBackup binary文件中获得.如果备份时有指定--stream=tar, 则tar4ibd文件所处目录一定要在$PATH中(因为使用的是tar4ibd去压缩, 在XtraBackup的binary包中可获得该文件)。
在 使用参数stream=tar备份的时候,你的xtrabackup_logfile可能会临时放在/tmp目录下,如果你备份的时候并发写入较大的话 xtrabackup_logfile可能会很大(5G+),很可能会撑满你的/tmp目录,可以通过参数--tmpdir指定目录来解决这个问题。
--tmpdir=DIRECTORY
当有指定--remote-host or --stream时, 事务日志临时存储的目录, 默认采用MySQL配置文件中所指定的临时目录tmpdir
--redo-only --apply-log组,
强制备份日志时只redo ,跳过rollback。这在做增量备份时非常必要。
--use-memory=#
该参数在prepare的时候使用,控制prepare时innodb实例使用的内存量
--throttle=IOS
同xtrabackup的--throttle参数
--sleep=是给ibbackup使用的,指定每备份1M数据,过程停止拷贝多少毫秒,也是为了在备份时尽量减小对正常业务的影响,具体可以查看ibbackup的手册 ;
--compress[=LEVEL]
对备份数据迚行压缩,仅支持ibbackup,xtrabackup还没有实现;
(编辑:宁德站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|