MySQL二进制日志(binary log)总结
《MySQL二进制日志(binary log)总结》要点: 导读:今天无意中发现了一个云栖社区举行的MySQL第一季:挑战玄惭之慢SQL性能优化赛,在测试服务器上执行其测试脚本写入数据的时候报错提示如下,...
今天无意中发现了一个云栖社区举行的MySQL“第一季:挑战玄惭之?慢SQL性能优化赛”,
Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage,increase this mysqld variable and try agagin ?提示max_binlog_cache_size空间不足,因为开启了二进制日志,之前是默认设置没有大批量的事务性操作,没有遇到该问题,这一次一开始就遇到一个较大的事务性操作就失败了. ? 由于使用的是默认的innodb引擎,开启了二进制日志, ? 顺便总结一下二进制日志(binary log)以及其相关参数信息
二进制日志(binary log)的相关参数信息
2,二进制日志文件的格式 ?二进制日志的格式由参数binlog_format控制,二进制日志有三种模式,基于语句(statement)的,基于行的(row),以及结合前两者的混合模式(mixed) 3,二进制日志的记录时机 二进制日志记录可以使同步的,也即事物提交之后就写入二进制日志,也可以是异步的,由操作系统的磁盘缓存觉得什么时候写入磁盘. 据说设置为sync_binlog设置为1也会潜在丢失一个事务日志的可能性,但是还没想明白为什么会丢失,因为既然是事务性引擎,还有一层undo或者redo日志在做后盾啊? 后面想想,因为有redo和undo日志的存在,事物的一致性可以在主服务器上得到保证,应该是主从复制的时候,可能丢失的一条事物可能无法传递到从服务器. 4,二进制日志的单个文件大小 二进制日志的大下就是单个日志文件的最大限制,正常情况下都不会超过设置的最大文件的大小限制,超过设置的最大限制之后,会发生日志滚动,也即重新生成一个二进制日志文件. 5,二进制日志的清理 二进制日志滚动之后会生成新的文件来存储日志,日志文件逾期之后会自动删除,否则会产生源源不断的日志文件 ? 6,二进制日志文件的滚动 1)正常情况下,记录满之后,自动滚动,后缀名+1 4)手动删除二进制日志 可以通过命令purge binary logs to fileName删除指定fileName之前的文件 可以通过命令purge binary logs before?'2017-03-10 10:10:00'删除指定时间之前的文件 删除指定日志purge binary logs before date_sub( now( ),interval 7 day); 7,二进制日志的绑定(或者排除)的数据库 可以设置某些数据库开启二进制日志,或者某些数据库不开启二进制日志 8,二进制日志的缓存以及缓存大小配置 binlog_cache_size的大小,一开始提到的问题,当事物开始的时候,如果指定的binlog_cache_size缓存空间不够则会报错并回滚事物 max_binlog_cache_size语binlog_cache_size的区别在于前者是实例级别的cache,后者是Session级别的cache,如果并发量很大,就需要考虑将max_binlog_cache_size设置的稍微大一些. ? ? max_binlog_cache_size设置的最大内存大小为4GB,如果服务器内容较大,比如128GB或者更大,max_binlog_cache_size默认为设置为最大也无伤大雅,因为要保证并发成功写入. 9,二进制日志其他参数 max_binlog_stmt_cache_size针对非事务语句,非事务性的参数暂不关心它了 总结: MySQL二进制日志不仅仅作用于功能性(master-slave复制)的,还作用于安全性(二进制日志)以及开启了二进制日志情况下的事务性操作,因此对于生产环境,可以认为是一个必不可少的配置. 参考:http://www.cnblogs.com/kerrycode/p/6610874.html? 《涂抹MySQL》 以及各种翻书,网上资料 行动起来,可以改变思维模式以及畏惧心理. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- AngularJs学习笔记——摘自菜鸟教程
- bootstrap菜单、按钮及导航学习笔记5-15导航(基础样式)
- 如何在Scala的foreach中使用Java List?
- Bootstrap维护者宣布停止v3版本的更新(附逐浪官方镜像)
- twitter-bootstrap – 仅当用户点击关闭图像时如何关闭Boot
- Bootstrap嵌入jqGrid,使你的table牛逼起来
- WebService报错javax.xml.ws.soap.SOAPFaultException: jav
- AngularJS和ng-grid – 在单元格更改后自动将数据保存到服务
- FileTransfer未定义 – AngularJS
- 一键host修改