二进制日志-管理

我们知道,写二进制日志与master数据库中的数据变化并不是一一对应的关系。要保持数据库和二进制日志之间的一致性,以防系统崩溃,就是要做到,如果更新没有写入二进制日志,就不会被提交到存储引擎,反之亦然。

sync-binlog选项可控制数据写入磁盘的频率,其值是一个整数,指定二进制日志写入磁盘的频率,以每提交语句或事务的次数为准,默认值为0,由操作系统决定。在5.6中,由于引入了二进制日志组提交,所以sync以提交组为单位,而不是按事务或语句。对于像InnoDB引擎,将sync-binlog=1,一般情况下操作系统的崩溃不会丢失事务,不支持事务的引擎,可能至少丢失一个事务。

有4种行为会导致二进制日志文件轮换,第一服务器停止,每次服务器启动都会开始一个新的二进制日志。第二,binlog文件大小达到最大限制,可以通过binlog-cache-size来控制binlog文件的大小。第三,二进制日志被显示刷新,flush logs命令将所有日志写入磁盘,然后创建一个新的文件继续写二进制日志。第四,服务器上发生故障,除了完全停止工作以外,服务器还可能遇到其他事故,从而导致二进制日志被轮换。

通过设置expire-logs-days选项,服务器可以自动清除旧的binlog文件。这个选项也可以用作服务器变量,其值为存储binlog文件的天数。也可以手工清除binlog文件,可使用purge binary logs命令。

purgebinary logs before datetime,清除给定时间之前的所有文件。

purgebinary logs to ‘filename’清除给定文件前的所有文件。

清除文件的过程是,首先将那些服务器认为电动机成熟的文件写到清除索引文件,然后,将文件从文件系统中删除,最后删除清除索引文件。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • MySQL的二进制日志(binary log)是一个二进制文件,主要用于记录修改数据或有可能引起数据变更的MySQ...
    时待吾阅读 6,200评论 0 1
  • 目录: 1.查询日志 2.慢查询日志 3.错误日志 4.二进制日志 5.中断日志 6.事物日志 一、查询日志 ge...
    BossHuang阅读 7,365评论 0 0
  • 日志文件对于一个服务器来说是非常重要的,它记录着服务器的运行信息,许多操作都会写日到日志文件,通过日志文件可以监视...
    时待吾阅读 4,615评论 0 5
  • 1.MySQL Server 有四种类型的日志——Error Log、General Query Log、Bina...
    懒懒DE鳄鱼阅读 7,557评论 0 0
  • Mysql运行很长时间以后会导致二进制很大或者很多,需要定期备份清理。 二进制日志清理:mysql提供expire...
    词穷又词贫阅读 3,365评论 0 0