測試環境 MySQL 5 版以上

記錄錯誤訊息

[mysqld_safe]
log-error=/var/log/mysqld.log

記錄所有執行的 SQL 語法

[mysqld]
log

記錄變動的資訊(insert/update/delete) 供 slave 用

[mysqld]
log-bin=ssorc-bin

記錄查詢超慢是那個 SQL 語法

[mysqld]
log-slow-queries

相關文章參考: http://phorum.study-area.org/index.php/topic,37983.html
網頁打包
酷!學園 – mysql note(補齊binary log).zip

相關文章參考: MySQL 資料庫災難復原 http://forum.slime.com.tw/thread208729.html
網頁打包
SQL – MySQL 資料庫災難復原 – 史萊姆論壇.zip

引用重點

使用 Binary Log 進行災難復原的步驟:
1. 啟用 Binary Log
2. 使用 mysqlbinlog 將 Binary Log 轉換成可執行的 SQL 指令

MySQL 在以下幾種情況會進行 lograrote:
1. 執行 Flush Logs 指令
2. MySQL Server 重新啟動
3. 設定檔中有進行額外的設定

使用 mysqlbinlog 將 Binary Log 轉換成可執行的 SQL 指令
需要加 -H 選項的原因如下:
引用:
mysqlbinlog didn't escape the string content of user variables, and did not deal well when these variables were in non-ASCII character sets; this is now fixed by always printing the string content of user variables in hexadecimal. The character set and collation of the string is now also printed. (Bug #3875)

相關文章參考: MySQL Server 日常維護: Log 分析 http://forum.slime.com.tw/thread208903.html
網頁打包
SQL – MySQL Server 日常維護 Log 分析(mysqlsla) – 史萊姆論壇.zip

引用重點

大致上來說,MySQL 提供三大類的 LOG:
1. Binary Log:記錄所有對於資料庫的修改操作
2. General Log:記錄所有 Client 發送到 Server 的 Query
3. Slow Log:記錄所有的 Slow Query 

請注意,MySQL Server 的 General Log 與 Slow Log 預設不會進行 Logrotate,因此您要記得自己處理這個部份,不然的話只要你的 Server 夠忙錄, General Log 可能會用光你所有的硬碟空間。例如在 Linux 系統中可以在 /etc/logrotate.d 中加上 mysqld 檔案,內容為:

引用:
/var/log/mysqld.log /var/lib/mysql/general-log /var/lib/mysql/slow-log {
missingok
notifempty
sharedscripts
postrotate
/usr/bin/mysqladmin flush-logs
endscript
}

總結設定
vi /etc/my.cnf

[mysqld]
log
log-bin=ssorc-bin
log-slow-queries

[mysqld_safe]
log-error=/var/log/mysqld.log

輪替
vi /etc/logrotate.d/mysqld

/var/log/mysqld.log /var/lib/mysql/ssorc-slow.log /var/lib/mysql/ssorc.log {
    weekly
    rotate 4
    create 0644 mysql mysql
    missingok
    notifempty
    sharedscripts
    postrotate
        # 用來 flush-logs 的帳號需要有 RELOAD 的權限     
        /usr/bin/mysqladmin -u 帳號 -p密碼 flush-logs
    endscript
}

Debug 輪替
logrotate -fv /etc/logrotate.d/mysqld

 

Related posts 相關文章
使用連線控制插件提高 MySQL 安全性
More...
使用驗證插件提高 MySQL 密碼安全性
More...
用 pv 查看 mysql restore 還原資料進度
More...
使用 sysbench 壓力測試 mysql
More...

作者

留言

MySQL 5 版有 expire_logs_days 參數來控制 bin 檔保留天數

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。