測試環境 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
留言
MySQL 5 版有 expire_logs_days 參數來控制 bin 檔保留天數