Mysql 日誌管理
日誌分類
- 錯誤日誌 :啓動,停止,關閉失敗報錯,rpm安裝日誌位置 /var/log/mysqld.log
- 通用查詢日誌:所有的查詢都加下
- 二進制日誌:實現備份,增量備份。只記錄改變數據,除了select。
- 中繼日誌:讀取服務器binlog,在本地回放。保持一致。
- slow log:慢查詢日誌,指導調優,定義某一個查詢語句,定義超時時間,通過日誌提供調優建議給開發人員。
- DDL log:定義語句的日誌
error log (錯誤日誌)
vim /etc/my.cnf
log-error=/var/log 該字段標記是否啓動日誌,以及日誌位置
若哪天mysql服務起不來,就來此查看。
binary log(二進制日誌)
啓動二進制日誌
vim /etc/my.cnf
log_bin 添加該字段指定二進制日誌
server-id=2 集羣問題,須比指定該主機的序號,字數隨意。
測試
查看二進制日誌文檔當前狀態
1.查詢二進制文件生成
ls /var/lib/mysql/^bin*
2.查看二進制文件日誌
mysqlbinlog -v /var/lib/mysql/localhost-bin.000001
進入數據庫進行數據操作
創庫,創表,創數據
完成二進制日誌啓動查詢測試
mysqlbinlog -v /var/lib/mysql/localhost-bin.000001
找到之前創建記錄即可
注意
- 重啓mysqld會截斷bin日誌,產生新的二進制日誌
- flush logs 會截斷日誌
- reset master 刪除所有binlog。等同於rm-rf
- 刪除部分
淨化掉1號日誌文件
PURGE BINARY LOGS TO 'mysql-bin.010'
臨時暫停二進制文件
目的
數據庫還原行爲,避免重複的記錄。
set sql_log_bin=0 禁用二進制日誌
set sql_log_bin=1 恢復二進制日誌
查看binlog日誌
# mysqlbinlog /var/lib/mysql/localhost-bin.000001
slow query log
vim /etv/my.cnf
加入下面三行
1.slow_query_log=1
# 啓動慢查詢日誌 ,這個參數設置爲ON,可以捕獲執行時間超過一定數值的SQL語句。
2.slow_query_log_file
默認日誌文件在/var/lib/mysql*slow*中
如果希望獨立存儲日誌文件,可跟上日誌文件:
slow_query_log_file=/var/log/mysql-slow/slow.log
# mkdir /var/log/mysql-slow/
# chown mysql.mysql /var/log/mysql-slow/
# systemctl restart mysqld
3.long_query_time=3
當sql語句執行時間超過此數值時,就會被記錄到日誌中,建議設置爲1或更短。
ll /var/lib/mysql/*slow* 查看日誌文件已生成