MySQL記錄檔類型

來源:互聯網
上載者:User

MySQL記錄檔類型

簡介:

MySQL 中提供了多種類型的記錄檔,分別反映 MySQL 的不同資訊,瞭解它們很有必要。

1、Error log ( 錯誤記錄檔 )

錯誤記錄檔記錄了 MySQL Server 運行過程中所有較為嚴重的警告和錯誤資訊,以及 MySQL Server 每次啟動和關閉的詳細資料。

在預設情況下,系統記錄錯誤記錄檔的功能是關閉的( 我所使用的 MySQL 5.6 是開啟的 ),錯誤資訊被輸出到標準錯誤輸出( Stderr )。

需要開啟系統記錄錯誤記錄檔功能時,需要在啟動時開啟 -log-error 選項。錯誤記錄檔預設存放在資料目錄下,以 hostname.err 命令。

可以使用 --log-error=file_name 的方式或在 my.cnf 中指定其存放的位置和檔案名稱。

為了方便維護,可以通過 flush logs 來產生新的記錄檔( 要先將原有的記錄檔 mv 一下 )。

2、Binary log( 二進位日誌 )

二進位日誌,即 binlog 。也是 MySQL Server 中最為重要的日誌之一。

當我們通過 --log-bin=file_name 開啟了二進位日誌功能之後,MySQL 會將所有修改資料庫的 query 以二進位的形式記錄到記錄檔中。

還包括每一條 query 所執行的時間、消耗的資源,以及相關的事務資訊;所以 binlog 是事務安全的。

二進位日誌跟錯誤記錄檔一樣,binlog 記錄功能也需要 --log-bin=file_name 或 my.cnf 中指定來開啟;如果沒有指定 file_name ,會在資料目錄下產生 MySQL-bin.******* 的記錄檔。

MySQL-bin.index 檔案的功能是記錄所有 Binary log 的絕對路徑,保證 MySQL 各種線程能順利根據它找到所需要的 Binary log 檔案。

binlog 相關的其它參數:

--max_binlog_size ## 設定 binlog 的最大儲存上限,當日誌達到該上限時,MySQL 會重建一個新的日誌開始繼續記錄。

 偶爾也會超出該上限,是因為在即將到達上限時,產生了一個較大的事務,為了保證事務安全,MySQL 不會將同一個事務存放到兩個 binlog 中。

--binlog-do-db=db_name ## 僅僅針對該 db_name 記錄 binlog ,而忽略針對其餘資料庫執行的 query 。

--binlog-ignore-db=db_name ## 與上一參數正好相反,忽略針對該資料庫的 query ,記錄其餘所有資料庫的 binlog 。

## 這兩參數指的 db_name 不是指 query 語句更新的資料所在的資料庫,而是執行 query 時所處的資料庫。( 感覺很好理解,說多了容易亂 )

3、Update log( 更新日誌 )

更新日誌是 MySQL 在較老版本上使用的,其功能跟 binlog 類似,只不過不是以二進位格式記錄,而是以簡單文字格式設定記錄內容。

從 MySQL 5.0 開始,MySQL 已經不再支援更新日誌了。

4、Query log( 查詢日誌 )

查詢日誌記錄 MySQL 中所有的 query ,通過 --log=file_name 來開啟該功能。

由於該日誌記錄了所有的 query ,包括所有的 select ,體積比較大,開啟後會對效能有較大的影響,所以一般不開啟。

該日誌一般用於跟蹤某些特殊的 SQL 效能問題才會短暫開啟。預設檔案名稱為 hostname.log ,位置也在資料目錄下。

5、Slow query log ( 慢查詢日誌 )

慢查詢日誌記錄的就是執行時間較長的 query 咯,即 Slow query 。

通過 --log-slow-queries=file_name 開開啟此功能並設定檔案位置和檔案名稱,預設檔案名稱為 hostname-slow.log ,位置同樣在資料目錄下。

慢查詢日誌採用的是簡單文字格式設定,可以通過各種文字編輯器查看其中的內容。

記錄了語句執行的時刻,所消耗的時間、執行的使用者、串連主機等相關資訊。

MySQL 還提供了用於專門分析慢查詢日誌的工具 MySQLslowdump ,用來協助我們瞭解可能存在的效能問題。

6、Innodb redo log ( Innodb 的線上 redo 日誌 )

Innodb 是一個事務安全的儲存引擎,其事務安全性主要就是通過線上 redo 日誌和記錄在資料表空間中的 undo 資訊來保證的。

redo 日誌中記錄了 Innodb 所做的所有物理變更和事務資訊,通過 redo 日誌和 undo 資訊,Innodb 保證了在任何情況下的事務安全性。

Innodb 的 redo 日誌同樣預設在資料目錄下,可以通過 innodb_log_group_home_dir 來更改其存放位置,通過 innodb_log_files_in_group 設定日誌數量。

本文永久更新連結地址:

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.