Mysql 日志
日志文件 | 选项 | 文件名 | 程序 |
错误 | --log-error | host_name.err | |
常规 | --general_log | host_name.log | |
慢查询 |
--slow_query_log --long_query_time |
host_name-slow.log |
mysqldumpslow pt-query-digest |
二进制 |
--log-bin --expire-logs-days |
host_name-bin.00001 |
mysqlbinlog binlog2sql |
审计 |
--audit_log --audit_log_file |
audit.log |
二进制日志格式
基于语句(statement) | 基于行(row) | |
日志文件大小 | 小 | 大 |
复制限制 | 并非所有语句都可以复制 | 所有语句都可以复制 |
主/从 mysql版本 | 从可以采用不同行结构的较新版本 | 从必须是完全相同的版本和行结构 |
锁定 | insert 和 select 要求数量更多的行锁 | insert update delete 在从上需要较少的锁 |
时间恢复 | 是 | 是 |
show binary logs;
show master status;
show binlog events in 'mysql-bin.000001';
基于时间删除日志
set global expire_logs_days=7;
purge binary logs before now() -interval 3 days;
根据文件名删除
purge binary logs to 'mysql-bin.000009';
----------------------------------------------------------------------------------------------
查询日新增SQL
select a.query from (select query from sys.statement_analysis where first_seen>=DATE_SUB(sysdate(),INTERVAL 1 DAY)
and last_seen<sysdate()) a left join (select query from sys.statement_analysis where first_seen>=DATE_SUB(sysdate(),INTERVAL 2 DAY)
and last_seen<DATE_SUB(sysdate(),INTERVAL 1 DAY)) b on a.query=b.query