db2 -td@ -vf proc.sql 建立存儲過程db2diag.log 顯示:DIA8402C A disk error has occurred. ZRC=0x860F0004 ... instance owner does not belong to fenced user's primary group
表面「磁碟錯誤」,實為**存取權限不足**。
DB2 為防止惡意/失誤代碼破壞實例資源,強制要求:
實例擁有者 (Instance Owner) 必須是 Fenced User 的主群組 (Primary Group) 成員。
sqllib/function/routine/... 編譯暫存目錄。cd $INSTHOME/sqllib/admls -l .fenced-r--r--r-- 1 db2fenc1 db2fgrp1 0 Jul 30 09:57 .fenceddb2fenc1,主群組 = db2fgrp1。groups db2inst1 (假設實例用戶為 db2inst1)db2fgrp1,即為問題所在。usermod -a -G db2fgrp1 db2inst1 (Linux)chuser groups=db2fgrp1 db2inst1 (AIX)/etc/group 手工添加。su - db2inst1 → groups 確認已含 db2fgrp1db2stop; db2start.fenced 檔案內容可改 → **不可修改**,由 db2setup 建立實例時自動生成。DIA8402C 掩蓋真相,實為 Unix 權限鐵律:**Instance Owner ∈ Fenced User Primary Group**。ls -l .fenced 一秒定位,usermod/chuser 一命修復。存儲過程部署失敗首查此項,分分鐘解決。