Oracle 12.2 RAC 报错ora-600 ora-07445

报错如下:
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
2017-11-22 13:56:36.095000 +08:00
Exception [type: SIGSEGV, Invalid permissions for mapped object] [ADDR:0x7F358CE5F7E3] [PC:0xAB3E99F, evaudc()+127] [flags: 0x0, count: 1]
Errors in file /oracle/app/db/diag/rdbms/tsscdb/TSSCDB2/trace/TSSCDB2_ora_59052.trc  (incident=122179) (PDBNAME=TSSDB):
ORA-07445: exception encountered: core dump [evaudc()+127] [SIGSEGV] [ADDR:0x7F358CE5F7E3] [PC:0xAB3E99F] [Invalid permissions for mapped object] []
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
2017-11-22 13:57:34.132000 +08:00
Exception [type: SIGSEGV, Invalid permissions for mapped object] [ADDR:0x7F7C412B539A] [PC:0xAB3E99F, evaudc()+127] [flags: 0x0, count: 1]
Errors in file /oracle/app/db/diag/rdbms/tsscdb/TSSCDB2/trace/TSSCDB2_ora_63258.trc  (incident=122617) (PDBNAME=TSSDB):
ORA-07445: exception encountered: core dump [evaudc()+127] [SIGSEGV] [ADDR:0x7F7C412B539A] [PC:0xAB3E99F] [Invalid permissions for mapped object] []
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
2017-11-22 13:57:48.377000 +08:00
Exception [type: SIGSEGV, Invalid permissions for mapped object] [ADDR:0x7F7B710B10E2] [PC:0xAB3E99F, evaudc()+127] [flags: 0x0, count: 1]
DDE: Problem Key 'ORA 7445 [evaudc]' was completely flood controlled (0x6)
Further messages for this problem key will be suppressed for up to 10 minutes
2017-11-22 13:58:40.155000 +08:00
Exception [type: SIGSEGV, Invalid permissions for mapped object] [ADDR:0x7F096426B19D] [PC:0xAB3E99F, evaudc()+127] [flags: 0x0, count: 1]
Errors in file /oracle/app/db/diag/rdbms/tsscdb/TSSCDB2/trace/TSSCDB2_ora_63564.trc  (incident=121985) (PDBNAME=TSSDB):
ORA-07445: exception encountered: core dump [evaudc()+127] [SIGSEGV] [ADDR:0x7F096426B19D] [PC:0xAB3E99F] [Invalid permissions for mapped object] []
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
2017-11-22 13:59:33.141000 +08:00
Exception [type: SIGSEGV, Invalid permissions for mapped object] [ADDR:0x7FB8400F327B] [PC:0xAB3E99F, evaudc()+127] [flags: 0x0, count: 1]
Errors in file /oracle/app/db/diag/rdbms/tsscdb/TSSCDB2/trace/TSSCDB2_ora_63999.trc  (incident=121796) (PDBNAME=TSSDB):
ORA-07445: exception encountered: core dump [evaudc()+127] [SIGSEGV] [ADDR:0x7FB8400F327B] [PC:0xAB3E99F] [Invalid permissions for mapped object] []
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.

通过对上述trace信息的检查发现除了SQL auto adviser外,还有一条SQL语句出发了该问题,该sql 语句在plsql或者服务器端执行都会出现如下报错:
     ORA-03113: 通信通道的文件结尾
    进程 ID: 5896
    会话 ID: 191 序列号: 1
同时出发ora-07445报错。
通过netalink查看发现应该是12C的一个bug,通过修改如下参数可解决:

ora-07445: exception encountered: core dump [evaudc()+180] Rediscovery Notes When query has all of below:
1) special ordering operator in outer query(example: ORDER BY ...DESC/ASC
NULLS LAST)
2) query having view on which view merge takes place
3) there is FI usage i.e. order by column is fetched from Functional index Workaround alter session set "_replace_virtual_columns"=false;
or
alter session set "_simple_view_merging"=false;
alter session set "complex_view_merging"=false;
具体见:
     Bug 21869685 - ORA-7445: exception encountered: core dump [evaudc()+180] (Doc ID 21869685.8)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28612416/viewspace-2147612/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28612416/viewspace-2147612/

<think>嗯,用户问的是Oracle数据库ORA-00030错误,我需要先回忆一下这个错误的具体信息。ORA-00030通常和会话被终止有关,可能涉及资源限制或强制操作。我得确认错误代码的正确解释,避免记混了其他类似代码。 首先,我应该检查Oracle官方文档中的错误代码部分,确保信息准确。ORA-00030的官方描述是“会话ID不存在”,这可能发生在尝试终止一个不存在的会话时。比如,执行ALTER SYSTEM KILL SESSION命令时提供的SID和SERIAL#不正确,或者会话已经被终止了。 接下来,用户遇到这个错误时,可能需要检查他们使用的SID和SERIAL#是否正确。我需要引导他们如何查询现有的会话信息,比如通过V$SESSION视图。此外,还要考虑是否有权限问题,或者是否在RAC环境中需要指定INST_ID。 另外,ORA-00030和ORA-00031的区别也很重要。ORA-00031是标记要终止的会话,而ORA-00030是会话不存在,这点需要明确说明。用户可能在终止会话时混淆了这两个错误,所以需要区分清楚。 然后,应该提供具体的解决步骤。比如,先确认会话是否存在,再检查权限,如果是RAC环境如何处理,以及使用IMMEDIATE选项的情况。还要提醒用户谨慎操作终止会话,避免影响生产环境。 可能用户在实际操作中遇到了问题,例如多次尝试终止同一个会话,导致第二次执行时出现ORA-00030,因为会话已经被终止了。这时候需要建议他们重新查询当前活动会话,确保使用正确的参数。 另外,是否需要考虑其他可能性?比如Oracle版本不同导致的行为差异,或者是否存在bug。如果有相关的补丁或文档说明,最好提及,但如果没有足够信息,可能需要建议查看官方文档或联系支持。 最后,总结错误原因和解决方法,结构清晰,分步骤说明,帮助用户逐步排查问题。确保回答准确、实用,避免技术性错误,同时用中文通俗易懂地表达出来。</think>Oracle数据库ORA-00030错误属于会话控制类错误,其官方定义为: **ORA-00030: Session ID does not exist** 即**会话ID不存在**。以下是逐步解析与解决方法: --- ### 错误原因 此错误通常发生在以下场景: 1. **终止无效会话**:尝试通过`ALTER SYSTEM KILL SESSION`命令终止一个不存在的会话(如已断开会话或错误的`SID`和`SERIAL#`组合)。 2. **参数错误**:提供的会话标识符(`SID`和`SERIAL#`)与实际数据库中的活动会话不匹配。 3. **RAC环境问题**:在Oracle RAC(集群)环境中未指定`INST_ID`,导致无法定位目标会话。 --- ### 复现示例 假设执行以下命令时使用了无效参数: ```sql ALTER SYSTEM KILL SESSION '123,45678'; -- SID=123, SERIAL#=45678 ``` 若会话`123,45678`不存在或已被终止,则会触发ORA-00030。 --- ### 解决步骤 #### 1. 确认会话是否存在 查询当前所有活动会话: ```sql SELECT sid, serial#, username, status, machine, program FROM v$session WHERE type = 'USER'; ``` 检查目标会话的`SID`和`SERIAL#`是否存在于结果中。 #### 2. 检查权限 确保执行终止操作的用户具有`ALTER SYSTEM`权限: ```sql GRANT ALTER SYSTEM TO your_user; -- 若无权限需管理员授权 ``` #### 3. RAC环境处理 若为Oracle RAC,需指定`INST_ID`: ```sql ALTER SYSTEM KILL SESSION 'sid,serial#,@inst_id' IMMEDIATE; -- 例如:ALTER SYSTEM KILL SESSION '123,45678,@1' IMMEDIATE; ``` #### 4. 使用IMMEDIATE选项 强制终止会话时添加`IMMEDIATE`选项: ```sql ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE; -- 此命令会立即终止会话,无需等待事务回滚 ``` --- ### 注意事项 - **ORA-00030与ORA-00031的区别**: - ORA-00030:会话不存在(参数错误)。 - ORA-00031:标记要终止的会话(会话存在但无法立即终止)。 - 终止会话可能导致事务回滚,影响业务连续性,请谨慎操作。 --- ### 总结 ORA-00030的核心问题是**无效的会话标识符**。通过查询`v$session`验证会话信息,并确保操作命令参数正确即可解决。若问题持续,需进一步检查数据库日志(`alert.log`)排查环境或权限异常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值