酷!學園
2010-09-03 13:15 *
歡迎光臨, 訪客. 請先 登入註冊一個帳號.
您忘了 啟用您的帳號嗎?

請輸入帳號, 密碼以及預計登入時間
新聞:
 
   首頁 | Study-Area | 鳥園 | 鳥哥的Linux私房菜   說明 搜尋 日曆 登入 註冊  
頁: [1]
  列印  
作者 主題: mysql note(補齊binary log)  (閱讀 4114 次)
0 會員 以及 1 訪客 正在閱讀本篇主題.
xyzqb
可愛的小學生
*
文章: 7


檢視個人資料
« 於: 2006-03-26 23:28 »

mysql 5.0
四種LOG
預設放於mysqld的data目錄下

1.error log
  包含啟動停止和警急錯誤訊息
  log-error參數指定檔案名稱,如果沒指定預設採用系統名稱=>host_name.err
  如果有指定參數,下flush logs後會將原本檔案更改為old,並建立新的error log擋,沒指定參數則無變化
  log_warnings指定此參數會紀錄相關連線問題的訊息(Aborted connections Aborted_clients)

2.general query log
  包含client connect和disconnect 的訊息,client送來(送來並不一定會執行)的SQL 語法
  log參數指定檔案名稱(不指定採用預設名稱),flush logs對其無影響
  預設log參數不啟動(沒有general query log)

3.binary log
  包含所有可能(可能的意思是有些語法看上去是有改資料,實際上卻沒有,例如下DELETE但條件卻沒有符合)修改資料的SQL語法
  其紀錄是以EVENTS方式儲存(使用mysqlbinlog工具列出內容)請參考  http://dev.mysql.com/doc/internals/en/replication-binary-log.html
  binary log 的主要用途在於restore和replication
  預設log-bin參數不啟動(但mysql內附的參考組態檔有些有設定此參數,所以可能有)
  log-bin參數後可命名檔案名稱,如不指定採用預設,實際產生的檔案名稱格式為 參數指定名稱-bin.XXX (XXX是數字)
  binary log每切換一次XXX數字會加一 例: abc-bin.001 -> abc-bin.002 (啟動或下flush logs會產生切換,還有目前使用的LOG大小超過參數max_binlog_size也會)
  mysql會產生一個檔案紀錄binary log file的使用,可由參數log-bin-index指定名稱,不指定採預設 例:abc-bin.index 內容為
./abc-bin.001
./abc-bin.002
./abc-bin.003
  有兩個語法會影響binary log(RESET MASTER和PURGE MASTER LOGS)請參考 http://dev.mysql.com/doc/refman/5.0/en/reset.html http://dev.mysql.com/doc/refman/5.0/en/replication-master-sql.html
  具有SUPER privilege的CLIENT可下SET SQL_LOG_BIN=0可暫時停止目前SESSION的binary log功能
  何時紀錄binary log
    (1)non-transactional
       語法執行完畢但lock還沒釋放時
    (2)transactional
       一收到交易在還沒COMMIT之前會配置一個buffer(大小由參數binlog_cache_size指定),並將binary log要記錄的內容放在BUFFER內,直到收到COMMIT才寫入binary log
       如果要紀錄內容大於buffer,則會使用暫存檔(硬碟),但如果所有BUFFER(一個交易一個)總和超過參數max_binlog_cache_size(預設4G),則超過的部份會失敗並rolls back
       根據下列狀態變數可用來調整binlog_cache_size
       Binlog_cache_use : 使用buffer的次數
       Binlog_cache_disk_use : 使用暫存檔的次數
  mysql5.0的binary log格式和以前版本不同(5.0.0/5.0.3/5.0.4三次變動),會影響到不同版本的replication
  預設binary log不會同步至DISK(file system cache的關係),參數sync_binlog(4.1以上版本)指定在寫入N次到binary log後就同步至DISK
  mysql5.0.1版參數innodb-safe-binlog能夠保證innodb table和binary log內容的一致性(sync_binlog=1和innodb-safe-binlog)
    ps:關於innodb-safe-binlog有一句(Note: --innodb-safe-binlog is unneeded as of MySQL 5.0; it was made obsolete by the introduction of XA transaction support.)
       XA是在5.0.3版支援,應用於Distributed Transaction Processing請參考 http://docs.openlinksw.com/mt/xamt.html
       
4.slow log
  包含執行時間超過long_query_time秒數的sql語法(執行時間不包含initial table lock的時間)
  log-queries-not-using-indexes有指定,則會紀錄沒使用INDEX的SQL語法
  log-slow-admin-statements有指定,則會紀錄administrative statements(OPTIMIZE ANALYZE ALTER)
  預設log-slow-queries參數不啟動
  mysqldumpslow程式能夠分析slow log
已記錄
頁: [1]
  列印  
 
前往:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006, Simple Machines LLC Valid XHTML 1.0! Valid CSS!
本頁花了 0.062 秒,以及 15 次的資料庫查詢。