MySQL日誌管理

 

1 錯誤日誌:

 

記錄內容:包含了當mysqld啓動和停止時,以及服務器在運行過程中發生任何嚴重錯誤時的相關信息文件位置和格式:

可以用--log-error[=file_name]選項來指定mysqld保存錯誤日誌文件的位置。 如果沒有給定file_name值,mysqld使用錯誤日誌名host_name.err 並在數據目錄中寫入日誌文件

 

2 BINLOG

 

記錄內容:二進制日誌包含了所有更新了數據或者已經潛在更新了數據(例如,沒有匹配任何行的一個DELETE)的所有語句。語句以“ 事件” 的形式保存,它描述數據更改文件位置和格式:

當用--log-bin[=file_name]選項啓動時, mysqld寫入包含所有更新數據的SQL命令的日誌文件。如果未給出file_name值, 默認名爲-bin後面所跟的主機名。如果給出了文件名,但沒有包含路徑,則文件被寫入數據目錄

查看binlog內容:

shell> mysqlbinlog log-file

刪除日誌:

RESET MASTER;//刪除所有binlog日誌,新日誌編號從頭開始

PURGE MASTER LOGS TO 'mysql-bin.010';//刪除mysql-bin.010之前所有日誌

PURGE MASTER LOGS BEFORE '2003-04-02 22:46:26';// 刪除2003-04-02 22:46:26之前產生的所有日誌

相關選項:

1. --binlog-do-db=db_name

告訴主服務器,如果當前的數據庫(USE選定的數據庫)db_name,應將更新記錄到二進制日誌中。其它所有沒有明顯指定的數據庫 被忽略

2. --binlog-ignore-db=db_name

告訴主服務器,如果當前的數據庫(USE選定的數據庫)db_name,不應將更新保存到二進制日誌中要想記錄或忽視多個數據庫,使用多個選項,爲每個數據庫指定相應的選項。

3. -innodb-safe-binlog

使用此選項和sync_binlogN(每寫N次日誌同步磁盤)全局變量將使得事務能夠記錄的更加安全

4. 具有SUPER權限的客戶端可以通過SET SQL_LOG_BIN=0語句禁止將自己的語句記入二進制記錄

 3 查詢日誌

 

記錄內容:

記錄了客戶端的所有語句,而二進制日誌不包含只查詢數據的語句文件位置和格式:用--log[=file_name]-l [file_name]選項啓動它。 如果沒有給定file_name的值,默認名是host_name.log

 

 4 慢查詢日誌:

記錄內容:

記錄包含所有執行時間超過long_query_time秒的SQL語句的日誌文件。獲得初使表鎖定的時間不算作執行時間。

文件位置和格式

--log-slow-queries[=file_name]選項啓動它。 如果沒有給出file_name值, 默認爲主機名,後綴爲-slow.log。如果給出了文件名,但不是絕對路徑名,文件則寫入數據目錄。

快速查看:

使用mysqldumpslow命令獲得日誌中顯示的查詢摘要來處理慢查詢日誌,例如:

[zzx@bj37 data]$ mysqldumpslow bj37-slow.log

 

其他選項:

MySQL 5.1,通過--log-slow-admin-statements服務器選項, 你可以請求將慢管理語句,例如OPTIMIZE TABLEANALYZE TABLEALTER TABLE寫入慢查詢日誌

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章