sunysh00 2013-03-28
Oracle数据库对象无效,通过PLSQLDev.exe程序进行包编译;报ORA-03114:连接数据库失败错误.
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包实现。
以下是Oracle的信息:
ORA-03114 not connected to ORACLE Cause:
A call to Oracle was attempted when no connection was established.
Usually this happens because a user-written program has not logged on.
It may happen if communication trouble causes a disconnection. In addition,
this message could occur when ALTER SYSTEM KILL SESSION or ALTER SYSTEM DISCONNECT SESSION
were issued with the IMMEDIATE qualifier because, in those cases, the client's connection to the database is
terminated without waiting for the client to issue a request. Action: Try again. If the message recurs
and the program is user written, check the program