我有一個奇怪的場景,我似乎無法找到使其工作的最佳方式。MySQL自定義複製
我有一個庫存應用程序存儲在Linode服務器上。這個程序處理不同的公司。每家公司都有自己的數據庫。
所有公司都有多個商店位於不同的位置。 所有商店都需要使用相同的應用程序,同時數據必須同步。
我需要複製數據,但所有商店/應用程序都需要能夠同時寫入/讀取和複製。問題是,他們中的大多數幾個小時都沒有互聯網連接。他們完全脫離了世界(只是局域網)。
傳統的MySQL複製不會起作用,因爲它需要互聯網連接才能保持運行。
我該怎麼做?
有我自己的軟件解決方案,在更高層次上覆制數據是一個好主意嗎?如果是的話,我應該遵循哪些最佳做法?
我也不能使用mysql auto_increment步驟和偏移ID生成,因爲一些客戶不斷打開越來越多的商店。我是否需要爲每個實體生成自己的GUID,以確保ID不會通過在商店唯一標識(STOREID-UNIQUEID)前添加前綴來衝突?
你如何處理重複的ID,併發重寫,衝突,int溢出?它可能會弄亂你的數據庫,並且你最終會得到髒數據。 –
您通過不生成重複項(例如GUID)來處理重複的ID。我不知道併發覆蓋是什麼意思,我假設你的客戶是獨立工作的。 Int溢出可以通過更大的整數(或字符串/二進制)來處理。 – Vatev
如果您爲每個客戶有1000個商店,那麼您將有巨大的差距。併發覆蓋意味着2家商店試圖更新相同的數據。兩家商店都沒有連接到互聯網並進行不同的更改時,就會出現問題。你要怎麼處理真正的變化? –