標籤:mysql
一、設定檔分類與參數
錯誤記錄檔
資料庫啟停過程中錯誤,運行過程中的異常。
儲存方式: 檔案
啟用方式:無需使用切換參數啟用,預設開啟
相關參數
檔案位置參數log_error,如果不指定值預設在DATADIR目錄下,名稱為host_name.error。
2.二進位(bin)日誌
所有DDL和DML但不包含查詢語句。
儲存方式: 檔案
啟用方式:需要設定檔中設定切換參數啟用,預設關閉(OFF)
檔案位置參數log_bin,如果不指定名稱,名稱為host_name-bin.NUM;如果只指定名稱,以指定名稱。均預設放到DATADIR目錄下。
相關參數
binlog_format=STATEMENT/ROW/MIXED,日誌格式控制,預設自動開啟。
expire_logs_days=N,日誌儲存周期,預設為0,無限制。
也可使用命令刪除SQL命令列RESET MASTER 或 PERGE MASTER LOGS
讀取命令
mysqlbinlog
使用情境:高可用主從複製、資料庫恢複時使用
3.查詢日誌
全部SQL語句包含select。
儲存方式: 檔案 或 表(general_log)
要永久生效,需要設定檔中設定切換參數啟用,預設關閉(OFF)
檔案位置參數general_log,參數已經顯示設定設定為 1 或不設定均表示啟用,設定為0 表示禁用。
相關參數
general_log_file,如果未指定值,或者未顯示設定log_output的值,預設放到DATADIR目錄下hostname.log
4.慢查詢日誌
全部超過參數long_query_time且掃描記錄數不小於long_query_time的SQL語句,管理語句和不適用索引的select不記錄。
儲存方式: 檔案 ,記錄檔中可以精確到微妙 或 表(slow_log),表中記錄只能精確到秒。
啟用方式:要永久生效,需要設定檔中設定切換參數啟用,預設關閉(OFF)
檔案位置參數slow_query_log,參數已經顯示設定,值設定為 1 或不設定均表示啟用,設定為0 表示禁用。
相關參數
slow_query_log_file ,如果未指定值,預設hostname-slow.log放到DATADIR目錄下
log_output = file,table,可以指定其一或全部選擇;
相關工具
msqldumpslow 對慢日誌進行分類,建議正常情況下開啟設定,並經常查看。
使用情境:SQL最佳化,伺服器效能診斷。
5.第三方日誌工具
慢查詢日誌、查詢日誌、二進位日誌、使用者自訂類型日誌查看工具
mysqlsla
二、設定檔舉例
[[email protected] mysql]# pwd
/opt/mysql
[[email protected] mysql]# vi my.cnf
# Start of my.cnf file
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
####### log setting ########
### bin log ###
log-bin
binlog_format = STATEMENT
expire_logs_days = 7
### slow log ###
slow_query_log = 1
log_output = file
# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# socket = .....
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# End of my.cnf file
三、驗證配置
1.二進位日誌
mysql> show variables like "log_bin";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | ON |
+---------------+-------+
1 row in set (0.00 sec)
mysql> show variables like "binlog_format%";
+---------------+-----------+
| Variable_name | Value |
+---------------+-----------+
| binlog_format | STATEMENT |
+---------------+-----------+
1 row in set (0.00 sec)
mysql> show variables like "expire_logs_days";
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| expire_logs_days | 7 |
+------------------+-------+
1 row in set (0.00 sec)
2.慢查詢日誌
mysql> show variables like "slow_query_log%";
+---------------------+--------------------------------+
| Variable_name | Value |
+---------------------+--------------------------------+
| slow_query_log | ON |
| slow_query_log_file | /opt/mysql/data/mdb01-slow.log |
+---------------------+--------------------------------+
2 rows in set (0.00 sec)
mysql> show variables like "log_output%";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_output | FILE |
+---------------+-------+
1 row in set (0.01 sec)
mysql>
本文出自 “yiyi” 部落格,請務必保留此出處http://heyiyi.blog.51cto.com/205455/1638585
深入淺出MySQL開發最佳化和管理維護學習筆記之MySQL記錄檔