使用例大概是這樣:
有一個主機裡放了TCP Server接收一些設備傳來的資料,資料庫在遠端的MySQL空間裡,有另一個不同空間的網頁程式會取用此遠端資料庫
一些設備 <--> TCP Server <--> 遠端MySQL空間 <--> 網頁程式
TCP Server直接操作遠端資料庫的話,有點擔心不穩定而漏資料,目前的想法是資料來了先收在local的資料庫,然後定時複製新增的部份到遠端
我負責的是TCP Server相關的部份
資料庫部份希望的操作是定時將新增的資料複製到遠端資料庫,但又不是同步,因為複製過去後網頁端要刪要改就就與我無關了
想請教一下有沒有現成的工具可以做這事?沒有的話就是自己動手弄個小程式來定時複製了
僅複製【新增部份】反而麻煩,萬一將來有修改欄位結構或新增表格時,還要再修改程式。
還不如定時將整個資料庫 export -> import 來得簡單。
直接用 mysql 指令+cron , 就解決了。
mysql -h From_Server -u xxx -pxxx -D xxx > yyy.sql
mysql -h To_Server -u xxx -pxxx -D xxx < yyy.sql
(我就有這麼做!比較簡單)
整個export,所以您是匯出完後就刪表重來嗎?
不然資料表的大小可能會很可怕…
且export的期間又不知道多少筆資料進來了,要只刪匯出過的部份又要花不少功夫
凡是有利有弊,沒有十全十美的方案,但我考慮的是【省時省力】,這二行指令搞定一切,又安全可靠,不會漏失資料。
>且export的期間又不知道多少筆資料進來了
既然是用【定時】,本來兩端資料就會有一段時間不一致,又何必考慮這點?如果考慮這個,就不應該用定時的方式了。
===========================
不過,您又提到【因為複製過去後網頁端要刪要改就就與我無關了】,若是如此,我的方案就不可行,但您的工作可就複雜數十倍,因為您要判斷新增了若干筆?又,複製過去的資料,有成功嗎?有漏失嗎?還得再判斷,萬一本端新增了100筆,彼端因為什麼緣故,只收到99筆,那您還得後續補傳,麻煩死了。