MySQL相關(guān)的日志主要有以下幾種: 錯誤日志, 查詢?nèi)罩? 慢查詢?nèi)罩? binlog日志, 中繼日志, 事務(wù)日志
1、錯誤日志
記錄的事件信息:
(1)mysqld啟動和關(guān)閉過程中輸出的事件信息;
(2)mysqld運(yùn)行中產(chǎn)生的錯誤信息;
(3)時間調(diào)度器event scheduler運(yùn)行一個event時產(chǎn)生的日志信息;
(4)在主從復(fù)制架構(gòu)中, 從服務(wù)器上啟動從服務(wù)器線程時產(chǎn)生的信息。
配置參數(shù):
log_error=/data/mysql/mysql3306/logs/error.log
log_warnings=ON|OFF 是否記錄警告信息至錯誤日志文件中
2、查詢?nèi)罩?
開啟general log,可以將所有的SQL語句記錄下來。一般不會開啟該功能,因?yàn)閘og的量會非常龐大。
但個別情況下可能會臨時開啟,用來排查故障。
配置參數(shù):
有3個配置參數(shù),general_log、log_output、general_log_file
(1)日志開關(guān)配置:
general_log=ON|OFF
(2)日志存儲方式:
log_output=FILE|TABLE
log_output='FILE'
表示將日志存入文件, 默認(rèn)值是FILE
log_output='TABLE'
表示將日志存入數(shù)據(jù)庫, 日志信息就會被存入mysql.slow_log表中。
log_output='FILE,TABLE'
mysql支持同時兩種日志存儲方式, 以逗號隔開即可。
(3)日志文件保存位置:
general_log_file=/data/mysql/mysql3306/logs/general.log
建議:
日志記錄到表中要比記錄到文件中,耗費(fèi)更多的系統(tǒng)資源。
因此對于需要啟用慢查日志,建議優(yōu)先記錄到文件。
另外,除了用數(shù)據(jù)庫來收集此日志,也可以采用抓包的方案收集此日志(后續(xù)會有分享)。
3、慢查詢?nèi)罩?/h1>
MySQL的慢查詢?nèi)罩荆脕碛涗浽贛ySQL中響應(yīng)時間超過閥值long_query_time的語句,則會被記錄到慢查詢?nèi)罩局小?/code>
配置參數(shù):
slow_query_log=ON|OFF
是否開啟慢查詢?nèi)罩?
slow_query_log_file=/data/mysql/mysql3306/logs/slow.log
慢查詢?nèi)罩敬鎯β窂? 舊版(5.6以下版本)使用log_slow_queries來配置
long_query_time=0.1
慢查詢閾值, 單位為秒, 可以采用小數(shù)的形式精確到微妙。
log_queries_not_using_indexes=ON|OFF
未使用索引的查詢,也被記錄到慢查詢?nèi)罩局小H绻{(diào)優(yōu),建議開啟此選項(xiàng)。
log_output=FILE|TABLE
日志記錄方式, 同上。
4、binlog日志
記錄修改數(shù)據(jù)或可能引起數(shù)據(jù)改變的SQL語句。用于通過"重放"日志文件中的事件,來生成數(shù)據(jù)副本,恢復(fù)數(shù)據(jù)。
配置參數(shù):
sql_log_bin=ON|OFF
是否記錄二進(jìn)制日志
log_bin=/data/mysql/mysql3306/logs/mysql-bin
binlog文件存儲路徑
binlog_format=STATEMENT|ROW|MIXED
二進(jìn)制日志記錄的格式
5、中繼日志
復(fù)制架構(gòu)中, 從服務(wù)器用于保存從主服務(wù)器的二進(jìn)制日志文件中讀取到的事件, 并保存為的日志文件
配置參數(shù):
relay-log=/data/mysql/mysql3306/logs/relay-bin
6、事務(wù)日志
事務(wù)型存儲引擎自行管理和使用, 事務(wù)日志能將隨機(jī)IO轉(zhuǎn)換為順序IO。
事務(wù)型存儲引擎innodb用于保證事務(wù)特性的日志文件。
redo日志、undo日志
事務(wù)性存儲引擎ACID:
用于保證原子性、一致性、隔離性和持久性。
MySQL的慢查詢?nèi)罩荆脕碛涗浽贛ySQL中響應(yīng)時間超過閥值long_query_time的語句,則會被記錄到慢查詢?nèi)罩局小?/code>
配置參數(shù):
slow_query_log=ON|OFF
是否開啟慢查詢?nèi)罩?
slow_query_log_file=/data/mysql/mysql3306/logs/slow.log
慢查詢?nèi)罩敬鎯β窂? 舊版(5.6以下版本)使用log_slow_queries來配置
long_query_time=0.1
慢查詢閾值, 單位為秒, 可以采用小數(shù)的形式精確到微妙。
log_queries_not_using_indexes=ON|OFF
未使用索引的查詢,也被記錄到慢查詢?nèi)罩局小H绻{(diào)優(yōu),建議開啟此選項(xiàng)。
log_output=FILE|TABLE
日志記錄方式, 同上。
記錄修改數(shù)據(jù)或可能引起數(shù)據(jù)改變的SQL語句。用于通過"重放"日志文件中的事件,來生成數(shù)據(jù)副本,恢復(fù)數(shù)據(jù)。
配置參數(shù):
sql_log_bin=ON|OFF
是否記錄二進(jìn)制日志
log_bin=/data/mysql/mysql3306/logs/mysql-bin
binlog文件存儲路徑
binlog_format=STATEMENT|ROW|MIXED
二進(jìn)制日志記錄的格式
復(fù)制架構(gòu)中, 從服務(wù)器用于保存從主服務(wù)器的二進(jìn)制日志文件中讀取到的事件, 并保存為的日志文件
配置參數(shù):
relay-log=/data/mysql/mysql3306/logs/relay-bin
事務(wù)型存儲引擎自行管理和使用, 事務(wù)日志能將隨機(jī)IO轉(zhuǎn)換為順序IO。
事務(wù)型存儲引擎innodb用于保證事務(wù)特性的日志文件。
redo日志、undo日志
事務(wù)性存儲引擎ACID:
用于保證原子性、一致性、隔離性和持久性。