mysql通过binlog进行增量备份

来源:互联网 发布:绿巨人 知乎 编辑:程序博客网 时间:2024/06/01 08:13

在备份mysql数据的时候,可能会遇到数据基数很大的情况,如果每天都备份整个全库,将会耗费很大的资源,这个时候就可以通过binlog进行增量备份,每天记录一个breakpoint,备份的时候从前一天breakpoint往后进行增量备份就可以了。还有一种情况也可以用到增量备份,那就是在线迁移数据的时候,在不停服务的情况下迁移全库数据就可以采用增量备份补充增量数据。

通过binlog进行增量备份时如果不需要过滤特定的database和table就可以直接通过mysql自带的master/slave机制来进行增量备份。如果需要过滤出特定的database或者table,那么就需要自己写代码过滤binlog。下面就来说说怎么进行binlog的过滤和增量备份。

1.使用%MYSQL_HOME%/bin/mysqlbinlog工具将binlog的二进制文件解析成文本,可以写到硬盘上或者放到管道里。

2.需要一个binlog的过滤程序对文本的binlog进行过滤,过滤的目的是找出特定的database和table的sql语句。

3.在过滤的时候不能按行进行grep,因为可能有一个sql语句在多个行,这时可以通过分隔符“;”来进行划分,这里要注意的是要先将注释去掉,因为注释中很有可能含有“;”(mysql的注释包括/*,#和--),还要注意字符串中的“;”也不能算进来(处理字符串的时候要注意双引号的转义)。

4.将sql逐条进行过滤,这里同样需要一些关于字符串的处理,这里要注意的是,use语句的上下文环境,这个将决定sql所对应的database,然后将sql的命令列成白名单进行表名位置的匹配,获取表名以后再进行过滤。

5.因为在备份binlog的同时又有新的binlog产生,这时就需要一个循环,不停地进行上述的4个步骤,直到剩下的binlog大小足够小,就可以停一小段时间mysql的写操作,将剩下的binlog完全同步过去。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 2岁宝宝掉发严重怎么办 生孩子后掉头发严重怎么办 有16岁孩孑教吾听怎么办 生完孩子后脱发怎么办 学生掉头发很厉害怎么办 35岁开始掉头发怎么办 高三学生玩手机怎么办 高三学生不学习怎么办 17岁经常掉头发怎么办 出汗后头皮很痒怎么办 头发老是掉怎么办会不会长出来 头发痒还掉头发怎么办 7个月宝宝入睡难怎么办 45天宝宝入睡难怎么办 两岁宝宝入睡难怎么办 吃激素掉发严重怎么办 20多岁掉头发怎么办 最近头发老掉怎么办20 20多岁最近严重脱发怎么办 头痒头皮屑多掉头发怎么办 有头屑头痒掉头发怎么办 老是头痒掉头发怎么办 头屑头痒掉头发怎么办 头痒头屑多掉头发怎么办 洗头发时总是掉发怎么办 染头发染到脸上洗不掉怎么办 总爱掉头发怎么办20岁 头发开叉长的慢怎么办 洗头时掉很多头发怎么办 出门前头发很油怎么办 关于头发头顶头发少怎么办 每天掉100根头发怎么办 小孩嘴巴烂了该怎么办 小孩吃烧烤嘴巴肿好大该怎么办 脸特别瘦的人怎么办 怀孕宝宝太懒了怎么办 奶油胶手机壳脏了怎么办 为什么电脑桌面壁纸变成黑色怎么办 仓鼠妈妈老忘了宝宝怎么办 木工三排多轴钻床气缸坏了怎么办? 水溶笔洗不掉怎么办