Unix/Linux 下使用 db2 -td@ -vf <script> 創建 SQL 存儲過程失敗,db2diag.log 記錄誤導性磁盤錯誤:
DIA8402C A disk error has occurred.
ZRC=0x860F0004
...
instance owner does not belong to fenced user's primary group
DB2 Unix 平台強制要求:**實例擁有者(Instance Owner)必須屬於受保護用戶的主組(Primary Group)**。
cd ~/sqllib/adm
ls -l .fenced
# 輸出示例:-r--r--r-- 1 db2fenc1 db2fgrp1 0 Jul 30 09:57 .fenced
# 文件擁有者 db2fenc1 = 受保護用戶
# 所屬組 db2fgrp1 = 受保護用戶主組
groups
# 檢查輸出是否包含 db2fgrp1
usermod -a -G db2fgrp1
# 或編輯 /etc/group 手動添加
# 修改生效需重新登錄或重啟實例
用戶可能屬於多個組,**主組**由 /etc/passwd 第四字段(GID)決定,而非 groups 列表順序。必須確認實例用戶的 **Primary GID** 與受保護用戶的 Primary GID 一致,或實例用戶通過補充組包含該 GID。
重新執行創建腳本,觀察 db2diag.log 無錯誤,存儲過程對象成功創建於 sqllib/function/routine/sqlproc/ 目錄下。
db2diag.log 關鍵字 instance owner does not belong 觸發告警。