大佬们,oracle cdc connector 2.2.0支持19c吗,我运行报错:

Caused by: java.sql.SQLException: ORA-65040: operation not allowed from within a pluggable database ORA-06512: at "SYS.DBMS_LOGMNR", line 72 ORA-06512: at line 1 at oracle.jdbc.driver.T 4CTTIoer11.processError(T 4CTTIoer11.java:509) at oracle.jdbc.driver.T 4CTTIoer11.processError(T 4CTTIoer11.java:461) at oracle.jdbc.driver.T 4 C 8Oall.processError(T 4 C 8Oall.java:1104) at oracle.jdbc.driver.T 4CTTIfun.receive(T 4CTTIfun.java:550) at oracle.jdbc.driver.T 4CTTIfun.doRPC(T 4CTTIfun.java:268) at oracle.jdbc.driver.T 4 C 8Oall.doOALL(T 4 C 8Oall.java:655) at oracle.jdbc.driver.T 4CCallableStatement.doOall8(T 4CCallableStatement.java:265) at oracle.jdbc.driver.T 4CCallableStatement.doOall8(T 4CCallableStatement.java:86) at oracle.jdbc.driver.T 4CCallableStatement.executeForRows(T 4CCallableStatement.java:965) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1205) at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3666) at oracle.jdbc.driver.T 4CCallableStatement.executeInternal(T 4CCallableStatement.java:1358) at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3778) at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4251) at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1081) at io.debezium.connector.oracle.logminer.LogMinerHelper.executeCallableStatement(LogMinerHelper.java:693) at io.debezium.connector.oracle.logminer.LogMinerHelper.startLogMining(LogMinerHelper.java:236) at io.debezium.connector.oracle.logminer.LogMinerStreamingChangeEventSource.execute(LogMinerStreamingChangeEventSource.java:177) ... 7 more Caused by: Error : 65040, Position : 0, Sql = BEGIN sys.dbms_logmnr.start_logmnr(startScn => '2283899', endScn => '2283920', OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG + DBMS_LOGMNR.CONTINUOUS_MINE + DBMS_LOGMNR.NO_ROWID_IN_STMT);END;, OriginalSql = BEGIN sys.dbms_logmnr.start_logmnr(startScn => '2283899', endScn => '2283920', OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG + DBMS_LOGMNR.CONTINUOUS_MINE + DBMS_LOGMNR.NO_ROWID_IN_STMT);END;, Error Msg = ORA-65040: operation not allowed from within a pluggable database ORA-06512: at "SYS.DBMS_LOGMNR", line 72

展开
收起
雪哥哥 2022-11-03 21:51:09 697 分享 版权
阿里云 AI 助理回答

遇到这个错误信息,意味着您尝试在Oracle数据库的可插拔数据库(Pluggable Database, PDB)环境中执行DBMS_LOGMNR操作,而该操作仅允许在容器数据库(Container Database, CDB)的根级别执行。ORA-65040错误明确指出不允许从一个可插拔数据库内部进行此操作。

为了解决这个问题,您需要确保执行日志挖掘(DBMS_LOGMNR)的过程是在CDB的根容器中进行的,而不是在任何一个PDB中。您可以按照以下步骤操作:

  1. 连接到CDB根容器:首先,确保您的数据库连接是直接到CDB的根容器,而不是某个PDB。在使用SQL*Plus、SQL Developer或其他数据库客户端时,确保指定的是CDB的服务名或SID,并且使用具有足够权限的用户(如SYS或具有DBA角色的用户)登录。

  2. 执行DBMS_LOGMNR操作:一旦确认连接到了CDB根容器,再执行您的DBMS_LOGMNR相关脚本或命令。根据您的需求调整SCN范围和其他参数。

如果您的应用程序(例如Debezium,从错误堆栈看似乎是用于数据流和变更数据捕获的工具)配置为连接到特定的PDB并执行日志挖掘,您可能需要修改其配置,以确保它连接到CDB根容器来执行这些操作。

请注意,对于生产环境中的数据库操作,尤其是涉及到日志挖掘这类可能影响性能的操作,建议在维护窗口内进行,并事先做好充分的测试和备份计划。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

收录在圈子:
实时计算 Flink 版(Alibaba Cloud Realtime Compute for Apache Flink,Powered by Ververica)是阿里云基于 Apache Flink 构建的企业级、高性能实时大数据处理系统,由 Apache Flink 创始团队官方出品,拥有全球统一商业化品牌,完全兼容开源 Flink API,提供丰富的企业级增值功能。
还有其他疑问?
咨询AI助理