王炸科技头像

MySQL实验室DMB数据库监控及灾备系统之[备份模式的选择]

来源:
       

  很多企业,特别是中、大型互联网企业都在大量的使用MySQL数据库,并且绝大部分情况下使用的都是InnoDB存储引擎。使用InnoDB存储引擎有很多因素,比如事务安全、自动恢复、行锁、在线备份等等特性。在MySQL数据库应用和运维中,除了数据库状态和性能监控之外

  很多企业,特别是中、大型互联网企业都在大量的使用MySQL数据库,并且绝大部分情况下使用的都是InnoDB存储引擎。使用InnoDB存储引擎有很多因素,比如事务安全、自动恢复、行锁、在线备份等等特性。

  在MySQL数据库应用和运维中,除了数据库状态和性能监控之外,数据库的备份一直没有很好的工具去管理,DMB数据库监控及灾备系统就是为解决这一矛盾而诞生的。

MySQL实验室DMB数据库监控及灾备系统之[备份模式的选择]-第1张图片

  DMB系统中备份配置中总共有7种备份模式,下面将针对它们分别介绍,什么样的情况下应该选择什么样的备份模式,以实现最高效的备份,且尽可能的减少对业务的影响。MYSQLDUMP:调用MySQL系统的mysqldump命令进行备份。其中在只有InnoDB的情况下,可以实现在线热备,不会影响线上业务;在有MyISAM表的情况下,在备份过程当中会增加全局锁,这时候系统是只读的。备份之后会生成master信息,可以通过备份的SQL文件和master_info.sql创建slave服务。IBBACKUP_ALL:备份所有的InnoDB和MyISAM表,在没有MyISAM表的情况下,备份过程中不会对线上业务造成影响,属于在线热备;如果存在MyISAM表,那么在备份完InnoDB之后,备份MyISAM的过程中MySQL数据库是只读的。备份会生成master_info.sql,用于创建slave。IBBACKUP_INNODB:针对只有InnoDB表的情况,不会备份MyISAM表,属于在线热备,不会造成写堵塞。备份会生成master_info.sql,用于创建slave。IBBACKUP_NONBLOCK:针对只有InnoDB的情况,不备份MyISAM表,属于在线热备,对系统不造成任何堵塞。备份不生成master_info.sql,不能用该备份创建slave,只用于备份用。XTRABACKUP_ALL:同IBBACKUP_ALLXTRABACKUP_INNODB:同IBBACKUP_INNODBXTRABACKUP_NONBLOCK:同IBBACKUP_NONBLOCK

  说明:备份模式中以IBBACKUP开头的调用的是ibbackup,以XTRABACKUP开头的调用的是xtrabackup。所有备份都包含MySQL数据库系统库mysql和配置文件my.ini在不清楚的情况下备份模式可以选择MYSQLDUMP、IBBACKUP_ALL、XTRABACKUP_ALL。IBBACKUP、XTRABACKUP都属于物理备份,恢复速率比MYSQLDUMP要大,能缩短恢复时间。其中IBBACKUP_NONBLOCK、XTRABACKUP_NONBLOCK不会调用flush操作,因此在任何情况下都不会影响在线业务。而其他几种备份模式因为为了取得masterinfo信息,有些会在瞬间加上全局锁然后释放,在极端情况下会对数据库造成一定影响。具体情况以及针对现有MySQL的patch会在后续的blog中加以阐述。

  Relatedposts:MySQL企业级数据库灾备(备份)系统-DMBv2.1发布MySQL5.5复制/同步的新特性及改进MySQLvsNoSQL效率与成本之争MySQL5.5Released(非GA)MySQL5.6发布及其新特性

  ?谭俊青发布在MySQL性能、MySQLCluster集群、MySQLHA高可用等研究-MySQL实验室,2011.

  可以任意转载,但转载时务必以超链接形式标明文章原始出处和作者信息。

  链接:http://www.mysqlab.net/blog/2011/04/dmb-database-mysql-backup-method/

  标签:DMB,ibbackup,xtrabackup,在线热备,备份