企業的大量寶貴數據都存儲在數據庫中。但是大量的企業應用系統中在線的數據庫通常就只有一份,如果這一個運行中的數據庫出問題了,結果可能就是災難性的。
為了保證數據庫的可靠運行,目前通常采取的方法備份。備份是保留了額外的數據,但是問題是數據不是最新的,通常是會丟失至少一天的數據,而且,當在線數據庫出現問題后,恢復備份數據庫少則需要幾個小時,多則需要幾天。
為了解決數據庫單點故障問題,數據實時同步通常采取以下三種解決方案:
存儲層同步 數據文件放置在存儲陣列上,利用存儲內置的同步功能,將數據文件所在的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)容災、同步

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