Mysql雙主自增長沖突處理
多主互備和主從復(fù)制有一些區(qū)別,因?yàn)槎嘀髦卸伎梢詫Ψ?wù)器有寫權(quán)限,所以設(shè)計(jì)到自增長重復(fù)問題
出現(xiàn)的問題(多主自增長ID重復(fù))
1:首先我們通過A,B的test表結(jié)構(gòu)
2:掉A,在B上對數(shù)據(jù)表test(存在自增長ID)執(zhí)行插入操作,返回插入ID為1
3:后停掉B,在A上對數(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ù)器多的話,你可以定義算法,只要不同就可以了
在這里我們在A,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ù)器之間絕對不會(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ù)某跏贾稻涂梢粤耍菢樱覀兊腗ySQL可以同時(shí)有幾十臺(tái)主服務(wù)器,而不會(huì)出現(xiàn)自增長ID 重復(fù)。
bitsCN.com聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com