文档解释
ORA-26909: cannot reexecute an eager error
Cause: An attempt was made to reexecute an eager error transaction. An eager transaction is applied before the apply process sees the commit or rollback for the transaction.
Action: Fix the cause of the eager error and restart the apply process. When apply is restarted, capture will automatically resend the transaction, and the transaction will be applied by the apply process.
ORA-26909: 不能重新执行热情的错误
官方解释
ORA-26909表示不能重新执行某种类型的热情的错误。热情的错误是一种使程序以热情的方式执行的概念,以避免使用大量内存来暂时性地准备数据执行任务。
常见案例
ORA-26909通常会在你尝试重新执行热情的工作时出现,例如,在尝试完成一个并发请求处理程序(Concurrent Request Handler)任务时触发。
一般处理方法及步骤
1. 使用应用程序级别的调试功能来定位ORA-26909错误的源头。这将有助于你找到确切的语句及编码段,以及可能触发错误的其他变量(例如文件)。
2. 执行数据库和表空间状况分析,以确保PDB拥有足够的空间以及不存在数据块密集型冲突(例如,当数据在非连续的数据块中存储时)。
3. 运行AWR报表以确定热情的SQL是否被让给出回滚因为无法正常完成(例如,失败或超时)。
4. 在尝试重新执行任务之前,尽可能修复可能影响到热情工作的任何问题(例如权限、外部程序卡死)。
5. 如果尝试重新正常运行热情任务失败,然后可以尝试通过禁用执行热情请求,并手动提交相同的执行请求,来解决这个问题。
6. 如果错误仍然存在,可以尝试在降低并发应用实例的压力之后重新提交请求。另外,可以考虑使用表分割和分区来改善性能,以及对表空间运行另一个专用操作。