結論和意見
首先,要確定得到了一個完整的數據快照。如果忘記拷貝一個表或數據庫將導致備機線程序停止。生成快照的時刻是很關健的。你應該確保在拷貝數據文件之前二進制日志功能是無效的。如果在得到快照之前就允許了二進制日志功能,備機的線程可能會停止,原因就是當線程試圖導入重要的記錄時,可能會由於主鍵重復而停止。最好就是接照第二部分所討論的處理辦法來做:關閉-拷貝-允許二進制日志功能重啟。
你可能想要按照最初的一種方式來配制復制處理,並且在合適的時間關注備機,確保備機與主機保持同步。
我沒有測試過一個使用了復制特性的系統的負載平衡處理性能,但是我會靈活地使用這樣系統來平衡插入和更新。例如,如果在兩台服務器上兩條記錄都給出了同一個auto_increment值,這種情況備機線程會在哪一條記錄上停掉呢?象這樣的問題將會讓負載平衡作為只讀的處理,一台服務器處理所有的插入和更新,同時一組備機(是的,你可以有多個與主機分離的備機)處理所有的選擇。
我非常高興,MySQL已經具備了復制系統的某些功能,並且配置很簡單。使用它,你就可以開始針對失控的事件提供額外的安全措施了。
譯者的話:
由於我原來使用的是3.22版的MySQL,所以為了測試一下我只好下載了3.23.24版的最新程序。而且因為只有一台機器,我只是增加了二進制日志的設置。不過,正如本文所說,的確有文件生成。如果大家對此感興趣只好請自行測試了。另外,在最新的MySQL的使用手冊中,我發現這個復制功能是在3.23.15版以後才有的,請大家檢查自已的MySQL的版本。同時,文中關於二進制日志的設置是說在my.cnf中設置的。在我使用的3.23.24版本中,手冊上說可以有三個文件進行參數設置,分別為windows目錄下的my.ini文件,c:my.cnf和c:mysqldatamy.cnf中可以設置。我在設置"log-bin"時(不需要先設log參數)是使用mysql自帶的WinMySQLadmin軟件進行設置的,並且在my.ini中設定的,與文中不同,請大家自行測試。