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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
遇到这个错误信息,意味着您尝试在Oracle数据库的可插拔数据库(Pluggable Database, PDB)环境中执行DBMS_LOGMNR
操作,而该操作仅允许在容器数据库(Container Database, CDB)的根级别执行。ORA-65040
错误明确指出不允许从一个可插拔数据库内部进行此操作。
为了解决这个问题,您需要确保执行日志挖掘(DBMS_LOGMNR
)的过程是在CDB的根容器中进行的,而不是在任何一个PDB中。您可以按照以下步骤操作:
连接到CDB根容器:首先,确保您的数据库连接是直接到CDB的根容器,而不是某个PDB。在使用SQL*Plus、SQL Developer或其他数据库客户端时,确保指定的是CDB的服务名或SID,并且使用具有足够权限的用户(如SYS或具有DBA角色的用户)登录。
执行DBMS_LOGMNR操作:一旦确认连接到了CDB根容器,再执行您的DBMS_LOGMNR
相关脚本或命令。根据您的需求调整SCN范围和其他参数。
如果您的应用程序(例如Debezium,从错误堆栈看似乎是用于数据流和变更数据捕获的工具)配置为连接到特定的PDB并执行日志挖掘,您可能需要修改其配置,以确保它连接到CDB根容器来执行这些操作。
请注意,对于生产环境中的数据库操作,尤其是涉及到日志挖掘这类可能影响性能的操作,建议在维护窗口内进行,并事先做好充分的测试和备份计划。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。