mysql日志类型:1、查询日志(通常不会开启,也不建议开启)2、慢查询日志(建议开启)3、错误日志(建议开启)4、二进制日志(建议开启)5、中继日志6、事务日志(帮助事务型存储引擎完成ACID测试)mysql>SHOWGLOBALVARIABLESLIKE'%log%';#查看和日志相关的变量查询日志:general_log=ON|OFF#是否开启查询日志general_log_file=PATH#查询日志文件路径log_output=FILE|TABLE|NONE#输出方式,默认为FILE慢查询日志:执行时长超出指定时长的查询操作mysql>SHOWGLOBALVARIABLESLIKE'long_query_time';#查看超时时长服务器变量:slow_query_log=ON|OFF#是否开启慢查询日志log-slow-queries=PATH#慢查询日志存储路径,默为HOSTNAME-slow.loglog_output=FILE|TABLE#输出方式,默认为FILEmysqldumpslow#慢查询日志分析工具错误日志:1、记录mysql启动和关闭过程中产生的事件信息2、记录mysql运行过程中产生的错误信息3、在主从架构中,从服务器上启动从服务器线程产生的信息服务器变量:log_error=OFF|ON|PATH#启动错误日志,如果不指定错误日志位置将使用默认位置log_warnings=0|1#是否记录警告信息二进制日志:记录导致数据改变或者有可能导致数据发生改变的SQL语句功能:用于实现通过"重放"日志文件中的事件来生成数据副本mysql>SHOWMASTERLOGS;#查看可使用的二进制日志文件列表mysql>SHOWMASTERSTATUS;#查看正在使用的二进制日志文件mysql>SHOWBINLOGEVENTS;#查看二进制日志文件内容服务器变量:sql_log_bin=OFF|ON#是否开启二进制日志log_bin=OFF|ON#是否开启二进制日志,必须同时启用才能生效binlog_format=STATEMENT|ROW|MIXED#二进制日志格式max_binlog_size=#单个二进制文件最大大小1、到达最大大小时自动滚动2、重启后自动滚动sync_binlog=0|1#是否同步写入,默认为异步写入1、同步写入会影响服务器性能2、异步写入可能会造成数据丢失二进制文件格式:基于语句的记录:STATEMENT优点:在相同体积下记录的数据更多缺点:不能保证回放的数据和源数据完全相同如:mysql>INSERTINTOtestVALUE(1,now());#每一次获取的系统时间都不相同基于行(数据)的记录:ROW优点:能保证回放的数据和源数据基本相同缺点:在相同体积下记录的数据更少混合模式:MIXED,由系统判定基于那种方式进行存储二进制文件的构成:日志文件:mysql-bin.00000X#二进制文件索引文件:mysql-bin.index#保存当前可用的二进制日志文件列表二进制日志事件的格式:mysqlbinlog#二进制文件分析工具使用格式:mysqlbinlog[--start-position=事件开始位置]二进制日志文件例:mysqlbinlogmysql-bin.000003#at655#1702208:33:37serverid1end_log_pos731Querythread_id=12exec_time=0error_code=0SETTIMESTAMP=1487550817/*!*/;BEGIN/*!*/;事件的起始位置:at655事件发生的时间:1702208:33:37serverid1:serverid,在做mysql集群时必须保证serverid全局唯一事件的结束位置:end_log_pos731事件的类型:Query事件发生时所在服务器执行此事件的线程ID:thread_id=12语句执行和将其写入二进制日志中的时间差错误代码:error_code中继日志:主从架构中实现主从复制的从服务日志,主要用于保存从二进制日志文件中读取事件事务日志:由事务型存储自行管理和使用清理日志:PURGEBINARYLOGSTO'mysql-bin.010';#清除指定日志之前的二进制日志PURGEBINARYLOGSBEFORE'2008-04-0222:46:26';#清除指定时间之前的二进制日志 |