设为首页 加入收藏

TOP

使用XtraBackup给MySQL在线增量备份及恢复数据库(二)
2015-11-12 21:29:18 来源: 作者: 【 】 浏览:11
Tags:使用 XtraBackup MySQL 在线 增量 备份 恢复 数据库
ser=root --copy-back /data/backup/2015-09-18_16-35-12
chown -R mysql.mysql /data/mysq
service mysqld start


四、增量备份与还原
1、创建测试数据库和表
create database backup_test; //创建库
CREATE TABLE `backup` ( //创建表
`id` int(11) NOT NULL AUTO_INCREMENT ,
`name` varchar(20) NOT NULL DEFAULT '' ,
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ,
`del` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=myisam DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
2、增量备份
#--incremental:增量备份的文件夹
#--incremental-dir:针对哪个做增量备份
//第一次备份
mysql> INSERT INTO backup (name) VALUES ('xx'),('xxxx'); //插入数据
innobackupex? --user=root --incremental-basedir=/data/backup/2015-09-18_16-35-12 --incremental /data/backup/
//再次备份
mysql> INSERT INTO backup (name) VALUES ('test'),('testd'); //在插入数据
innobackupex --user=root --incremental-basedir=/data/backup/2015-09-18_18-05-20 --incremental /data/backup/
3、查看增量备份记录文件
[root@localhost 2015-09-18_16-35-12]# cat xtrabackup_checkpoints //全备目录下的文件
backup_type = full-prepared
from_lsn = 0 //全备起始为0
to_lsn = 23853959
last_lsn = 23853959
compact = 0
[root@localhost 2015-09-18_18-05-20]# cat xtrabackup_checkpoints //第一次增量备份目录下的文件
backup_type = incremental
from_lsn = 23853959
to_lsn = 23854112
last_lsn = 23854112
compact = 0
[root@localhost 2015-09-18_18-11-43]# cat xtrabackup_checkpoints //第二次增量备份目录下的文件
backup_type = incremental
from_lsn = 23854112
to_lsn = 23854712
last_lsn = 23854712
compact = 0
增量备份做完后,把backup_test这个数据库删除掉,drop database backup_test;这样可以对比还原后
4、增量还原
分为两个步骤
a.prepare
innobackupex --apply-log /path/to/BACKUP-DIR
此时数据可以被程序访问使用;可使用—use-memory选项指定所用内存以加快进度,默认100M;
b.recover
innobackupex --copy-back /path/to/BACKUP-DIR
从my.cnf读取datadir/innodb_data_home_dir/innodb_data_file_path等变量
先复制MyISAM表,然后是innodb表,最后为logfile;--data-dir目录必须为空
开始合并
innobackupex --apply-log --redo-only /data/backup/2015-09-18_16-35-12
innobackupex --apply-log --redo-only --incremental /data/backup/2015-09-18_16-35-12 --incremental-dir=/data/backup/2015-09-18_18-05-20
innobackupex --apply-log --redo-only --incremental /data/backup/2015-09-18_16-35-12 --incremental-dir=/data/backup/2015-09-18_18-11-43
#/data/backup/2015-09-18_16-35-12 全备份目录
#/data/backup/2015-09-18_18-05-20 第一次增量备份产生的目录
#/data/backup/2015-09-18_18-11-43 第二次增量备份产生的目录
恢复数据
service mysqld stop
innobackupex --copy-back /data/backup/2015-09-18_16-35-12
service mysqld start


五、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,xt

首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇MariaDB 10.1 和 MySQL 5.7 在普.. 下一篇MongoDB学习笔记——聚合

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: