1. 程式人生 > 其它 >MySQL 日誌檔案介紹

MySQL 日誌檔案介紹

MySQL中有以下幾種日誌:

1、error log

錯誤日誌:主要記錄 MySQL 伺服器啟動和停止過程中的資訊、伺服器在執行過程中發生的故障和異常情況等。排查問題的首選檔案。

error log記錄資訊

  • mysql執行過程中的錯誤資訊
  • mysql執行過程中的警告資訊
  • event scheduler執行時所產生的資訊
  • mysql啟動和停止過程中的輸出資訊,未必是錯誤資訊
  • 主從複製結構中,從伺服器IO複製執行緒的啟動資訊
控制error log記錄資訊引數log_warnings
  • log_warnings的值為0,表示不記錄警告資訊。
  • log_warnings的值為1,表示警告資訊一併記錄到錯誤日誌中。
  • log_warnings的值大於1,表示"失敗的連線"的資訊和建立新連線時"拒絕訪問"類的錯誤資訊也會被記錄到錯誤日誌中。

注意:錯誤日誌中記錄的並非全是錯誤資訊,例如 MySQL 如何啟動 InnoDB 的表空間檔案、如何初始化自己的儲存引擎等,這些也記錄在錯誤日誌檔案中。

2、binlog

二進位制日誌:binlog屬於邏輯日誌,記錄了所有的DDL和DML語句(除了資料查詢語句select),以事件形式記錄,還包含語句所執行的消耗的時間,MySQL的二進位制日誌是事務安全型的。有Mixed、Statement、ROW 3種格式、不同格式各有優缺點,主要用於複製和資料任意時間點還原。

Binlog是Mysql sever層維護的一種二進位制日誌,與innodb引擎中的redo/undo log是完全不同的日誌。啟用了binlog的前提下任何引擎都會記錄binlog,可通過mysqlbinlog工具解析binlog日誌。

3、slow query log

慢日誌:記錄所有執行時間超過long_query_time(單位秒)和沒有使用到索引的SQL語句。通過慢查詢日誌,可以查找出哪些執行效率低的查詢語句,以便進行優化。

4、general log

一般通用日誌:記錄所有的客戶端連線資訊和執行過的SQL語句,假如你不知道哪個業務是否有使用,或某個請求來自哪裡,可以把general log 開起來就比較容易查詢。一般臨時開啟此功能,因為log的量會非常龐大。

5、relay log

中繼日誌:主從同步過程中是連線master和slave的核心,從節點產生的轉儲日誌,用於從節點應用恢復。

6、redo log

重做日誌:InnoDB層產生的,記錄物理資料頁修改的資訊。有效減少事務提交刷盤的頻次降低IO壓力。redo log 保證了資料庫的crash-safe能力,因為其屬於物理日誌的特性,恢復速度遠快於邏輯日誌。同時與線上熱備份息息相關。

7、undo log

回滾日誌:記錄資料發生變更前的資訊,在事務的修改記錄之前,會把該記錄的原值(before image)先儲存起來(undo log)再做修改,以便修改過程中出錯能夠恢復原值或者供其他的事務讀取。主要用於回滾(原子性),同時提供多版本併發控制(MVCC)下的快照讀功能。