我有兩個Ubuntu的服務器,並安裝了MySQL 4.0,服務器A和服務器B我如何可以同步具有相同結構的兩個MySQL表和不同的服務器
我想服務器A的MySQL表同步到服務器B(複製ServerATable到ServerBTable,保持ServerATable和ServerBTable等於)
該怎麼辦?
(shell腳本或Java或Linux MySQL的工具)
謝謝:)
我有兩個Ubuntu的服務器,並安裝了MySQL 4.0,服務器A和服務器B我如何可以同步具有相同結構的兩個MySQL表和不同的服務器
我想服務器A的MySQL表同步到服務器B(複製ServerATable到ServerBTable,保持ServerATable和ServerBTable等於)
該怎麼辦?
(shell腳本或Java或Linux MySQL的工具)
謝謝:)
有幾個選項。一種方法是在MySQL中設置replication,它將自動在服務器之間來回複製數據並自動同步數據,並且數據在數據周圍飛行時的粒度爲幾秒。缺點是您必須至少將主服務器公開到網絡以允許TCP連接。
外部你可以在服務器A上執行常規的mysqldumps,拷貝到服務器B,加載到mysql中,然後離開你。這將有你運行轉儲/複製/加載序列的時間間隔的粒度。下面是mysqldump鎖定表,因爲它正在工作。如果您有一個大型數據庫,則在轉儲過程中您將被鎖定在serverA的表之外,並且在加載數據時鎖定在serverB之外。加載轉儲比首先執行轉儲要慢得多,因爲mysql在加載期間會執行各種內部管理(關鍵更新,表元數據更新等)。
對於第三個選項,您可以編寫一個同步器,用於比較兩個數據庫之間的行,並根據需要進行更新。然而,那麼你將一臺服務器的內容翻到另一臺服務器上並進行逐行操作。此外,還必須處理任何相關的外鍵/子關係更新,這會變得很匆忙。那時你可能會更好地使用mysqldump選項。
當然,你應該升級你的MySQL到更現代的東西。 v4.x非常過時。您應該至少運行5.0版本,最好是5.1版本。