程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MYSQL入門知識 >> Mysql 日志文件類型

Mysql 日志文件類型

編輯: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 設置日志數量。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved