暂无图片
ora-21779:duration not active
我来答
分享
dnxqw2019
2021-08-09
ora-21779:duration not active

Oracle 10g不定期alert提示错误信息,2节点rac,两个节点不定期报这个错误。微信图片_20210809103353.png微信图片_20210809103411.png

不打补丁有什么处理措施吗?

我来答
添加附件
收藏
分享
问题补充
9条回答
默认
最新
Quanwen Zhao

那这样的话,还是建议升级吧!毕竟10g的版本太老了。

暂无图片 评论
暂无图片 有用 0
暂无图片
朱贺

trace文件中记录是什么呢?

暂无图片 评论
暂无图片 有用 0
Quanwen Zhao

飞总的这篇博客文章 https://www.xifenfei.com/2020/05/ora-21779.html 应该对你有用。

暂无图片 评论
暂无图片 有用 0
柚子身上依

参考:
SMON: Following Errors Trapped And Ignored ORA-21779 (Doc ID 988663.1)
Receiving ORA-21780 Continuously in the Alert Log and SMON Trace Reports “Drop transient type”. (Doc ID 1081950.1)

暂无图片 评论
暂无图片 有用 0
dnxqw2019

2楼、3楼 说的是这个问题,我想知道除了
1)通过设置alter system set events ’22834 trace name context forever, level 1′禁止smon清理transient types,从而来规避该错误,但是可能会引起transient types对象越来越多,当然你可以通过以下sql查询出来
select o.* from obj$ o, type$ t
where o.oid$ = t.tvoid and
bitand(t.properties,8388608) = 8388608 and (sysdate-o.ctime) > 0.0007;
然后删除掉相关记录DROP TYPE “SYSTPf/r2wN4keX7gQKjA3AFMSw==” FORCE;【这个删除不是必须的】
2) flush shared_pool也可以临时规避这个问题
3) 重启数据库,可以暂时规避

这4种方法,还有打补丁外,引起这个错误的原因transient types到底是什么?
有没有彻底规避这个问题的办法?

暂无图片 评论
暂无图片 有用 0
Quanwen Zhao

[oracle@testserver ~]$ oerr ora 21779
21779, 00000, “duration not active”
// *Cause: User is trying to use a duration that has been terminated.
// *Action: User should avoid performing such operation.
[oracle@testserver ~]$
[oracle@testserver ~]$ oerr ora 21780
21780, 00000, “Maximum number of object durations exceeded.”
// *Cause: This typically happens if there is infinite recursion in the PL/SQL
// function that is being executed.
// *Action: User should alter the recursion condition in order to prevent
// infinite recursion.

暂无图片 评论
暂无图片 有用 0
dnxqw2019

有办法追踪是plsql种哪些操作引发的这个ora 21779吗

暂无图片 评论
暂无图片 有用 0
Quanwen Zhao

你还是按MoS的那两篇文章操作吧,文章里说那几种方法可以规避!

暂无图片 评论
暂无图片 有用 0
dnxqw2019

按照这几个方法处理过,过段时间又出现了。

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏