《MYSQL數(shù)據(jù)庫mysql 雙向同步的鍵值沖突問題的解決方法分享》要點(diǎn):
本文介紹了MYSQL數(shù)據(jù)庫mysql 雙向同步的鍵值沖突問題的解決方法分享,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
出現(xiàn)的問題(多主自增長ID重復(fù))
1:首先我們通過A,B的test表結(jié)構(gòu)
2:掉A,在B上對(duì)數(shù)據(jù)表test(存在自增長ID)執(zhí)行插入操作,返回插入ID為1
3:后停掉B,在A上對(duì)數(shù)據(jù)表test(存在自增長ID)執(zhí)行插入操作,返回的插入ID也是1
4:然后 我們同時(shí)啟動(dòng)A,B,就會(huì)出現(xiàn)主鍵ID重復(fù)
解決方法:
我們只要保證兩臺(tái)服務(wù)器上插入的自增長數(shù)據(jù)不同就可以了
如:A查奇數(shù)ID,B插偶數(shù)ID,當(dāng)然如果服務(wù)器多的話,你可以定義算法,只要不同就可以了
在這里我們?cè)贏,B上加入?yún)?shù),以實(shí)現(xiàn)奇偶插入
A:my.cnf上加入?yún)?shù)
auto_increment_offset = 1
auto_increment_increment = 2
這樣A的auto_increment字段產(chǎn)生的數(shù)值是:1, 3, 5, 7, …等奇數(shù)ID了
B:my.cnf上加入?yún)?shù)
auto_increment_offset = 2
auto_increment_increment = 2
這樣B的auto_increment字段產(chǎn)生的數(shù)值是:2, 4, 6, 8, …等偶數(shù)ID了
可以看出,你的auto_increment字段在不同的服務(wù)器之間絕對(duì)不會(huì)重復(fù),所以Master-Master結(jié)構(gòu)就沒有任何問題了.當(dāng)然,你還可以使用3臺(tái),4臺(tái),或者N臺(tái)服務(wù)器,只要保證auto_increment_increment = N 再設(shè)置一下auto_increment_offset為適當(dāng)?shù)某跏贾稻涂梢粤?那樣,我們的MySQL可以同時(shí)有幾十臺(tái)主服務(wù)器,而不會(huì)出現(xiàn)自增長ID 重復(fù).
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/3318.html