Tag Archives: aix

ORA-600 [kqlnrc_1]错误分析

群里朋友提出一个问题:数据库遇到ORA-00600: internal error code, arguments: [kqlnrc_1], [0x7000000DCA26B38], [], [], [], [], [], []错误,请求解决。
MOS上关于ORA-600 [kqlnrc_1]错误有详细的文档说明:How To Find The Object That Causing ORA-600 [kqlnrc_1] [ID 1190673.1]

根据文档说明,一步一步寻找问题的根源:
1.Trace文件中找到ORA-600报错,顺便看了下,是AIX上的10.2.0.4.0的库

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
 With the Partitioning, OLAP, Data Mining and Real Application Testing options
 ORACLE_HOME = /oracle/app/product/10.2.0/db_1
 System name: AIX
 Node name: tobadb88
 Release: 3
 Version: 5
 Machine: 00CCA0B44C00
 Instance name: han_tocco
 Redo thread mounted by this instance: 1
 Oracle process number: 85
 Unix process pid: 1737624, image: [email protected]
*** 2011-12-12 16:02:56.457
 ksedmp: internal or fatal error
 ORA-00600: internal error code, arguments: [kqlnrc_1], [0x7000000DCA26B38], [], [], [], [], [], []
 Current SQL statement for this session:

2.查询0x7000000DCA26B38
直接搜索没有任何结果,经分析,在trace文件内的handle对应的值字母为小写,故搜索不到,重新搜索即可找到INVALID对象:

SO: 7000005d0479c98, type: 53, owner: 7000005e51bf988, flag: INIT/-/-/0x00
 LIBRARY OBJECT LOCK: lock=7000005d0479c98 handle=7000000dca26b38 mode=S
 call pin=7000005d6d0e638 session pin=0 hpc=0000 hlc=0000
 htl=7000005d0479d18[7000005d9176060,7000005d9176060] htb=7000005d9176060 ssga=7000005d9175aa8
 user=70000060b786c98 session=70000060b786c98 count=1 flags=PNC/[0400] savepoint=0x1cb8
 LIBRARY OBJECT HANDLE: handle=7000000dca26b38 mtx=7000000dca26c68(0) cdp=0
 [email protected]_DBGIS
 hash=01539fc30d3e6ae740e53e09dddbce4a timestamp=04-25-2009 17:35:49
 namespace=TABL flags=REM/KGHP/TIM/SML/[02020000]
 kkkk-dddd-llll=0000-0001-0001 lock=S pin=S latch#=17 hpc=0002 hlc=0002
 lwt=7000000dca26be0[7000000dca26be0,7000000dca26be0] ltm=7000000dca26bf0[7000000dca26bf0,7000000dca26bf0]
 pwt=7000000dca26ba8[7000000dca26ba8,7000000dca26ba8] ptm=7000000dca26bb8[7000000dca26bb8,7000000dca26bb8]
 ref=7000000dca26c10[7000000dca26c10,7000000dca26c10] lnd=7000000dca26c28[7000000dca26c28,7000000dca26c28]
 LIBRARY OBJECT: object=7000000d69413b0
 type=SYNM flags=EXS/LOC[0005] pflags=[0000] status=INVL load=0

Library cache中的失效对象为CRM_INTF.NW_SYN_INTERFACE
由于不是自己的库,后面的compile过程无法实现,不过已经找到了失效对象,剩下的工作已经不再复杂。

总结:
大小写,空格,减号,下划线,每一点,一个细节,都要务必严谨。
BTW,我是通过status=INVL找到的,有时,换一种角度思考,也会有不错的效果。

64bit-AIX平台下,Oracle10g数据库 使用SQLPLUS登陆报错

登陆客户数据库报错:

SQL> conn xxx/xxx
 ERROR:
 ORA-01034: ORACLE not available
 ORA-27121: unable to determine size of shared memory segment
 IBM AIX RISC System/6000 Error: 13: Permission denied
 [zwq_kfdb1:/home/oraeye/enmotech]uname -a
 AIX zwq_kfdb1 1 6 00C5C4764C00

Google了下,很多文章说是由于“重建oracle用户和组引起的ORA-27121错误”,还有说是内存问题,需要重启。大致翻了一些,感觉都不太靠谱,故上MOS搜索,输入“ORA-27121”,第一篇文章即为:Cannot Use SQLPlus as a Non-Oracle User on AIX 64 Bit ORA-01034 and ORA-27121 [ID 1058928.1],内容如下:

Applies to:
Oracle Server – Enterprise Edition – Version: 10.2.0.3 to 11.1.0.7 – Release: 10.2 to 11.1
IBM AIX on POWER Systems (64-bit)
Symptoms
On AIX 64 Bit, using Oracle 10.2 or 11.1, unable to use SQLPLUS as any user other than the UNIX user Oracle. The following occurs:
ERROR:
ORA-01034: ORACLE not available
ORA-27121: unable to determine size of shared memory segment
IBM AIX RISC System/6000 Error: 13: Permission denied

Symptoms associated with this issue are:
– no errors in alert.log
– cannot connect to sqlplus other than as UNIX user oracle
– platform is 212 AIX 64 Bit
– errors that occur in a core dump are
ORA-1034: ORACLE not available
ORA-27121: unable to determine size of shared memory segment

Changes
Running Oracle version 10.2.0.3, 10.2.0.4, 11.1.0.6 or 11.1.0.7

Cause
Bug 6973208 which is a duplicate of Bug 6800649
Abstract: AIX: Client side “map:permission denied” or “sh: /usr/bin/procmap: not found”
============
Client side executables may report errors such as
sh: /usr/bin/procmap: not found
or if procmap exists but the client executable is setuid then
the client may report an error like:
map:permission denied

Solution
Apply Patch 6800649 for effected Oracle version
Workaround:
For the case “sh: /usr/bin/procmap: not found” install “procmap”.
This is an AIX executable. See Note:435576.1 for more details.
For the case of “map:permission denied” make sure that the client
executable is not marked as setuid to some other user.

解决方案:
修改oracle文件权限:

[xxx:/oracle10/app/product/db/10.2.0/bin]ls -l oracle
 -rwsr-s--x 1 oracle10 oinstall 133933734 Jan 16 2011 oracle
普人特福的博客cnzz&51la for wordpress,cnzz for wordpress,51la for wordpress