暂无图片
ADG备库查询视图间歇报 kghalp()+46
我来答
分享
like052
2019-12-31
ADG备库查询视图间歇报 kghalp()+46

Exception [type: SIGSEGV, Address not mapped to object] [ADDR:0x5B] [PC:0x98079B2, kghalp()+46] [flags: 0x0, count: 1]
Errors in file /u01/app/oracle/diag/rdbms/oradbtd/oradbtd/trace/oradbtd_ora_18892.trc (incident=13777):
ORA-07445: exception encountered: core dump [kghalp()+46] [SIGSEGV] [ADDR:0x5B] [PC:0x98079B2] [Address not mapped to object] []
Incident details in: /u01/app/oracle/diag/rdbms/oradbtd/oradbtd/incident/incdir_13777/oradbtd_ora_18892_i13777.trc
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
Tue Dec 31 16:16:38 2019
Dumping diagnostic data in directory=[cdmp_20191231161638], requested by (instance=1, osid=18892), summary=[incident=13777].
Tue Dec 31 16:16:39 2019
Sweep [inc][13777]: completed
Sweep [inc2][13777]: completed

我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
like052
暂无图片 评论
暂无图片 有用 0
打赏 0
Moone

这种报错一般是bug导致,MOS没有完全匹配到,但是从trace看可以尝试如下修改:
alter system set “_optimizer_extended_cursor_sharing_rel”=none scope=both;
alter system set “_optimizer_extended_cursor_sharing”=none scope= both;
alter system set “_optimizer_adaptive_cursor_sharing”=false scope= both;

暂无图片 评论
暂无图片 有用 0
打赏 0
章芋文

查询Oracle C函数得知kghalp为:

kghalp: kernel generic heap manager allocate permanent memory

ORA-7445 kghalp的bug还挺多的,ADG上SELECT查询触发的bug比较难排查。

Bug 21157342 - dump on kghalp/_intel_new_memcpy with SQL Monitoring enabled (default) (Doc ID 21157342.8)

上面的bug是指开启sql monitoring后执行长查询会触发这个bug,调用栈为:kghalp <- kghscCopyStream <-keswxCurStartPlanMonitoring,与trace文件中完全一致,但是ADG端理论上不会有这个报错,可以尝试官方给的解决方案:

alter system set "_sqlmon_threshold"=0;
复制

也可以尝试不要在ADG上运行太长的SQL,或者提升SQL运行效率,不然也很容易触发ORA-01555错误。

*** 2019-12-31 16:16:36.441 dbkedDefDump(): Starting a non-incident diagnostic dump (flags=0x3, level=3, mask=0x0) ----- Current SQL Statement for this session (sql_id=b60whdmdxz8qn) ----- select count(1) as IS_HAS from V_PHONEINFO where CONTACT_MOBILE in ( :1 ) kghalp()+46 signal __sighandler() 00C0F8C80 ? 000000000 ? 000000018 ? 000000001 ? 000000000 ? 000000018 ? kghscAllocDataElem( call kghalp() 00C0F8C80 ? 000000000 ? )+84 000000018 ? 000000001 ? 000000000 ? 00A96B0C8 ? kghscWrite()+241 call kghscAllocDataElem( 00C0F8C80 ? 7FFC13F7A0D0 ? ) 122FAE2588 ? 000000001 ? 000000000 ? 00A96B0C8 ? kghscCopyStream()+8 call kghscWrite() 00C0F8C80 ? 7FFC13F7A0D0 ? 31 122FAE2588 ? 000000001 ? 000000000 ? 00A96B0C8 ? keswxCurStartPlanMo call kghscCopyStream() 7FFC13F79A00 ? 0000003B8 ? nitoring()+2352 0000003B8 ? 000000001 ? 000000000 ? 00A96B0C8 ? keswxCurPushMonitor call keswxCurStartPlanMo 7F8935E19700 ? 7F8935BD4D78 ? ing()+2357 nitoring() 115E30C910 ? 000000000 ? 000000000 ? 00A96B0C8 ? kews_sqlst_push_mon call keswxCurPushMonitor 7F8935E19700 ? 000000000 ? itoring()+504 ing() 000000000 ? 000000001 ? 0001E8507 ? 000000000 ? kews_sqlst_flush_le call kews_sqlst_push_mon 7F8935E19700 ? 000000000 ? vel()+338 itoring() 000000000 ? 000000001 ? 0001E8507 ? 000000000 ? kews_sqlst_flush()+ call kews_sqlst_flush_le 11812C79D0 ? 000000000 ? 382 vel() 116FA1FD38 ? 7F8935FEB9B8 ? 0001E8507 ? 000000000 ? kews_timeout()+358 call kews_sqlst_flush() 11812C79D0 ? 000000000 ? 116FA1FD38 ? 7F8935FEB9B8 ? 0001E8507 ? 000000000 ? ksu_dispatch_tac()+ call kews_timeout() 11812C79D0 ? 000000000 ? 1157 116FA1FD38 ? 7F8935FEB9B8 ? 0001E8507 ? 000000000 ?
复制
暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
有21C ADG部署参考文档嘛?
回答 2
已采纳
可以参考19C的ADG搭建方式,使用dbca来快速创建:优缺点:方便快捷,搭建速度较快。但是会影响主库的性能,执行过程报错不方便排查。具体命令可参考:dbcasilentcreateDuplicate
Oracle 12C的库 能迁移到19C上吗?(数据泵方式导出的DMP)
回答 1
已采纳
可以,字符集一样就没问题。主要是看应用的兼容性。
AWR分析报告问题求助:SQL如何可以从哪几个方面优化?
回答 4
基本上看LoadProfile的几个关键点。Redosize看有没有大量写入。一般归档满,磁盘不足看这个。Logicalread看读数据量大不大。一般硬件条件达标的环境,这个越大说明系统越繁忙。(SQ
Oracle中dmp文件导到建的用户YYTRH下,语句报错: 操作无效,无法打开日志文件
回答 4
已采纳
directory没有给权限可能性比较大grant&nbsp;read&nbsp;,write&nbsp;ondirectory&nbsp;xxxxxxxxto&nbsp;username;
Oracle数据库在使用*_AReA_SIZE参数时,需要了解什么?
回答 1
已采纳
在使用AReASIZE参数时,需要掌握以下几点:1)这些参数控制着一个排序、散列或位图合并操作所用的最大内存量。2)一个查询可能包含多个操作,这些操作可能都要使用这部分内存,并且会创建多个排序/散列区
oracle11g数据给删除,从在线日志和归档日志,alter日志找不到删除记录,还有什么办法查到删除原因?
回答 5
先按照对象查找出所有的记录,再观察一下,看看和你的SQL有什么不匹配之处。如果不清楚数据是怎么样子消失的,先不要假定操作类型。
oracle 19c表空间传输到11g会有问题吗?
回答 1
会有问题,oracle不支持。&nbsp;Youcannotexporttransportabletablespacesandthenimportthemintoadatabaseatalowerre
请问各位大佬, Windows环境,12.2,数据库应该是被OS kill掉了
回答 3
看windows的事件日志,看看有没有oracle进程异常终止的的事件
system表空间下这些对象都是什么?
回答 2
SYSLOBidentifier$$的段,可以使用DBALOBS视图找出该LOB列映射到哪个表的哪一列
想请问一下,服务器系统是Linux 数据库是Oracle 但是业务在使用过程中,数据库偶尔会自动关闭,请问是什么情况?
回答 2
可以看下alert.log,会记录相关启停的信息。