1、MySQL日誌mysql
一、錯誤日誌sql
①配置方法數據庫
[mysqld] log-error=/data/mysql/mysql.log
②查看配置方式服務器
mysql> show variables like '%log%error%'; +---------------------+----------------------------------+ | Variable_name | Value | +---------------------+----------------------------------+ | binlog_error_action | IGNORE_ERROR | | log_error | /application/mysql/data/db01.err | +---------------------+----------------------------------+ 2 rows in set (0.00 sec)
③做用app
記錄MySQL數據庫的通常狀態信息及報錯信息,是數據庫常規報錯處理的經常使用日誌
二、通常查詢日誌工具
①配置方法性能
[mysqld] general_log=on general_log_file=/data/mysql/server2.log
②查看配置方式優化
mysql> show variables like '%gen%'; +------------------+----------------------------------+ | Variable_name | Value | +------------------+----------------------------------+ | general_log | OFF | | general_log_file | /application/mysql/data/db01.log | +------------------+----------------------------------+ 2 rows in set (0.00 sec)
③做用spa
記錄全部的已執行成功的操做,能夠做爲審計功能,通常狀況下不會開,除非特殊要求:ELK日誌收集
三、二進制日誌命令行
①二進制三種模式
row:行模式,數據行的變化過程 #推薦的格式 statement:語句模式 mixed:以上二者混合模式
②開啓二進制日誌
[mysqld] log-bin=/application/mysql/data/mysql-bin
③設置二進制的日誌格式
[mysqld] binlog-format=row
命令行修改日誌格式
set global binlog_format = 'ROW';
④查看binlog使用的日誌格式
mysql> show variables like '%format%'; +--------------------------+-------------------+ | Variable_name | Value | +--------------------------+-------------------+ | binlog_format | STATEMENT | | date_format | %Y-%m-%d | | datetime_format | %Y-%m-%d %H:%i:%s | | default_week_format | 0 | | innodb_file_format | Antelope | | innodb_file_format_check | ON | | innodb_file_format_max | Antelope | | time_format | %H:%i:%s | +--------------------------+-------------------+ 8 rows in set (0.00 sec)
⑤查看binlog設置
show variables like '%binlog%';
⑥查看binlog及位置點
show binary logs; show master status;
⑦刷新binlog日誌
mysqladmin flush logs
⑧截取binlog日誌
mysqlbinlog --start-position=120 --stop-position=339 mysql-bin.000003 >/tmp/inc.sql
⑨使用source恢復
mysql> set sql_log_bin=0; #在當前恢復窗口臨時關閉二進制日誌記錄。
⑩binlog日誌做用
一、記錄更改的二進制SQL語句 二、主從複製 三、增量數據備份
四、二進制日誌管理
二進制日誌的刪除,默認狀況下,不會刪除舊的日誌文件
[mysqld] SET GLOBAL expire_logs_days = 7;#保留7天 PURGE BINARY LOGS BEFORE now() - INTERVAL 3 day; PURGE BINARY LOGS TO 'mysql-bin.000010';#根據文件名刪除日誌:
reset master;#清除binlog日誌
五、慢查詢日誌管理slow-log
①功能
記錄全部條件內的慢SQL語句,優化的一種工具日誌,將mysql服務器中影響數據庫性能的相關SQL語句記錄到日誌文件,經過對這些特殊的SQL語句分析,改進以達到提升數據庫性能的目的
②慢查詢日誌設置
long_query_time #設定慢查詢的閥值,超出次設定值的SQL即被記錄到慢查詢日誌,缺省值爲10s slow_query_log #指定是否開啓慢查詢日誌 slow_query_log_file #指定慢日誌文件存放位置,能夠爲空,系統會給一個缺省的文件host_name-slow.log min_examined_row_limit #查詢檢查返回少於該參數指定行的SQL不被記錄到慢查詢日誌 log_queries_not_using_indexes#不使用索引的慢查詢日誌是否記錄到索引
③開啓數據庫的慢查詢
[mysqld] slow_query_log = ON slow_query_log_file = /usr/local/mysql/data/slow.log long_query_time = 1
④切割慢查詢日誌
cd /data/3306 &&\ /bin/mv show.log slow.log.$(date +%F) &&\ mysqladmin -uroot -p123456 flush-log #零點刷新
⑤慢查詢分析工具
pt-query-digest