Mysql 一共记录 4 种日志
1. The Error Log
2. The General Query Log
内容
通用查询日志里记录了所有客户端连接和断开信息,所有执行的SQL(不论是否成功执行) *配置
开启选项--log[=file_name]特点
通用查询日志里记录了服务器的大量行为,所以会随着服务器运行而迅速增大,特别是对于比较繁忙的服务器,磁盘开销很大,正常运行时建议关闭应用
通用查询日志主要用于服务诊断,平时运行不建议开启默认
默认不开启,默认文件名为hostname.log,默认路径是数据库data目录MySQL5.1中的通用查询日志
在MySQL5.0中,通用查询日志只能使用文件存储。而在MySQL5.1中,存放在文件中或是存放在表中是可选的。全局的general_log和general_log_file变量可以控制是否记录这个日志。将general_log设为0(或OFF)即可禁用这个log。general_log_file指定了存放log的文件名。当通用查询日志开启的时候,--log-output选项可以控制log的存放方法,可选的值包括(*TABLE*,放在表中:*FILE*,放在文件中;*NONE*,优先考虑其他位置)。
3. The Binary Log二进制日志(Binary Log),记录服务器中所有更新操作
配置
开启选项--log-bin以记录慢查询日志应用
用于记录数据库的所有更新操作,通常用于数据恢复和replication时slave更新操作,建议开启默认
默认不开启,默认文件名是形如主机名-bin.000001的文件名,默认目录是数据库data目录Rotate
当MySQL服务重启或是日志到达max_binlog_size(1.1G左右)或是FLUSH LOGS执行的时候,二进制日志会rotate一下。删除日志
设定全局变量expire_logs_days或是SQL命令PURGE BINARY LOGS
-- 日志被rotate后,如果更新时间大于expire_logs_days天即会被自动删除 SET GLOBLE expire_logs_days = 1; -- 删除三天前的日志 PURGE BINARY LOGS BEFORE now() - interval 3 day; -- 删除不比mysql-bin.010新的日志 PURGE BINARY LOGS TO 'mysql-bin.010';
4. The Slow Query Log
从MySQL5.1.6开始,General Query Log和Slow Query Log开始可以写到文件或者数据库表中,并且日志的开关,保存方式的修改,都是Global级别动态修改。
也就是说不需要重启服务器动态生效了。
日志保存到数据库表
root@mysql-server>SET GLOBAL log_output=TABLE;
日志保存到文件
root@mysql-server>SET GLOBAL log_output=FILE;
root@mysql-server>SET GLOBAL general_log_file=’/tmp/general.log’;
root@mysql-server>SET GLOBAL general_log=on;
root@mysql-server>SET GLOBAL slow_query_log_file=’/tmp/slow.log’;
root@mysql-server>SET GLOBAL slow_query_log=on;
保存到数据表则是在mysql.general_log和mysql.slow_log 默认ENGINE为CSV
SET @old_log_state = @@global.general_log;
SET GLOBAL general_log = ‘OFF’;
ALTER TABLE mysql.general_log ENGINE = MyISAM;
SET GLOBAL general_log = @old_log_state;
可以动态修改日志保存表引擎。
具体的一些配置用法可以参考Mysql Doc就不再累赘。(http://dev.mysql.com/doc/refman/5.1/en/log-tables.html)利用这个功能,脑子里就有了个数据库服务器定时监控系统的雏形。大概的功能是可以在指定的时间段内(而非实时)开启被监控数据库服务器的日志功能,获取并保存日志,出报表给DBA分析,起到抽样日志分析的作用,这样的好处是只需监控数据库的高压时间就可以找到系统的短板。
最近在Mysql圈子里看到挺多人研究XtraBackup(开源MySQL在线热备份工具 https://launchpad.net/percona-xtrabackup)顺便在这里也啰嗦下,有兴趣的自己研究吧。XtraBackup 下载地址: http://www.percona.com/mysql/xtrabackup/0.7/
参考文献:http://blog.seateng.cn/archives/2009/06/mysql-server-log.html