oracle12c大量插入后出现连接中断问题

li374456042 2017-10-19 01:13:28
【过程】大量插入表oracle表A中,没有问题,然后更新表B获取连接ORAPP::Query* q = GetConnection()->query();时候,阻塞住了,一直等待,过了一会报错连接中断了。
【报错信息】
OCIStmtExecute failed
execute() failed .
ORA-03113: end-of-file on communication channel
Process ID: 10828
Session ID: 1060 Serial number: 44632 (OCI_ERROR)
...全文
720 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
minsic78 2017-10-20
  • 打赏
  • 举报
回复
引用 6 楼 li374456042 的回复:
[quote=引用 5 楼 minsic78 的回复:] [quote=引用 4 楼 li374456042 的回复:] 其实是DAO获取连接卡住了,数据库最大连接数是1000,是不是别人使用没有释放呢
没有列出一个跟踪文件的路径? 另:如果你怀疑连接数爆了,可以查下v$process,是不是已经达到或者接近你的最大连接数,没有就不是。 [/quote] 你是说阻塞的时候查看跟踪文件,然后看看文件的详细信息么?复现时候没有跟踪,现在只能看到日志,oracle日志中没有报错信息。这种情况怎样查找原因。或者有哪些可能的原因呢。[/quote] 这个错很讨厌,比较难查,如果排除一些网络断开,服务器端程序被终止等相对正常的状态,更多的可能是BUG。要说继续调查的办法,我现在还能想到的就是在系统一级打开errorstack,跟踪3113错误,但是系统一级打开需要重启,生产库的话不一定有这种机会,而且即使有了跟踪文件,也不一定能让你发现问题的所在:alter system set event='3113 trace name errorstack level 3' scope=spfile; MOS上有针对这个3113错误的troubleshooting guide,不过是否对你有帮助也要看你情况了,这种guide写的相当宽泛,如果需要的话,我去复制一个过来。
li374456042 2017-10-19
  • 打赏
  • 举报
回复
引用 5 楼 minsic78 的回复:
[quote=引用 4 楼 li374456042 的回复:] 其实是DAO获取连接卡住了,数据库最大连接数是1000,是不是别人使用没有释放呢
没有列出一个跟踪文件的路径? 另:如果你怀疑连接数爆了,可以查下v$process,是不是已经达到或者接近你的最大连接数,没有就不是。 [/quote] 你是说阻塞的时候查看跟踪文件,然后看看文件的详细信息么?复现时候没有跟踪,现在只能看到日志,oracle日志中没有报错信息。这种情况怎样查找原因。或者有哪些可能的原因呢。
minsic78 2017-10-19
  • 打赏
  • 举报
回复
引用 4 楼 li374456042 的回复:
其实是DAO获取连接卡住了,数据库最大连接数是1000,是不是别人使用没有释放呢
没有列出一个跟踪文件的路径? 另:如果你怀疑连接数爆了,可以查下v$process,是不是已经达到或者接近你的最大连接数,没有就不是。
li374456042 2017-10-19
  • 打赏
  • 举报
回复
其实是DAO获取连接卡住了,数据库最大连接数是1000,是不是别人使用没有释放呢
li374456042 2017-10-19
  • 打赏
  • 举报
回复
没有报错。oracle profile Idle_time配置这个配置也是没有限制的。不知道怎么就获取不到连接了。
  • 打赏
  • 举报
回复
没有报错。oracle profile Idle_time配置这个配置也是没有限制的。不知道怎么就获取不到连接了。
minsic78 2017-10-19
  • 打赏
  • 举报
回复
前台抛出ORA-3113时,对应时间点数据库alert日志里有没有什么报错?

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧