MySQL性能調優與架構設計--mysql日誌文件

一、錯誤日誌:Error Log
錯誤日誌記錄了MyQL Server 運行過程當中全部較爲嚴重的警告和錯誤信息,以及MySQL Server 每次啓動和關閉的詳細信息。在默認狀況下,系統記錄錯誤日誌的功能是關閉的, 錯誤信息被輸出到標準錯誤輸出(stderr),若是要開啓系統記錄錯誤日誌的功能,須要在 啓動時開啓-log-error 選項。錯誤日誌的默認存放位置在數據目錄下,hostname.err 命 名。可是可使用命令:--log-error[=file_name],修改其存放目錄和文件名。 爲了方便維護須要,有時候會但願將錯誤日誌中的內容作備份並從新開始記錄,這時候 就能夠利用MySQL 的FLUSH LOGS 命令來告訴MySQL 備份舊日誌文件並生成新的日誌文件。 備份文件名以「.old」結尾。
二、二進制日誌:Binary Log & Binary Log Index
二進制日誌,也就是咱們常說的binlog,也是MySQL Server 中最爲重要的日誌之一。 當咱們經過「--login[=file_name]」打開了記錄的功能以後, MySQL 會將全部修改數據 庫數據的query 以二進制形式記錄到日誌文件中 。固然,日誌中並不只限於query 語句這麼 簡單,還包括每一條query 所執行的時間,所消耗的資源,以及相關的事務信息,因此binlog 是事務安全的。 和錯誤日誌同樣,binlog 記錄功能一樣須要「--log-bin[=file_name]」參數的顯式指 定才能開啓,若是未指定file_name,則會在數據目錄下記錄爲mysql-bin.******(*表明0~ 9 之間的某一個數字,來表示該日誌的序號)。 binlog 還有其餘一些附加選項參數: 「--max_binlog_size」設置binlog 的最大存儲上限,當日志達到該上限時,MySQL 會 從新建立一個日誌開始繼續記錄。不過偶爾也有超出該設置的binlog 產生,通常都是由於 在即將達到上限時,產生了一個較大的事務,爲了保證事務安全,MySQL 不會將同一個事務
分開記錄到兩個binlog 中。 「--binlog-do-db=db_name」參數明確告訴MySQL,須要對某個(db_name)數據庫記 錄binlog,若是有了「--binlog-do-db=db_name」參數的顯式指定,MySQL 會忽略針對其餘 數據庫執行的query,而僅僅記錄針對指定數據庫執行的query。 「--binlog-ignore-db=db_name」與「--binlog-do-db=db_name」徹底相反,它顯式指 定忽略某個(db_name)數據庫的binlog 記錄,當指定了這個參數以後,MySQL 會記錄指定 數據庫之外全部的數據庫的binlog。 「--binlog-ignore-db=db_name」與「--binlog-do-db=db_name」兩個參數有一個共同 的概念須要你們理解清楚,參數中的db_name 不是指query 語句更新的數據所在的數據庫, 而是執行query 的時候當前所處的數據庫。不論更新哪一個數據庫的數據,MySQL 僅僅比較當 前鏈接所處的數據庫(經過use db_name 切換後所在的數據庫)與參數設置的數據庫名,而 不會分析query 語句所更新數據所在的數據庫。 mysql-bin.index 文件(binary log index)的功能是記錄全部Binary Log 的絕對路 徑,保證MySQL 各類線程可以順利的根據它找到全部須要的Binary Log 文件。
三、更新日誌:update log
更新日誌是MySQL 在較老的版本上使用的,其功能和binlog 基本相似,只不過不是以 二進制格式來記錄而是以簡單的文本格式記錄內容。自從MySQL 增長了binlog 功能以後, 就不多使用更新日誌了。從版本5.0 開始,MySQL 已經再也不支持更新日誌了。
四、查詢日誌:query log
查詢日誌記錄MySQL 中全部的query,經過「--log[=fina_name]」來打開該功能。由 於記錄了全部的query,包括全部的select,體積比較大,開啓後對性能也有較大的影響, 因此請你們慎用該功能。通常只用於跟蹤某些特殊的sql 性能問題纔會短暫打開該功能。默 認的查詢日誌文件名爲hostname.log。
五、慢查詢日誌:slow query log
顧名思義,慢查詢日誌中記錄的是執行時間較長的query,也就是咱們常說的slow query,經過設--log-slow-queries[=file_name]來打開該功能並設置記錄位置和文件名, 默認文件名爲hostname-slow.log,默認目錄也是數據目錄。
慢查詢日誌採用的是簡單的文本格式,能夠經過各類文本編輯器查看其中的內容。其中 記錄了語句執行的時刻,執行所消耗的時間,執行用戶,鏈接主機等相關信息。MySQL 還提 供了專門用來分析滿查詢日誌的工具程序mysqlslowdump,用來幫助數據庫管理人員解決可 能存在的性能問題。
六、Innodb 的在線redo 日誌:innodb redo log
Innodb 是一個事務安全的存儲引擎,其事務安全性主要就是經過在線redo 日誌和記錄 在表空間中的undo 信息來保證的。redo 日誌中記錄了Innodb 所作的全部物理變動和事務 信息,經過redo 日誌和undo 信息,Innodb 保證了在任何狀況下的事務安全性。Innodb 的redo 日誌一樣默認存放在數據目錄下,能夠經過innodb_log_group_home_dir 來更改設置日誌的 存放位置,經過innodb_log_files_in_group 設置日誌的數量。
相關文章
相關標籤/搜索