2012-02-10 60 views
0

我是一名學生,我想在實時複製表A和B表中的條目Mysql的bidirectionnal複製

在數據庫中的

表B中

表A(article_id的,article_content)( ID,文章)在數據庫B

我希望他們一直有相同的條目。 如果表A中有新條目,我希望它實時添加到表B(低延遲),但是我不能馬上做,因爲這些字段不相同。

於是我想到了在每個數據庫

表A中的數據庫中的數據庫B表AB複製數據庫B 表B中複製的兩個表複製表AB在數據庫中的

,然後添加一些觸發器使表AB正確修改表A和表B.

這是一個很好的解決方案嗎?謝謝

+0

我建議修改應用程序之一,所以,他們都寫在同一個表。或者,您可以用其他表格替換其中一個表格。您運行的是哪個MySQL版本,並且都是同一臺服務器上的數據庫?什麼是桌子結構? – nnichols 2012-02-10 11:54:30

+0

mysql 5.0.4 +,並且數據庫不會自動在同一臺服務器上。 – adieuuu 2012-02-10 12:06:27

+0

我認爲你需要進一步解釋你的設置,以獲得最好的建議。複製對我來說聽起來有些過火。什麼是交通水平?什麼是數據庫/表結構?您能否使用聯合表(使用「SHOW ENGINES」查看FEDERATED是否可用)? – nnichols 2012-02-10 12:15:38

回答

0

我建議一個主數據庫寫入,然後設置奴隸克隆主。否則,你將無法管理密鑰/外鍵。

+0

謝謝。我不熟悉複製atm。我編輯的帖子也許現在更容易理解 – adieuuu 2012-02-10 11:25:43

+0

事情是,兩個不同的應用程序寫在表A和B ... – adieuuu 2012-02-10 11:34:01

0

好一個開始,如果表是不同的,這不是複製....

如果你走你提議的路線,牢記觸發器是事務的一部分。

DatabaseA有表A和TableBCopy DatabaseB具有表B和TableACopy

所以表A複製到TableACopy和表B複製到TableBCopy 觸發來自TableBCopy修改表A,它複製到TableACopy觸發一個變化表B,它複製到TableBCopy .... 而 觸發來自TableACopy修改表B,它複製到TableBCopy觸發一個變化表A,其複製到TableACopy ...

了上述聽起來像一個好主意的位?

即使你做得對,並且不會結束遞歸,在實施過程中大聲嗅探,它會以很大的方式下降。

由於@Ian木建議,我認爲....