--skip-slave-start的重要性

wenaini發表於2009-02-02
一次問題解決過程[@more@]

原來做複製的主機因為資料丟失需要重新建立複製環境,機器上已經有了主庫數天前的備份,於是刪除資料目錄直接把備份放上去,結果發現複製沒有抱錯,show slave status一切正常,select count(*)某張大表也是不斷增加,但是查詢該表的max id確遲遲不動。

於是把這條最大的資料拿出來看,發現資料是今天的。而slave的同步資訊顯示才讀取到2天前的binlog而已。

這臺機器既做slave又做master,設定了

log-bin
log-slave-updates

環境比較複雜,一開始猜想是不是環境設定問題造成的,但是檢查回來沒啥問題,再仔細想想。猜到問題原因,問了下,果然是沒有刪除master.info造成的,因為預設Mysql的slave會隨資料庫啟動而啟動,因此mysql就直接從當前位置開始讀取,造成讀取了幾條今天的資料,而後因為change master把複製的資訊重置了,因此光從max id看就是沒有變化而資料卻在實際增加,等到了這幾條資料就會報1062違反重複的錯誤。所以為了安全期間,複製環境的資料庫還是設定--skip-slave-start引數,防止複製隨著mysql啟動而自動啟動。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/79686/viewspace-1016599/,如需轉載,請註明出處,否則將追究法律責任。

相關文章