iT邦幫忙

0

有關資料庫備份是否會影響到伺服器運作

今天和公司同事討論到
如果我用一般坊間所寫的資料庫管理工具直接作兩個資料庫互為備份的話
我同事說這樣影響伺服器運作
可能會容易造成故障
建議要我寫一個應用程式用逐筆過去澇資料過來做備份會比較好

這樣真的會比較對伺服器減輕負擔嗎??

看更多先前的討論...收起先前的討論...
cair03019816提到:
這樣真的會比較對伺服器減輕負擔嗎??


不會
bizpro iT邦大師 1 級 ‧ 2011-05-02 10:56:42 檢舉
+1
嗯,那我了解嚕,謝謝喔,但是如果可以針對逐筆新增的資料作備份的話,這樣或許會比較好一點吧。
你打算
針對逐筆新增的資料作備份
即A資料表增加一筆,B資料表就跟著增加一筆?

那麼
A資料表刪掉一筆,B資料表是否要跟著刪掉那一筆?
A資料表修改一筆,B資料表是否要跟著修改那一筆?

以上只是舉例
如果你真的很完整地考慮到所有資料庫備份該考慮到的事項的話
那麼你寫出來的東西
就是你所謂的
cair03019816提到:
資料庫管理工具直接作兩個資料庫互為備份的話

2 個回答

14
bizpro
iT邦大師 1 級 ‧ 2011-05-01 09:37:02
最佳解答

通常資料庫同步(您所說的備份?)是透過log transfer, 是在檔案層次, 對主伺服器效能的影響很小, 對從伺服器的影響也只是正常的寫入. 如果要寫程式來撈, 要去做昂貴的SQL Queries和writes, 也要去寫兩邊資料庫的同步邏輯(是否已同步, 失敗處理,...etc.), 要處理好thread, 也要處理好nonblocking IO,...等等, 到頭來是要自己寫一套"坊間的資料庫管理工具"嗎? 如果只是簡單的, 自己看得懂的"管理工具", 維護的成本很高的, 如果人員離職了, 誰還能維護?

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

因為我上面的主官是要我寫這樣的應用程式,也就是說我要從伺服器A的資料庫如果有產生新的資料,那我就逐筆新增備份到伺服器B的資料庫去,這樣會比我現在家裡在用的資料庫管理工具還要方便嗎?因為我現在家裡用的只可以做到單一整個資料表備份,無法做到單一筆資料備份寫入。

bizpro iT邦大師 1 級 ‧ 2011-05-02 10:55:58 檢舉

請問是哪一種資料庫?

我是用MYSQL

bizpro iT邦大師 1 級 ‧ 2011-05-03 10:42:58 檢舉

哪一版呢? MySQL有同步的功能啊, 何必閉門造車?

bizpro iT邦大師 1 級 ‧ 2011-05-03 16:11:30 檢舉

cair03019816提到:
因為我現在家裡用的只可以做到單一整個資料表備份,無法做到單一筆資料備份寫入。

資料庫系統在寫入資料時, 會先寫入log中, 再寫入到資料庫檔案中, 每一個statement都會在log中, 這個log不是一般的事件紀錄log, 因此, 資料庫同步系統利用這個機制, 將log轉移到(transfer)另一部資料庫系統中, 進行statement動作. 當然, 不是每一個statement會即時同步(synchronized), 有些是異時同步(asynchronized), 要看實際需求的設定, 可以盡量縮短同步的時間差, 或者在Linux系統中, 用DRBD做block level的實時同步(我是這樣做的), 至於您說要做到單一資料寫入, 您也可以在應用程式層次來做, 或是用trigger, 有各種方法, 但是, 當市場上有不貴或免費的同步機制, 何必要自己寫?

4
liurambo0911
iT邦高手 1 級 ‧ 2011-05-02 08:59:42

我們公司是用DOUBLE TAKE來備份
就我個人的感覺...備份功能很好 能夠作到完整備份 但是效能...
因為這種不是硬體層備份 所以每天就要看互搶CPU
結果只是慢上加慢 但是至少是能保證備份的到

那請問一下有那一種備份軟體可以只針對新增的資料作備份就好嚕

其實也不能這樣講

天天只有坐差異備份 雖然快但有問題就會非常及手
可以的話 最好還是做完整備份
但問題就是在於執行的時間點以及所佔用資原

我要發表回答

立即登入回答