轻松处置DB2创设存储历程时碰着的错误
-
问:在 Unix 哄骗琐细下,有时会孕育发作当 DB2 用户哄骗如:
db2 -td@ -vf <存储历程创设剧本文件>
创设存储历程失败的状态,而查察 db2diag.log 文件则发现有类似如下报错信息:
2007-12-05-13.47.40.075759 Instance:db2inst1 Node:000
PID:1355876(db2agent (ABC) 0) TID:1 Appid:OC10103F.OD12.017302185202
oper system services sqloChangeFileOwnership Probe:100 Database:ABC
errno:
0x0FFFFFFFFFFF7AF0 : 0x00000001 ....
PID:1355876 TID:1 Node:000 Title: Path/Filename
/home/db2inst1/sqllib/function/routine/sqlproc/ABC/DB2INST1/tmp/
2002-10-05-13.47.40.166289 Instance:db2inst1 Node:000
PID:1355876(db2agent (ABC) 0) TID:1 Appid:OC10103F.OD12.017302185202
PSM - SQL Procedure psm_ctrl::psm_init_backend Probe:230 Database:ABC
DIA8402C A disk error has occurred.
ZRC=0x860F0004
PID:1355876 TID:1 Node:000 Title: SQL procedure initialization:
0x09000000031213BC : 696E 7374 616E 6365 206F 776E 6572 2064 instance owner d
0x09000000031213CC : 6F65 7320 6E6F 7420 6265 6C6F 6E67 2074 oes not belong t
0x09000000031213DC : 6F20 6665 6E63 6564 2075 7365 7227 7320 o fenced user's
0x09000000031213EC : 7072 696D 6172 7920 6772 6F75 70 primary group
答:在 Unix 平台下的 DB2 存储历程对于实例用户和受防护用户之间的关系有一个束厄窄小,即 DB2 实例用户必须同时是受防护用户的主组中的一个用户。上述标题的孕育发作就是因为在琐细上,实例用户未插足至受防护用户的主组中,从而激发了存取权限不够的标题所招致的,而并非真的孕育发作了如日志中所报的磁盘错误。处置这一标题的方法很巨大,只需将实例用户插足该主组即可。但有时用户会发现,纵然已将用户插足到指定组,标题依然存在,这时还应搜寻一下实例用户所插足的组可否是实例用户所对应的受防护用户的主组,即搜寻一下插足的组可否准确。
要找到实例用户所应的受防护用户以及受防护用户的主组,可用如下方法:
1. 转入实例用户 Home 途径下的 sqllib/adm 途径
2. 实行呼吁:ls -l .fenced,会获得类似如下输入:
-r--r--r-- 1 db2fencj db2fgrp2 0 Jul 30 09:57 .fenced
3. 输入中表白,该文件所属的用户(db2fencj)即为受防护用户,所属的组(db2fgrp2)即为受防护用户的主组
继而,用户便可验证明例用户可否被插足到了准确的组中,假如终局准确,便可以处置上述标题。
来自: 新客网(www.xker.com) 详文参考:http://www.xker.com/page/e2008/0128/46638.html
版权声明:
原创作品,容许转载,转载时请务必以超链接编制标明文章 原始出处 、作者信息和本声明。否则将清查规则责任。