用MySQL內建復制來最佳化可用性(七)

結論和意見
  首先,要確定得到瞭一個完整的數據快照。如果忘記拷貝一個表或數據庫將導致備機線程序停止。生成快照的時刻是很關健的。你應該確保在拷貝數據文件之前二進制日志功能是無效的。如果在得到快照之前就允許瞭二進制日志功能,備機的線程可能會停止,原因就是當線程試圖導入重要的記錄時,可能會由於主鍵重復而停止。最好就是接照第二部分所討論的處理辦法來做:關閉-拷貝-允許二進制日志功能重啟。
  你可能想要按照最初的一種方式來配制復制處理,並且在合適的時間關註備機,確保備機與主機保持同步。
  我沒有測試過一個使用瞭復制特性的系統的負載平衡處理性能,但是我會靈活地使用這樣系統來平衡插入和更新。例如,如果在兩臺服務器上兩條記錄都給出瞭同一個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中設定的,與文中不同,請大傢自行測試。

You May Also Like