Oracle 數據庫表同步方法淺議

總結一下Oracle數據庫表級別的複製同步

 

一.經過觸發器進行表的複製


  • 原理,是監聽表上都某一字段進行的DML操做,而後獲得DML操做的數據,從新在另外一個表上執行DML操做。數據庫

  • 優勢: 簡單,編寫一個觸發器就能夠,不須要過多的配置。 易修改,遇到了問題很好定位。性能

  • 缺點:表大的話是有性能問題,若是表中含有blob列,是沒法監聽到其改變的,並且整個insert 必須先insert 一個空的blob,再進行update操做,並且頗有可能出現數據不爲空,blob爲空的狀況。日誌

二.經過Stream進行表同步


  • 原理,Stream的功能很強大的,主要是進行多個數據庫之間的同步,在原庫和目的庫,分別啓動捕獲隊列,捕獲進程和加載進程和加載隊列,捕獲進程經過捕獲進行DML操做的REDO log日誌,因此對數據的性能不形成什麼影響。隊列

  • 優勢: 性能好,對原數據庫結構沒有侵入。對BLOB支持也很好。進程

  • 缺點: 配置很複雜,原庫和目的庫經過DBLINK進行通訊,配置的工做量大。若是隊列出現問題,整個同步將沒法進行。同步

三.經過MV進行表同步


原理,物化視圖 (MV)在一個段中存儲查詢結果,而且可以在提交查詢時將結果返回給用戶,從而再也不須要從新執行查詢 — 在查詢要 執行幾回時(這在數據倉庫環境中很是常見),這是一個很大的好處。物化視圖能夠利用一個快速刷新機制從基礎表中所有或增量刷新。利用物化視圖的增量刷新功能來進行同步的。基礎

  • 優勢: 性能不錯,原理

  • 缺點: 須要對原有結構改動較大,通常只在數據倉庫中使用,存在一個刷新的時間窗。配置

四.經過CDC進行同步

  • 原理,也是一種進行數據同步捕獲的技術,主要經過觸發器+臨時表+捕獲標識來實現的。date

  • 優勢:若是做爲一種ETL手段還可

  • 缺點:同觸發器

五.經過GoldenGate進行同步


沒什麼好說的,基本上,以上幾種方式均可做。可是要收費的。

相關文章
相關標籤/搜索