溫馨提示×

Debian MariaDB日志管理如何操作

小樊
35
2025-08-16 06:31:29
欄目: 云計算

Debian下MariaDB日志管理主要涉及配置、查看、輪轉及監控,操作如下:

一、配置日志類型

通過修改配置文件/etc/mysql/mariadb.conf.d/50-server.cnf設置日志路徑及格式:

  • 錯誤日志:記錄啟動、運行錯誤
    [mysqld]
    log_error = /var/log/mysql/error.log
    
  • 查詢日志:記錄所有SQL語句(默認關閉,避免磁盤占用)
    general_log = 1
    general_log_file = /var/log/mysql/general.log
    log_output = FILE  # 設為FILE存文件,TABLE存數據庫(默認)
    
  • 慢查詢日志:記錄執行時間超過閾值的查詢
    slow_query_log = 1
    slow_query_log_file = /var/log/mysql/slow.log
    long_query_time = 2  # 閾值(秒)
    log_queries_not_using_indexes = 1  # 記錄未使用索引的查詢
    
  • 二進制日志:記錄數據變更,用于主從復制和恢復
    log_bin = /var/log/mysql/mysql-bin.log
    binlog_format = ROW  # 推薦ROW格式(數據更完整)
    expire_logs_days = 7  # 自動過期天數
    

二、查看日志

  • 命令行查看
    # 實時查看錯誤日志
    tail -f /var/log/mysql/error.log
    # 查看慢查詢日志(按執行時間排序)
    mysqldumpslow -s t /var/log/mysql/slow.log
    # 查看二進制日志內容(指定時間范圍)
    mysqlbinlog --start-datetime="2025-01-01 00:00:00" /var/log/mysql/mysql-bin.000001
    
  • 圖形化工具
    使用gnome-system-log(需安裝)或Loggly等工具查看/var/log/mysql/目錄下的日志文件。

三、日志輪轉與清理

  • 自動輪轉(推薦)
    創建/etc/logrotate.d/mariadb文件,內容如下:
    /var/log/mysql/*.log {
        daily
        rotate 7
        compress
        missingok
        notifempty
        create 640 mysql mysql
        postrotate
            mysqladmin flush-logs  # 輪轉后刷新日志
        endscript
    }
    
    執行logrotate -vf /etc/logrotate.d/mariadb測試配置。
  • 手動清理
    刪除超過30天的舊日志:
    find /var/log/mysql/ -type f -name "*.log" -mtime +30 -exec rm {} \;
    

四、監控與分析

  • 實時監控
    使用journalctl查看系統級日志(需MariaDB以systemd服務運行):
    journalctl -u mariadb --since "2025-01-01" --until "2025-01-31"
    
  • 慢查詢分析
    通過pt-query-digest(Percona工具)或mysqldumpslow分析慢查詢日志,定位性能瓶頸。

注意事項

  • 二進制日志建議與數據文件分開放置,避免單點故障。
  • 生產環境中關閉通用日志(general_log=0),僅開啟錯誤日志和慢查詢日志以減少磁盤占用。
  • 配置修改后需重啟MariaDB服務:systemctl restart mariadb。

參考來源:

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女