Chinaunix首页 | 论坛 | 博客
  • 博客访问: 461027
  • 博文数量: 237
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 0
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-12 14:40
个人简介

  每个人生的当口,都是会有一个孤独的时刻,四顾无人,只有自己,于是不得不看明白自己的脆弱,自己的欲望,自己的念想,自己的界限,还有,自己真正的梦想。

文章分类

全部博文(237)

文章存档

2017年(3)

2016年(234)

分类: Mysql/postgreSQL

2016-05-11 11:12:49

原文地址:mysql-binlog备份初探 作者:ning_lianjie

备份MySQLbinlog文件,可以配合分库或全库的备份文件实现基于时间点的数据恢复.

在工作过程中,遇到两种情况:

1.不执行flush logs命令

缺点:对于不进行频繁写入和更新的业务,备份后,浪费磁盘空间.

优点:对于一天只生成一个binlog文件的业务,恢复数据比较容易,只需要解压一个binlog文件.

 

2.执行flush logs命令

缺点:在刷新和重新打开日志时,会潜在的破坏旧的日志条目.

优点:对于不进行频繁更新的业务员,会节省一点磁盘空间.

 

个人比较偏重不执行flush logs命令.

如果把binlog文件的大小设置为512M,通常情况下,压缩比率可以达到10:1,甚至更高.所以这点磁盘空间,基本不会有什么影响.

 

另附一个备份binlog的脚本代码

  1. function backup_binlog(){
  2. if [ -s $DIR_BACKUP/$HOSTNAME.mysql-bin ]; then
  3. read POS < $DIR_BACKUP/$HOSTNAME.mysql-bin
  4. cd $DIR_DATA
  5. runstatus tar -zcvf $DIR_BACKUP/$TIME_YM/$TIME_DAY/$HOSTNAME.$POS.$TIME.tgz \
  6. `gawk -F'/' '{print $NF}' $BINLOG_NAME.index |sed -n "/$POS/,//p"`
  7. fi
  8. # write last pos
  9. gawk -F'/' '{print $NF}' $DIR_DATA/$BINLOG_NAME.index | tail -n 1 >$DIR_BACKUP/$HOSTNAME.mysql-bin
  10. }

#$HOSTNAME.mysql-bin文件记录了上次备份的文件名字

#如果该文件不存在,则先生成.利用gawk

阅读(377) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~