MySQL日志筆記

MySQL日志筆記

 

1、MySQL日志比較

日志文件

文件中的信息

作用

錯誤日志

記錄啟動、運行或停止mysqld時出現的問題。

系統故障時定位故障原因

查詢日志

記錄建立的客戶端連接和執行的語句。

記錄數據庫發生的所有操作

二進制日志

記錄所有更改數據的語句。

數據庫數據備份和復制

慢日志  www.aiwalls.com  

記錄所有執行時間超過long_query_time秒的所有查詢或不使用索引的查詢。

定位系統性能問題,查找有性能問題的SQL語句
 

2、錯誤日志

作用:錯誤日志文件包含瞭當mysqld啟動和停止時,以及服務器在運行過程中發生任何嚴重錯誤時的相關信息。

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

清理:如果你執行FLUSHLOGS,錯誤日志用-old重新命名後綴並創建一個新的空日志文件:

shell>mv hostname.err  hostname-old.err

shell>mysqladmin flush-logs

shell>cp hostname-old.errto-backup-directory

shell>rm hostname-old.err
 

3、查詢日志

作用:查詢日志記錄瞭客戶端的所有連接和語句(二進制日志不包括查詢語句。)當你想確切地知道該客戶端發送給mysqld的語句時,該日志可能非常有用。

使用:可以用–log[=file_name]或-l [file_name]選項啟動mysqld的查詢日志服務。如果沒有給定file_name的值,默認名是host_name.log。

建議:不要打開此日志,以免影響系統整體性能。

清理:同錯誤日志。  www.aiwalls.com  

4、慢速查詢日志

        作用:慢查詢日志記錄所有執行時間超過long_query_time秒的SQL語句的日志文件。獲得初使表鎖定的時間不算作執行時間。

        使用:可以用–log-slow-queries[=file_name]選項啟動,如果沒有給出file_name值,默認為host_name-slow.log。如果給出瞭文件名,但不是絕對路徑名,文件則寫入數據目錄。

        查看:使用mysqldumpslow命令獲得日志中顯示的查詢摘要來處理慢查詢日志。

        清理:同錯誤日志。
 

5、二進制日志

作用:二進制日志記錄所有更新瞭數據或者已經潛在更新瞭數據(例如,沒有匹配任何行的一個DELETE)的所有語句。二進制日志的主要目的是在恢復使能夠最大可能地更新數據庫,因為二進制日志包含備份後進行的所有更新,還用於在主復制服務器上記錄所有將發送給從服務器的語句。

使用:可以用–log-bin[=file_name]選項啟動。如果未給出file_name值,默認名為-bin後面所跟的主機名。如果給出瞭文件名,但沒有包含路徑,則文件被寫入數據目錄(DATADIR)。如果你在日志名中提供瞭擴展名(例如,–log-bin=file_name.extension),則擴展名被悄悄除掉並忽略。

清理:執行mysqladminflush-logs然後刪除三天前的所有日志。手動刪除可以使用PURGE MASTER LOGS,該語句還會安全地更新二進制日志索引文件(可以采用日期參數)。自動刪除可以選擇設置–expire_logs_days=day,day天以前的數據會自動刪除。  www.aiwalls.com  
 

其他:mysqld在每個二進制日志名後面添加一個數字擴展名。每次你啟動服務器或刷新日志時該數字則增加。如果當前的日志大小達到max_binlog_size,還會自動創建新的二進制日志。如果你正使用大的事務,二進制日志還會超過max_binlog_size:事務全寫入一個二進制日志中,絕對不要寫入不同的二進制日志中。為瞭能夠知道還使用瞭哪個不同的二進制日志文件,mysqld還創建一個二進制日志索引文件,包含所有使用的二進制日志文件的文件名。默認情況下與二進制日志文件的文件名相同,擴展名為'.index'(可以用–log-bin-index[=file_name]選項更改二進制日志索引文件的文件名)。

對於事務表,由於在執行完COMMIT之前,mysqld將整個事務寫入二進制日志。當處理事務的線程啟動時,它為緩沖查詢分配binlog_cache_size大小的內存。如果語句大於該值,線程則打開臨時文件來保存事務。線程結束後臨時文件被刪除。將binlog_cache_size調節到足夠大的值,可以避免使用臨時文件。(註:Binlog_cache_use狀態變量顯示瞭緩沖區保存語句的事務的數量。Binlog_cache_disk_use狀態變量顯示瞭事務中實際上有多少必須使用臨時文件。)

 

 

作者 xinhanggebuguake

發佈留言