DB2創(chuàng)建存儲(chǔ)過(guò)程經(jīng)常要遇到的一些錯(cuò)誤有哪些?
此文章主要向大家講述的是DB2創(chuàng)建存儲(chǔ)過(guò)程時(shí)經(jīng)常要遇到的一些錯(cuò)誤的描述,安慰了更加詳細(xì)的對(duì)其進(jìn)行說(shuō)明,我們主要是以一問(wèn)一答的方式對(duì)其進(jìn)行說(shuō)明,下面就是文章的主要內(nèi)容的詳細(xì)描述。
問(wèn):在 Unix 操作系統(tǒng)下,有時(shí)會(huì)發(fā)生當(dāng) DB2 用戶(hù)使用如:
DB2 -td@ -vf <存儲(chǔ)過(guò)程創(chuàng)建腳本文件>
DB2創(chuàng)建存儲(chǔ)過(guò)程失敗的情況,而查看 db2diag.log 文件則發(fā)現(xiàn)有類(lèi)似如下報(bào)錯(cuò)信息:
- 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
- /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 平臺(tái)下的 DB2 存儲(chǔ)過(guò)程對(duì)于實(shí)例用戶(hù)和受防護(hù)用戶(hù)之間的關(guān)系有一個(gè)約束,即 DB2 實(shí)例用戶(hù)必須同時(shí)是受防護(hù)用戶(hù)的主組中的一個(gè)用戶(hù)。上述問(wèn)題的發(fā)生就是由于在系統(tǒng)上,實(shí)例用戶(hù)未加入至受防護(hù)用戶(hù)的主組中,從而引發(fā)了存取權(quán)限不夠的問(wèn)題所導(dǎo)致的,而并非真的發(fā)生了如日志中所報(bào)的磁盤(pán)錯(cuò)誤。
解決這一問(wèn)題的方法很簡(jiǎn)單,只要將實(shí)例用戶(hù)加入該主組即可。但有時(shí)用戶(hù)會(huì)發(fā)現(xiàn),即使已將用戶(hù)加入到指定組,問(wèn)題仍然存在,這時(shí)還應(yīng)檢查一下實(shí)例用戶(hù)所加入的組是否是實(shí)例用戶(hù)所對(duì)應(yīng)的受防護(hù)用戶(hù)的主組,即檢查一下加入的組是否正確。
要找到實(shí)例用戶(hù)所應(yīng)的受防護(hù)用戶(hù)以及受防護(hù)用戶(hù)的主組,可用如下方法:
1. 轉(zhuǎn)入實(shí)例用戶(hù) Home 路徑下的 sqllib/adm 路徑
2. 執(zhí)行命令:ls -l .fenced,會(huì)得到類(lèi)似如下輸出:
-r--r--r-- 1 db2fencj db2fgrp2 0 Jul 30 09:57 .fenced
3. 輸出中表明,該文件所屬的用戶(hù)(db2fencj)即為受防護(hù)用戶(hù),所屬的組(db2fgrp2)即為受防護(hù)用戶(hù)的主組
繼而,用戶(hù)便可驗(yàn)證實(shí)例用戶(hù)是否被加入到了正確的組中,如果結(jié)果正確,便可以解決上述問(wèn)題。
以上的相關(guān)內(nèi)容就是對(duì)DB2創(chuàng)建存儲(chǔ)過(guò)程時(shí)遇到的錯(cuò)誤的介紹,望你能有所收獲。
【編輯推薦】