当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > 快速解决DB2创建存储过程时所遇到的错误

Linux服务器
Linux Samba Server的配置详解
Linux系统下配置功能完善的Web服务器
Linux终端代理的设置方法介绍
Fodera Core 7系统下构建CVS服务器的方法
Linux进入系统时自动设置环境变量的方法
介绍GPG命令加密文件的方法
如何清理Linux系统中不需要的文件
Linux系统中两种替代“花生壳”的办法
Linux下配置 Tomcat+JDK+MySQL应用平台
Linux操作系统下RPM软件包的使用技巧
linux知识:htaccess
linux:.htaccess文件使用教程
Apache [forbidden 403]错误的解决办法
FreeBSD6.1快速安装配置Bugzilla2.22
访问网站403错误 Forbidden解决方法
httpd.conf文件配置详解
Apache中禁止IP段,在httpd.conf中的写法
apache禁止使用IP访问的实现方法
Apache中禁止以目录方式访问的设置
.htaccess学习笔记

Linux服务器 中的 快速解决DB2创建存储过程时所遇到的错误


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 34 ::
收藏到网摘: n/a

某些情况下, Unix操作系统环境下会发生当DB2用户使用db2 -td@ -vf <存储过程创建脚本文件> 创建存储过程失败的情况,而查看 db2diag.log 文件则发现有类似如下报错信息:

以下为引用的内容:
2002-10-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
/home2inst1/sqllib/function/routine/sqlproc/ABC2INST1/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)即为受防护用户的主组。

然后,用户即可验证实例用户是否被加入到了正确的组中,如果结果正确,就可以解决上述问题了。