oracle數據同步

資料庫同步就是將數據從源資料庫的變化數據在儘可能短的時間內複製到目的資料庫。

概念

同步的數據傳輸的特點有 :

1) 同步講究數據傳輸的時效性, 要求對於數據的變化要快速反應。

2) 同步的數據通常是少量的。

背景

在資料庫同步技術出現之前,只能通過備份和恢復來複製一個新的資料庫。

但是這個方法有比較大的問題:

1) 備份和恢複數據庫需要很長的時間

2)恢復後的數據和源庫沒有辦法保持一致, 源庫修改後,需要再次備份/恢復, 這樣目的庫才能得到新數據。

目的

企業的大量寶貴數據都存儲在資料庫中。但是目前大量的企業套用系統中線上的資料庫通常就只有一份,如果這一個運行中的資料庫出問題了,結果可能就是災難性的。

為了保證資料庫的可靠運行,目前採用的通常是HA+備份。

備份是保留了額外的數據,但是問題是數據不是最新的,通常是會丟失至少一天的數據。

HA通常的作用是保證資料庫服務庫有2台以上,來減少系統當機的可能性,但是不能解決ONLINE數據只有一份的問題。

因此,希望能夠得到另外一個ONLINE資料庫的渴望推動了資料庫同步技術的發展。

同步內容

針對於具體的資料庫 - ORACLE,同步的數據可以分為兩大類:

1) DML數據 --- 這些是數據操控指令。 包含INSERT/UPDATE/DELETE語句。

2) DDL數據 --- 這些是數據描述指令。 這個就非常的複雜,常用的有TABLE/INDEX的相關語句。

同步技術

無論國內國外, 目前數據同步的基本技術流程就是:

1)讀取源數據的重做日誌 - REDOLOG,

2)然後分析出SQL語句

3) 然後到目的庫執行

產品

國外產品

QUEST 的shareplex:

這個公司還開發TOAD,這個SHAREPLEX沒有TOAD使用廣泛。

Oracle的GoldenGate :

原來是獨立開發的, 後來被ORACLE 用一億美金收購, 現在由ORACLE力推。

國內產品

沃信科技的PORER ACTIVE CLONE(PAC):

由深圳沃信科技獨立開發。

產品考量要點

資料庫同步的概念並不複雜, 但是實際產品部署的過程中非常的複雜。

因此,對於產品供應商的產品需要進行仔細的考量。

穩定行/性能/兼容性? 那個最重要的呢?

最重要的是兼容性! 為什麼呢。

資料庫同步的其實是交易。 交易有ACID的特性。

交易的ACID特性原來是資料庫上的, 現在加入了同步軟體,那么這些特性也需要在同步軟體上體現。

具體的問題如下:

1)如果源庫的日誌檔案沒有辦法讀取, 同步如何解決?

2)如果同步軟體因各種原因退出, 如何解決?

3)如果目的庫無法連線, 如何解決?

4)如果網路突然中斷, 如何保證同步的交易完整性?

5)如果主庫和備庫的物理存儲結構不一致, 如何解決DDL複製的問題?

...

套用案例

海上的FPOS(單點系泊船)運行了基於ORACLE 的ERP, 基地上為FPOS服務的部門運行另外的同版本ERP, 海上系統中的工單(WORK ORDER)需要通過衛星線路(頻寬3K)傳輸到基地, 基地上的採購單(PURCHASE ORDER)需要傳輸到海上。

為了實現工單和採購單在兩個ONLINE資料庫之間的傳輸, 就需要用到資料庫同步技術來完成。

這個套用的要點就是要解決不穩定網路, 低頻寬, 數據的雙向傳輸問題。

相關詞條

相關搜尋

熱門詞條

聯絡我們