iT邦幫忙

0

如何在不同主機讓同一個SQLite資料庫裡的資料可以做同步

各位先進好:

小妹目前在工作上遇到一個問題想問問看各位先進是否有遇到過類似的問題。
2台主機都是同一網域
當A主機的資料庫有被異動,B主機有何方式可以知道A主機資料庫已異動。此2台主機的資料庫是同一個

阿偉 iT邦新手 2 級 ‧ 2020-09-30 09:19:52 檢舉
在A主機資料庫,想要偵測的資料表內做一個Trigger,就好了,輕鬆秒殺
做dblink後
A主機table資料有變化時,update B主機Table
1
dscwferp
iT邦高手 1 級 ‧ 2020-09-29 23:40:11

利用最紅的 API 來做啊!
兩邊都寫個API 來互相呼叫
A API <--> B API
那邊資料有異動 就 呼叫另一邊的API 讓另一邊知道要去處理

happyli iT邦新手 5 級 ‧ 2020-09-30 07:15:54 檢舉

我是第一次寫,所以不太知道API要如何寫

dscwferp iT邦高手 1 級 ‧ 2020-09-30 09:00:18 檢舉

寫 API 也是寫程式
用啥語言都可以寫
依您現在狀況
用跟 A B 一樣語言 來寫更好!
規劃好 A B 之前要如何溝通
才能達成->"當A主機的資料庫有被異動,A主機就通知B主機資料庫已異動"
這樣的兩邊程式(A邊+B邊) 就是 A B 之間的API了!

0
海綿寶寶
iT邦大神 1 級 ‧ 2020-09-30 06:50:51

SQLite ? 只有一個檔案的 SQLite ?

由於 SQLite 不支援 replication
要同步的方法請參考Stackoverflow 討論

另外,點這裡是我這次鐵人賽唯一的一篇文章,喜歡的話左上角點 Like

happyli iT邦新手 5 級 ‧ 2020-09-30 07:13:37 檢舉

了解,謝謝您!

1
japhenchen
iT邦大師 1 級 ‧ 2020-09-30 07:19:37

用 ?SYNC來做資料同步,恐會發生邊際效應

某甲正在更動a伺服器資料庫的某一筆記錄x,但還沒儲存,某乙也在更動b上的同一筆記錄資料x

一旦發生a跟b不同時但差不多時間更動,如a發生更動但主機尚未同步前,b也發生寫入,之後不久發生a向b同步的動作

那,是甲的資料被被留?還是乙的被覆寫?這很危險,如果x是流水號欄位,這情況一定發生重號

如果不辭勞苦,還是用Trigger來應變這個需求吧

4
一級屠豬士
iT邦大師 1 級 ‧ 2020-09-30 08:16:27

當A主機的資料庫有被異動,B主機有何方式可以知道A主機資料庫已異動。此2台主機的資料庫是同一個

既然都同一個 , 還有什麼同步問題????

看更多先前的回應...收起先前的回應...

敢情是同一「種」之誤
/images/emoticon/emoticon16.gif

汗,沒有replication而採取被動同步,總會有兩地都有進行CUD的動作的可能發生吧?

架構應該單純化,先把 目的 跟 手段 釐清.

尼克 iT邦高手 1 級 ‧ 2020-09-30 10:22:41 檢舉

此2台主機的資料庫是同一個
關鍵字!/images/emoticon/emoticon01.gif

Homura iT邦高手 1 級 ‧ 2020-09-30 13:13:23 檢舉

大大突破盲點/images/emoticon/emoticon07.gif

既然是同一個,那又為何要同步?

happyli iT邦新手 5 級 ‧ 2020-10-05 20:51:07 檢舉

因為一台是備用機,平時只有一台在執行

我要發表回答

立即登入回答