很奇怪的现象,我还没有摸到规律,大概是这样的:
1)我sqlplus登录进去执行一个SQL语句,过了半天系统提示3113错误。告警日志中有如下的错误
Fri Jan 15 15:07:36 2010
Errors in file /opt/oracle/oradb/admin/ossdb/udump/ossdb_ora_18639.trc:
ORA-07445: exception encountered: core dump [__GI_memcmp()+0] [SIGSEGV] [unknown code] [0x6040000000008000] [] []2)然后退出sqlplus,重新登录,重新执行这个SQL语句,一切正常。再退出,再执行也正常,试多次也正常
这个现象上午,下午都出现了一次,我现在还没有摸索出这个规律,第一步的这个错误什么规律下会出现。下面是详细的SQL语句
SQL> UPDATE moi_00000_00072_B SET (objectId) = (SELECT moi_00000_00072_A.objectId FROM moi_00000_00072_A WHERE (moi_00000_00072_B.moIndex = moi_00000_00072_A.moIndex) AND (moi_00000_00072_B.entityId = moi_00000_00072_A.entityId)) WHERE (EXISTS (SELECT 1 FROM moi_00000_00072_A WHERE (moi_00000_00072_B.moIndex = moi_00000_00072_A.moIndex) AND (moi_00000_00072_B.entityId = moi_00000_00072_A.entityId))) AND ((moi_00000_00072_B.objectId IS NULL) OR (moi_00000_00072_B.objectId = -1)) AND (moi_00000_00072_B.moIndex is not NULL) AND (moi_00000_00072_B.sessionId = 897);UPDATE moi_00000_00072_B SET (objectId) = (SELECT moi_00000_00072_A.objectId FROM moi_00000_00072_A WHERE (moi_00000_00072_B.moIndex = moi_00000_00072_A.moIndex) AND (moi_00000_00072_B.entityId = moi_00000_00072_A.entityId)) WHERE (EXISTS (SELECT 1 FROM moi_00000_00072_A WHERE (moi_00000_00072_B.moIndex = moi_00000_00072_A.moIndex) AND (moi_00000_00072_B.entityId = moi_00000_00072_A.entityId))) AND ((moi_00000_00072_B.objectId IS NULL) OR (moi_00000_00072_B.objectId = -1)) AND (moi_00000_00072_B.moIndex is not NULL) AND (moi_00000_00072_B.sessionId = 897)
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel
SQL> SQL> UPDATE moi_00000_00072_B SET (objectId) = (SELECT moi_00000_00072_A.objectId FROM moi_00000_00072_A WHERE (moi_00000_00072_B.moIndex = moi_00000_00072_A.moIndex) AND (moi_00000_00072_B.entityId = moi_00000_00072_A.entityId)) WHERE (EXISTS (SELECT 1 FROM moi_00000_00072_A WHERE (moi_00000_00072_B.moIndex = moi_00000_00072_A.moIndex) AND (moi_00000_00072_B.entityId = moi_00000_00072_A.entityId))) AND ((moi_00000_00072_B.objectId IS NULL) OR (moi_00000_00072_B.objectId = -1)) AND (moi_00000_00072_B.moIndex is not NULL) AND (moi_00000_00072_B.sessionId = 897)
2 ;
ERROR:
ORA-03114: not connected to ORACLE
SQL> conn testdb/1234
Connected.
SQL> UPDATE moi_00000_00072_B SET (objectId) = (SELECT moi_00000_00072_A.objectId FROM moi_00000_00072_A WHERE (moi_00000_00072_B.moIndex = moi_00000_00072_A.moIndex) AND (moi_00000_00072_B.entityId = moi_00000_00072_A.entityId)) WHERE (EXISTS (SELECT 1 FROM moi_00000_00072_A WHERE (moi_00000_00072_B.moIndex = moi_00000_00072_A.moIndex) AND (moi_00000_00072_B.entityId = moi_00000_00072_A.entityId))) AND ((moi_00000_00072_B.objectId IS NULL) OR (moi_00000_00072_B.objectId = -1)) AND (moi_00000_00072_B.moIndex is not NULL) AND (moi_00000_00072_B.sessionId = 897)
2 ;0 rows updated.
1)我sqlplus登录进去执行一个SQL语句,过了半天系统提示3113错误。告警日志中有如下的错误
Fri Jan 15 15:07:36 2010
Errors in file /opt/oracle/oradb/admin/ossdb/udump/ossdb_ora_18639.trc:
ORA-07445: exception encountered: core dump [__GI_memcmp()+0] [SIGSEGV] [unknown code] [0x6040000000008000] [] []2)然后退出sqlplus,重新登录,重新执行这个SQL语句,一切正常。再退出,再执行也正常,试多次也正常
这个现象上午,下午都出现了一次,我现在还没有摸索出这个规律,第一步的这个错误什么规律下会出现。下面是详细的SQL语句
SQL> UPDATE moi_00000_00072_B SET (objectId) = (SELECT moi_00000_00072_A.objectId FROM moi_00000_00072_A WHERE (moi_00000_00072_B.moIndex = moi_00000_00072_A.moIndex) AND (moi_00000_00072_B.entityId = moi_00000_00072_A.entityId)) WHERE (EXISTS (SELECT 1 FROM moi_00000_00072_A WHERE (moi_00000_00072_B.moIndex = moi_00000_00072_A.moIndex) AND (moi_00000_00072_B.entityId = moi_00000_00072_A.entityId))) AND ((moi_00000_00072_B.objectId IS NULL) OR (moi_00000_00072_B.objectId = -1)) AND (moi_00000_00072_B.moIndex is not NULL) AND (moi_00000_00072_B.sessionId = 897);UPDATE moi_00000_00072_B SET (objectId) = (SELECT moi_00000_00072_A.objectId FROM moi_00000_00072_A WHERE (moi_00000_00072_B.moIndex = moi_00000_00072_A.moIndex) AND (moi_00000_00072_B.entityId = moi_00000_00072_A.entityId)) WHERE (EXISTS (SELECT 1 FROM moi_00000_00072_A WHERE (moi_00000_00072_B.moIndex = moi_00000_00072_A.moIndex) AND (moi_00000_00072_B.entityId = moi_00000_00072_A.entityId))) AND ((moi_00000_00072_B.objectId IS NULL) OR (moi_00000_00072_B.objectId = -1)) AND (moi_00000_00072_B.moIndex is not NULL) AND (moi_00000_00072_B.sessionId = 897)
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel
SQL> SQL> UPDATE moi_00000_00072_B SET (objectId) = (SELECT moi_00000_00072_A.objectId FROM moi_00000_00072_A WHERE (moi_00000_00072_B.moIndex = moi_00000_00072_A.moIndex) AND (moi_00000_00072_B.entityId = moi_00000_00072_A.entityId)) WHERE (EXISTS (SELECT 1 FROM moi_00000_00072_A WHERE (moi_00000_00072_B.moIndex = moi_00000_00072_A.moIndex) AND (moi_00000_00072_B.entityId = moi_00000_00072_A.entityId))) AND ((moi_00000_00072_B.objectId IS NULL) OR (moi_00000_00072_B.objectId = -1)) AND (moi_00000_00072_B.moIndex is not NULL) AND (moi_00000_00072_B.sessionId = 897)
2 ;
ERROR:
ORA-03114: not connected to ORACLE
SQL> conn testdb/1234
Connected.
SQL> UPDATE moi_00000_00072_B SET (objectId) = (SELECT moi_00000_00072_A.objectId FROM moi_00000_00072_A WHERE (moi_00000_00072_B.moIndex = moi_00000_00072_A.moIndex) AND (moi_00000_00072_B.entityId = moi_00000_00072_A.entityId)) WHERE (EXISTS (SELECT 1 FROM moi_00000_00072_A WHERE (moi_00000_00072_B.moIndex = moi_00000_00072_A.moIndex) AND (moi_00000_00072_B.entityId = moi_00000_00072_A.entityId))) AND ((moi_00000_00072_B.objectId IS NULL) OR (moi_00000_00072_B.objectId = -1)) AND (moi_00000_00072_B.moIndex is not NULL) AND (moi_00000_00072_B.sessionId = 897)
2 ;0 rows updated.
我现在手上没账号,你在Error Lookup Tool 一搜一大堆。
http://hi.baidu.com/edeed/blog/item/8cbee6cd4d1561580fb3458e.html
http://ora-7445.ora-code.com/