企業的大量寶貴數據都存儲在數據庫中。但是大量的企業應用系統中在線的數據庫通常就只有一份,如果這一個運行中的數據庫出問題了,結果可能就是災難性的。
爲了保證數據庫的可靠運行,目前通常採取的方法備份。備份是保留了額外的數據,但是問題是數據不是最新的,通常是會丟失至少一天的數據,而且,當在線數據庫出現問題後,恢復備份數據庫少則需要幾個小時,多則需要幾天。
爲了解決數據庫單點故障問題,數據實時同步通常採取以下三種解決方案:
存儲層同步數據文件放置在存儲陣列上,利用存儲內置的同步功能,將數據文件所在的DISK同步到另外一個存儲櫃上。
操作系統層同步將生產服務器的數據文件或者整個目彔,同步到另外一臺或者多臺備用服務器上。
數據庫層同步將生產數據庫的日志(通常是DDL和DML操作指令)同步到另外一臺或者多臺數據庫服務器上。
存儲層的數據同步解決方案,同步的是整個DISK或者LUN,由於各廠家的技術並不相互兼容,實施不夠靈活,而且成本高昂,很少採用。下面主要討論“操作系統層”和“數據庫層”的解決方案。
不管什麼數據庫,運行在操作系統上的數據庫,都是以文件形式存在的,包括數據文件、日志文件、參數文件、控制文件等等。數據庫表記彔的改變,最終反應的是相對的文件的數據塊的改變,只要把這些改變的數據塊同步到另外一臺服務器上,就達到了數據實時同步的目的。
實現數據實時同步復制,需要第三方的軟件來實現,譬如RoseReplicator。當生產服務器出現故障不能使用時,備用服務器立刻接管IP,啓用數據庫,使應用不中斷。

數據庫層同步,就是數據庫日志(即DML、DDL這些SQL語句)同步到另外一臺數據庫服務器上,然後應用這些日志/SQL語句,從而達到表記彔相同。當生產庫不可用時,可將訪問連接指向到備用服務器。正常情況下,報表查詢可以連接到備用服務器,減輕生產服務器負載,達到讀寫分離/容災的目的。
數據庫層的數據同步,通常是採取同步SQL語句等日志到其它服務器上並應用,譬如oracle goldengate,dataguard,sybase replicator,moebius等等。其中goldengate功能最爲強大,可以實現異構數據庫同步,可作爲數據ETL工具。
ORACLE ACTITVE DATAGUARD 容災、同步、讀寫分離

ORACLE GoldenGate(OGG)容災、同步

如您對此感興趣,可聯系我們索取相應的方案。