您的位置:首页 > 数据库 > MySQL

MySQL各种日志总结

2015-12-25 09:26 435 查看
日志类型:错误日志(error log)常规日志(general log)
二进制日志(bin log)中继日志(relay log)慢日志(slow log)InnoDB引擎的redo log

错误日志log-error
= error.log不加存储路径存储到datadir下,如果不指定名字是hostname.err记录mysql启动关闭,运行中的异常或是重要提示信息在生产环境中,监控这个日志 全量日志(常规日志)general_log = OFF|ONgeneral_log_file =
general.log不指定路径存储到datadir下,如果不指定名字是hostname.log开启后,记录client和数据库的所有请求 二进行日志  最大文件数为2的32次方个log-bin =
/data/mysql/mysql3306/logs/mysql-bin设置二进制日志的存储位置及prefix名字用记录数据库写入操作的日志,可以用于备份或是master/slave的复制,必须有server-id如果没有可以通过修改内存里的值加上,但是有风险不能太快产生,尽量大些,5分钟左右产生一个日志 log_bin = /data/mysql/mysql3306/log/mysql-bin 是否开启binloglog_bin_index
= /data/mysql/mysql3306/log/mysql-bin.index指定binlog的一个索引文件,默认是在datadir形成log_bin的prefix名indexbinlog_do_db
= thunder用于指定只记录那个库的二进制日志(建议不要用)max_binlog_size
= 500M指定binlog的大小为500M一个文件,默认是1Gexpire-logs-days
= 5指定保留binlog的天数 binlog_format
= row指定binlog的日志格式,支持statement,row,mixed格式statement格式记录原生的sqlrow格式里没有,但5.6后增加了一个query event可以看到原来的sqlbinlog_rows_query_log_events 默认是offmixed格式是两种形式的混合体,DDL语句记录statement格式,DML语句记录row格式推荐使用row格式binlog_row_image
= full控制日志中binlog的详细相关的程度,支持full(default),minimal,nobolbminimal:只记录变化的行和唯一标识列nobolb:除了blob,text其它列都记binlog_error_action
= abort_server当遇到mysql不能写binlog时,报出异常,默认是ignore error不报错binlog_direct_non_transactional_updates
= on对于非事务引擎表,直接走日志,不走2pc提交,默认是不支持binlog_order_commit
= on按顺序写入日志binlog_cache_size=1M 已经很大此参数表示binlog使用的内存大小,可以通过状态变量binlog_cache_use和bin_cache_disk_use 来帮助测试binlog_cache_use:使用二进制日志缓存的事务数量binlog_cache_disk_use:使用二进制日志缓存但超过binlog_cache_size值并使用临时文件来保存事务中的语句的事务数量binlog_checksum (5.6.2引入)在高版本上修改mysql5.6.6后默认是crc32,之前版本是none在启用这个参数之前对于日志的完整校验就是通过对比长度,引入新的方式后,利用新方法对内容进行校验binlog_rows_query_log_events (5.6.2引入)只作用于RBR格式,默认不启用如果启用,会把用户写直的原生态DML操作记录到binlog中log_bin_use_v1_row_events (5.6.6引入)默认是0,如果使用1是使用Version1的格式,mysql5.5可以认出来的形式,如果0是5.6.6后使用的version2格式sync_binlog
= 1|0这个参数对性能影响严重,数据一致性条件要求高调整为1,性能差别大概为10倍当事务提交后,mysql仅仅是将binlog_cache中的数据写入binlog文件,但不执行fsync之类的磁盘同步指令通知文件系统将缓存刷新到磁盘,面让filesystem自行决定什么时候来同步,这个是性能最好的。sync_binlog=n 在进行n次事务提交以后,mysql将执行一次fsync之类的磁盘同步指令,同步文件系统将binlog文件缓存刷新到磁盘。mysql中默认的设置是sync_binlog=0,即不作任何强制性的磁盘刷新指令,这是性能是最好的,但风险也是最大的。一旦系统crash,在文件系统缓存中的所有binlog信息都会丢失 中继日志relay-log
= relay-bin设置中继日志的名称前缀,不指定路径默认在datadir下log_thread从master就读到的日志写到中继日志中,供sql_thread执行,以完成复制 慢日志slow-query-log-file
= slow.logslow-query-loglong_query_time=1是怎么计时的,ddl语句 exec时间dml语句 select从等待锁开始计时,insert只记录执行时间 利用slow-query-log这个参数打开慢日志,slow-query-log-file指定慢日志的名称,不指定路径默认在datadir下建议每天一个文件,时间长可能会很大,做定时任务 Innodb的redo log 《事务处理概念》事务处理圣经innodb_log_group_home_dir=/data/mysql/mysql3317/logs 默认在datadir下SSD磁盘中,日志文件不要放在SSD磁盘中,普通硬盘即可innodb_log_file_size = 200M 512M左右即可innodb_log_files_in_group = 3 个数指定redo log的存储位置及大小,文件个数Innodb事务操作不可缺少的一个环节   

本文出自 “ThunderMeng” 博客,请务必保留此出处http://thundermeng.blog.51cto.com/9414441/1727983
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: