1、MySQL日誌比較
記錄檔 |
檔案中的資訊 |
作用 |
錯誤記錄檔 |
記錄啟動、運行或停止mysqld時出現的問題。 |
系統故障時定位故障原因 |
查詢日誌 |
記錄建立的用戶端串連和執行的語句。 |
記錄資料庫發生的所有操作 |
二進位日誌 |
記錄所有更改資料的語句。 |
資料庫資料備份和複製 |
慢日誌 |
記錄所有執行時間超過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的查詢Log Service。如果沒有給定file_name的值,預設名是host_name.log。
建議:不要開啟此日誌,以免影響系統整體效能。
清理:同錯誤記錄檔。
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天以前的資料會自動刪除。
其他: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狀態變數顯示了事務中實際上有多少必須使用臨時檔案。)