mysql 雙向同步的鍵值沖突問題的解決方法分享
更新時間:2011年09月26日 14:31:09 作者:
多主互備和主從復制有一些區(qū)別,因為多主中都可以對服務器有寫權限,所以設計到自增長重復問題
出現(xiàn)的問題(多主自增長ID重復)
1:首先我們通過A,B的test表結(jié)構
2:掉A,在B上對數(shù)據(jù)表test(存在自增長ID)執(zhí)行插入操作,返回插入ID為1
3:后停掉B,在A上對數(shù)據(jù)表test(存在自增長ID)執(zhí)行插入操作,返回的插入ID也是1
4:然后 我們同時啟動A,B,就會出現(xiàn)主鍵ID重復
解決方法:
我們只要保證兩臺服務器上插入的自增長數(shù)據(jù)不同就可以了
如:A查奇數(shù)ID,B插偶數(shù)ID,當然如果服務器多的話,你可以定義算法,只要不同就可以了
在這里我們在A,B上加入?yún)?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字段在不同的服務器之間絕對不會重復,所以Master-Master結(jié)構就沒有任何問題了。當然,你還可以使用3臺,4臺,或者N臺服務器,只要保證auto_increment_increment = N 再設置一下auto_increment_offset為適當?shù)某跏贾稻涂梢粤耍菢?,我們的MySQL可以同時有幾十臺主服務器,而不會出現(xiàn)自增長ID 重復。
1:首先我們通過A,B的test表結(jié)構
2:掉A,在B上對數(shù)據(jù)表test(存在自增長ID)執(zhí)行插入操作,返回插入ID為1
3:后停掉B,在A上對數(shù)據(jù)表test(存在自增長ID)執(zhí)行插入操作,返回的插入ID也是1
4:然后 我們同時啟動A,B,就會出現(xiàn)主鍵ID重復
解決方法:
我們只要保證兩臺服務器上插入的自增長數(shù)據(jù)不同就可以了
如:A查奇數(shù)ID,B插偶數(shù)ID,當然如果服務器多的話,你可以定義算法,只要不同就可以了
在這里我們在A,B上加入?yún)?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字段在不同的服務器之間絕對不會重復,所以Master-Master結(jié)構就沒有任何問題了。當然,你還可以使用3臺,4臺,或者N臺服務器,只要保證auto_increment_increment = N 再設置一下auto_increment_offset為適當?shù)某跏贾稻涂梢粤耍菢?,我們的MySQL可以同時有幾十臺主服務器,而不會出現(xiàn)自增長ID 重復。
相關文章
MySQL性能優(yōu)化 出題業(yè)務SQL優(yōu)化
根據(jù)用戶的作答結(jié)果出練習卷,題目的優(yōu)先級為:未做過的題目>只做錯的題目>做錯又做對的題目>只做對的題目。2010-08-08
Druid數(shù)據(jù)庫連接池的jar包的使用方式
這篇文章主要介紹了Druid數(shù)據(jù)庫連接池的jar包的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-04-04
一文帶你玩轉(zhuǎn)MySQL獲取時間和格式轉(zhuǎn)換各類操作方法詳解
最近在開發(fā)中常常使用時間的轉(zhuǎn)換函數(shù),所以一直都想整理一下這些函數(shù),下面這篇文章主要給大家介紹了關于MySQL獲取時間和格式轉(zhuǎn)換各類操作方法的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-08-08

