2011-09-07 60 views
2

我已經成功建立了一個主從服務器環境,並且它確實工作正常。mysql複製 - 主從服務器

我唯一的問題是,從表中選擇計數,他們是不一樣的,但從主人5分鐘後選擇,在奴隸創建50行,也創建了50行(這就是爲什麼我說我「M確保工作正常)

站長:

+----------+ 
| COUNT(*) | 
+----------+ 
| 77634 | 
+----------+ 
1 row in set (0.00 sec) 

奴隸:

+----------+ 
| COUNT(*) | 
+----------+ 
| 76932 | 
+----------+ 
1 row in set (0.00 sec) 

任何想法,爲什麼會這樣?是否有可能當我使用'CHANGE MASTER TO'命令將主站更改爲主站時,主站上的二進制日誌文件的位置已經移動了?

+0

您的從站在複製運行前不包含最新的快照 – ajreal

+0

您的意思是說,我沒有使用sqldump的二進制日誌文件的正確位置? – hex4

+0

最有可能的是,當您創建轉儲時,您並未鎖定主寫入。 – ajreal

回答

2

嘗試在從屬服務器上顯示「SLAVE STATUS」,看是否有錯誤發生。

您也可以嘗試從主站加載數據以重新建立同步。

0

MySQL複製不是「可靠」的,如果出錯,它也不能自動重新同步。即使沒有非計劃的重新啓動等,也有許多方法可能會出錯。

您需要主動監控它,以保持它在任何時間段內工作的可能性。

你所需要的,起碼,做兩件事情:

  1. 檢查SHOW SLAVE STATUS的輸出(每個從站),以確保正在運行的線程,不報告的錯誤和的Seconds_Behind_Master不太多了。
  2. 每個主/從定期運行某種一致性檢查的 - 我建議MK-表校驗和與--replication選項

和掛鉤這些檢查的輸出到您的監測系統,使您的操作人員會收到警報。

您的Ops工作人員還需要知道如何解決它(轉儲/恢復,或其他一些修復)。您肯定需要爲Ops編寫一些基於知識的文章。

我之前做過這件事 - 它不是微不足道的,你可以很容易地弄錯。