Mysql 日誌管理

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* 查看日誌文件已生成
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章