前言
DB2 實例啟動失敗報 `SQL1032N` (未發出啟動資料庫管理器命令) 伴隨 `SQL1042C` (非預期系統錯誤) 是常見故障。本文記錄兩次真實排查案例:授權到期 與 服務登入帳密錯誤,提供定位步驟與解決方案。
案例一:授權到期導致實例無法啟動
現象
- `db2start` 報 `SQL1042C` / `SQL1032N` / `SQLSTATE=57019`。
- Windows 事件檢視器:`DB2-DB2-0 服務因 4294959296 服務性錯誤而停止` (Event ID 7024)。
- 手動啟動服務提示 `Windows 不能在本地電腦啟動 DB2-DB2-0...錯誤碼 -8000`。
排查死胡同
嘗試 `ACTIVATE DATABASE`、檢查資料庫是否啟動、重啟服務 — 均無效,因根因非資料庫引擎層面。
關鍵突破
發現開機時服務啟動失敗提示 → 定位至 Windows 服務層 → 執行授權檢查命令:
db2licm -l
輸出明顯顯示 License Expired (授權過期)。
解決
- 購買/獲取永久授權檔 → `db2licm -a license_file.lic` 安裝。
- 或配置試用授權延長 (僅限測試環境)。
- 重啟 DB2 服務 / `db2start` 即恢復正常。
經驗總結
遇到 `SQL1032N` + 服務啟動失敗,**首檢 `db2licm -l` 授權狀態**。論壇高頻問題,永久授權環境可排除。
案例二:服務登入帳密錯誤 (錯誤碼 1069)
現象
- Windows 服務管理器啟動 `DB2-DB2-0` 失敗。
- 彈出 `錯誤 1069:登入失敗`。
成因
DB2 服務設定為特定網域/本地帳號執行。當發生:
- 切換作業系統登入用戶。
- 修改了該服務帳號的密碼。
- 網域密碼策略導致密碼過期。
服務控制管理器 (SCM) 用舊密碼嘗試登入 → 失敗。
解決
- 服務屬性 → 「登入」頁籤。
- 選「此帳號」 → 重新輸入正確帳號與**新密碼**。
- 確定 → 重新啟動服務。
經驗總結
錯誤 1069 直接指向服務登入認證。**密碼變更後必須同步更新所有以該帳號運行的服務**。建議使用專用服務帳號、設定密碼永不過期、納入密碼變更 SOP。
通用排查清單 (SQL1032N)
- `db2licm -l` 檢查授權。
- Windows 服務 → DB2 實例服務 → 登入頁籤驗證帳密。
- 事件檢視器 (System/Application) 尋找 DB2 相關錯誤碼。
- `db2diag.log` (診斷日誌) 詳細堆疊追蹤。
- 確認 DB2 實例目錄權限、磁碟空間、共享記憶體配置。