加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

ibbackup参考手册

发布时间:2020-12-16 00:33:23 所属栏目:大数据 来源:网络整理
导读:? ? ? ? ? ? ? ? ? ? ? ? ? ??ibbackup参考手册 一.关于ibbackup 1.注册相关 ibbackup是一个收费的备份软件,在购买的时候,需要注册,比如填写使用该软件的主机名,然后,会自动把购买者填写的主机名写入到ibbackup这个二进制文件里面。然后就可以下载使用

? ? ? ? ? ? ? ? ? ? ? ? ? ??ibbackup参考手册

一.关于ibbackup

1.注册相关

ibbackup是一个收费的备份软件,在购买的时候,需要注册,比如填写使用该软件的主机名,然后,会自动把购买者填写的主机名写入到ibbackup这个二进制文件里面。然后就可以下载使用了。所以说,ibbackup是把注册的主机名“刻录”到其中的。

?

2.软件结构

该软件由? ibbackup??innobackup? 主要这两部分组成

其中ibbackup? 是主要的备份软件。(可执行文件)

Innobackup 是一个perl脚本。它会调用ibbackup来执行备份

?

3.支持的备份

在线备份、增量备份、全量备份...

?

二.备份基本原理

创建备份文件夹,然后通过读取my.cnf获取数据文件和事物日志文件的大小、个数、路径等信息。

?

1.复制innodb日志文件

1)记录一个checkpoint之前的LSN,并从该LSN开始,复制到最近的checkpointLSN结束的所有事物日志。并记录这两个LSN。比如

start lsn 3 35257344,end lsn3 35257702

其中 checkpoint 对应 LSN 为 3 35257702

?

?

2)从复制开始到结束,对于备份好的innodb日志文件的回滚信息,只有部分日志文件有必要被复制和覆盖。

?

2.复制数据文件及索引

1)依次复制ibdata文件、ibd文件

ibbackup 通过对 InnoDB 数据文件进行压缩、复制完成备份。

?

2)备份文件能被压缩70%--90%。之所以能压缩这么多,是因为,在做备份时,复制数据文件的过程中,会忽略存储于每个block中没有使用的存储空间以及忽略没有使用的空页(empty page)。(注意压缩级别也是可以设置的,ibbackup分为0—9个压缩级别,默认为1)

?

3)当数据文件被复制和压缩的时,最新的LSN和最旧的LSN会被记录。

?

3.备份MyISAM表

备份MyISAM会使用innobackup。(这个操作会连接mysqlserver)

1)sql flush tables? with read lock ;刷表并设只读锁表

2)myisam表 &&indexes,表定义.frm等文件被mysqlbackup备份

?

4.备份innodb日志文件

因为在备份数据文件的时间,会有新的数据被更改,产生新的LSN,所以需要备份这段时间的innodb日志文件。比如

start lsn 3 35257702,end lsn3 35257722

其中,lsn 3 35257702 就是二.1.1)中提到的checkpoint

?

三.恢复基本原理

1.解压数据文件到数据目录

2.应用innodb logfile 到数据文件中,确保数据一致性

3.重建innodb logfile? (在2的基础上产生)

4.恢复myisam及其它文件

?

在恢复的过程中,不是从lsn 3 35257702开始恢复(虽然35257702是checkpoint),而是从35257344开始一直恢复到35257722.

?

四.使用方法

1. 执行备份

perlinnobackup --user=user_name --password=user_password? --ibbackup=/home/longxibendi/backup/ibbackup?? /etc/my.cnf??? /home/longxibendi/back_up/

?

上面的参数可以用innobackup –help? 查看

其中? user是数据库用户名,password是数据库密码,ibbackup是可执行的备份文件,my.cnf是MySQL配置文件,/home/longxibendi/back_up? 是备份后的文件所在目录。实际上,会在back_up下再建立以当前时间为参数的var文件夹,其中存放的备份文件。比如

Back_up/var. 20110812140418

?

执行这个备份之后产生的文件有(为了对比方便,这里列出了对应文件md5值)

69230a608907c16f4022dec4db8a8325? ./backup-my.cnf

4aebba1ba15cbf2eeffd3c88bb3176f7? ./ibbackup_binlog_info

e2eab75f272632e91862c804b75504ec? ./ibbackup_logfile

703122eefe9cf5b8df33e4ae54c0993f? ./ibdata1

md5sum: ./longxibendi: Is adirectory

md5sum: ./mysql: Is adirectory

d41d8cd98f00b204e9800998ecf8427e? ./mysql-stderr

c311dd124e0701040e1faef783f67f6f? ./mysql-stdout

md5sum: ./test: Is adirectory

?

?

?

2.应用事务日志

上面四.1进行了全备份,但是在备份过程中可能产生了写操作,这就需要应用刚备份的事物日志执行前滚操作,把数据从innodb ib_logfile写入到data文件中。在此过程中会产生新的ib_logfile,删除备份之后的ib_logfile。

perl innobackup --applay-log--user=user_name?--password=user_password?--ibbackup=/home/longxibendi/backup/ibbackup?? /etc/my.cnf??? /home/longxibendi/back_up/var.20110812140418

?

应用重做日志之后,产生的文件如下(前面是对应的MD5值)

69230a608907c16f4022dec4db8a8325? ./backup-my.cnf

4aebba1ba15cbf2eeffd3c88bb3176f7? ./ibbackup_binlog_info

e2eab75f272632e91862c804b75504ec? ./ibbackup_logfile

4f34f7f4c6913fb88b0671765ac6c455? ./ibdata1

06b01370cc9e7c8547211348a0d8ac07? ./ib_logfile0

3566de3a97906edb98d004d6b947ae9b? ./ib_logfile1

3566de3a97906edb98d004d6b947ae9b? ./ib_logfile2

md5sum: ./longxibendi: Is adirectory

md5sum: ./mysql: Is adirectory

d41d8cd98f00b204e9800998ecf8427e? ./mysql-stderr

c311dd124e0701040e1faef783f67f6f? ./mysql-stdout

md5sum: ./test: Is adirectory

?

从上面结果得知,使用—applay-log? 之后,会应用ibbackup_logfile文件执行前滚ibdata文件,并产生ib_logfile 。

?

?

五.企业级使用

在使用过程中,需要先修改主机名,执行备份,再修改主机名恢复原主机名。

?


?

声明:本文档可以随意更改,但必须署名原作者

作者:凤凰舞者?qq:578989855

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读