透過Pl/Sql developer 編譯資料庫物件報ORA-03114

zhsumin發表於2008-03-19
Oracle資料庫物件無效,透過PLSQLDev.exe程式進行包編譯;報ORA-03114:連線資料庫失敗錯誤.[@more@]

Oracle DB版本:9.2.0.1

故障原因:PLSQLDev.exe程式和Oracle資料庫的CDC功能產生衝突;使用TOAD,OEM等其他客戶端工具則不會有以上情況。

故障解決:
DROP TRIGGER sys.cdc_alter_ctable_before;
DROP TRIGGER sys.cdc_create_ctable_after;
DROP TRIGGER sys.cdc_create_ctable_before ;
DROP TRIGGER sys.cdc_drop_ctable_before;
CALL sys.dbms_java.dropjava('-s rdbms/jlib/CDC.jar');

Oracle CDC簡介

CDC(Change Data Capture)是oracle在資料庫級別實現的增量抽取解決方案。在一般的ETL過程中,對於增量抽取,無非是在資料上加時間截,全記錄比對,關鍵欄位比對,日誌分析抽取等幾種方法,要麼需要修改原表結構,要麼需要大量的演算法,要麼藉助第三方的工具實現。Oracle從9i開始引入的CDC特性,使得有機會在資料庫層面上直接實現增量抽取功能,在效能方面由於和資料庫引擎的直接整合,比第三方工具應該具有一定的優勢。

CDC有兩個模式:同步和非同步。兩種模式的實現機制是截然不同的。同步CDC主要是採用觸發器記錄新增資料,基本能夠做到實時增量抽取。而非同步CDC則是透過分析已經commit的日誌記錄來得到增量資料資訊,有一定的時間延遲,並且提供了到Oracle Streams的介面。同步CDC在企業版或者標準版中都可以使用,非同步CDC則只包含在企業版中。注意CDC在9i和10g中有了比較大的改變,非同步CDC主要採用了和Streams相同的技術。

CDC中將系統分為兩個角色:釋出者和訂閱者。釋出者主要負責捕獲增量資料,訂閱者則將增量資料傳遞給實際應用。這些任務都可以透過oracle提供的PL/SQL包實現。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/74346/viewspace-1001162/,如需轉載,請註明出處,否則將追究法律責任。

相關文章