標籤:mysql日誌 錯誤記錄檔 慢查詢日誌 查詢日誌
MySQL日誌:(以下都位全域伺服器變數)
MySQL > show global variables like ‘%log%‘;
MySQL 6類日誌簡單介紹
查詢日誌:預設為關閉(產生大量寫操作) 所有跟查詢相關的語句慢查詢日誌:查詢執行時間長度超過指定時間長度的查詢,即為慢查詢 (包括查詢本身,以及查詢所依賴的資源不被允許[表被鎖定])錯誤記錄檔:跟錯誤資訊相關,以及mysql啟動,關閉,主從複製等資訊二進位日誌:記錄跟修改相關的操作,用來實現複製的憑據(可是實現資料恢複)中繼日誌:從伺服器上的二進位日誌(從主伺服器上複製過來的)交易記錄:將隨機I/O轉換為順序I/O (事務支援復原) (查詢操作首先在innodb_buffer --> 交易記錄 --> 資料檔案) 記錄檔組:至少要存在兩個,實現輪詢(交易記錄所在的硬碟要足夠可靠) 事務如果在資料庫記憶體中,復原操作開銷很小 如果資料庫記憶體空間不夠,事務會存到交易記錄中,復原開銷適中 如果交易記錄也寫滿,則需要同步到資料檔案中,此時復原操作開銷非常大(要刪除資料檔案中的內容) 所以:儘可能使用小事務來替代大事務來提升事務引擎的效能 當一個事務提交後,資料會立即同步到交易記錄中去(順序I/O速度較快) 此時如果系統崩潰,下次重新啟動後,交易記錄會將已經提交的資料同步到資料檔案中去 而將未提交的事務進行復原,使資料恢複到一致性狀態 此過程叫做崩潰性恢複 innodb等支援事務的儲存引擎,支援崩潰性恢複 MyISAM不支援崩潰性恢複 MySQL > show global variables like ‘innodb%‘; ... | innodb_log_group_home_dir ./ | --> 交易記錄儲存位置 ... 相對路徑都是相對於資料目錄
查詢日誌:
log:{ON|oFF}:是否記錄所有語句的日誌資訊於一般查詢記錄檔(general_log)
log_output={TABLE|FILE|NONE}
table和file 可以同時出現,用逗號分隔即可
如果設定log_output為table,表的位置為mysql庫下的generan_log表
MySQL > show tables in mysql like ‘general_log‘; +-------------------------------+ | Tables_in_mysql (general_log) | +-------------------------------+ | general_log | +-------------------------------+ general_log:是否啟用查詢日誌 general_log_file:定義了一般查詢日誌儲存的檔案
MySQL > show global variables like ‘log‘;+---------------+-------+| Variable_name | Value |+---------------+-------+| log | OFF |+---------------+-------+MySQL > show global variables like ‘log_output‘;+---------------+-------+| Variable_name | Value |+---------------+-------+| log_output | FILE |+---------------+-------+MySQL > show global variables like ‘general_log‘;+---------------+-------+| Variable_name | Value |+---------------+-------+| general_log | OFF |+---------------+-------+MySQL > show global variables like ‘general_log_file‘;+------------------+----------------------------+| Variable_name | Value |+------------------+----------------------------+| general_log_file | /var/run/mysqld/mysqld.log |+------------------+----------------------------+
慢查詢日誌
slow_query_log={ON|OFF} (0禁用,1啟用) (全域)
是否啟用慢查詢日誌,它的輸出位置也取決
log_output={table|file|none}
表名及位置:mysql庫下的slow_log表
slow_query_log_file:www-slow.log
定義慢查詢日誌的檔案路名稱徑及
long_query_time : 10.00000 慢查詢的時間
(將某張表鎖定,可進行實驗,不一定成功)
long_slow_filter:不記錄慢查記錄(過濾器)
log_slow_queries:會話變數,每個使用者可以自己管理
log_slow_verbosity:是否記錄詳細的資訊
log_slow_rate_limit:速率
錯誤記錄檔:
伺服器啟動和關閉過程中的資訊;
伺服器運行過程中的錯誤資訊
事件調度器運行一個事件時產生的資訊
在複製架構中的從伺服器上啟動從伺服器線程時產生的資訊
log_error = /path/to/error_log_file
log_warnings = {1|0}
是否記錄警告資訊儲存至錯誤記錄檔中
本文出自 “似水流年” 部落格,請務必保留此出處http://sixijie123.blog.51cto.com/11880770/1884154
MySQL日誌功能詳解(1)