MySQL的监控原理( 二 )


第一个min_examined_row_limit:指定语句必须检查的最低行数,以便慢速查询日志记录该语句 。
第二个log_throttle_queries_not_using_indexes:它指定慢速查询在60秒内记录的查询数量,因为它们不使用索引 。慢速查询日志记录了这些查询的数量后,它汇总了在该时间段内花费在其余语句上的数量和总时间 。默认情况下,该服务器选项的值为0,表示它记录所有此类查询 。
举例说明:
# Time: date-and-time # User@Host: root[root] @ localhost [127.0.0.1] Id: 7694 # Query_time: 1.010099 Lock_time: 0.000023 Rows_sent: 0 Rows_examined: 1 SET timestamp=timestamp; /* mem dbpool.default */ update `mem__inventory`.`MysqlServer` set `timestamp`=timestamp where hid=x'08310BA6528CBF5783BBD95CE5B4561F';
例子包括服务器日期和时间,连接和查询信息,运行查询和持有锁的时间 。
 
我们使用mysqldumpslow查看慢速查询日志,mysqldumpslow命令行程序总结了慢速查询日志的内容 。它将类似的查询分组在一起,例如将数值参数更改为N,将字符串参数更改为'S',显示此类查询的数量以及运行查询所需的平均时间和总时间 。使用-g选项提供一个搜索词,仅显示匹配搜索项的语句的摘要信息 。也可以通过设定log_output服务器选项来指定表或文件日志输出 。。
log_output服务器选项是用来配置慢速查询日志和通用查询日志 。它包含一个或多个FILE、TABLE或NONE值(以逗号分隔) 。默认情况下,它的值为FILE 。NONE代表日志既不写文件,也不写表 。NONE的存在会导致忽略FILE或TABLE 。FILE表示日志分别写入由slow_query_log_file和general_log_file MySQL服务器选项指定的文件 。在MySQL数据目录文件中的缺省值为hostname-slow.log和hostname.log 。TABLE表示在mysql数据库中,慢速查询日志写到slow_log表,常规日志写到general_log表 。
 
随着时间的推移,日志文件会占用更大的空间 。定期备份和删除旧的日志文件,并重新记录到新的日志文件是DBA的日常工作之一 。注意,如果使用二进制日志进行复制,请谨慎使用 。备份后,刷新日志 。刷新日志需要注意
1. 创建新的二进制日志文件
2. 关闭并重新打开常规和慢速查询日志文件 。在创建新日志时,必须在刷新之前重命名当前日志文件 。
可以创建自己的脚本或使用提供的mysql-log-rotate脚本来实现定期安排日志文件的循环 。备份日志文件后,刷新日志以强制MySQL服务器开始写入新的日志文件 。可以通过执行FLUSH LOGS SQL语句或执行mysqladmin flush-logs来实现 。在刷新二进制日志会导致二进制日志记录顺序中的下一个文件重新开始 。刷新普通和慢速查询日志时,这将关闭日志文件,重新打开它们,然后在相同的文件名下重新进行日志记录,要启动新的日志,请在刷新之前重命名现有的日志文件 。

【MySQL的监控原理】


推荐阅读