實例:資料庫的邏輯容器
- 每個工作站可建立多個實例,每個實例擁有獨立 DBM CFG (Database Manager Configuration)
- 實例隔離:不同實例間進程、記憶體、配置、授權完全獨立
- 本教學使用安裝預設實例
DB2
建立資料庫的關鍵決策點
| 決策項 | 說明 | 本例選擇 |
| 資料庫名稱 | 系統內唯一識別 | HelloWld |
| 資料庫目錄路徑 | 資料庫檔案根目錄 | C:\ |
| 資料庫別名 | 應用端連線使用 | hwld |
| 程式碼頁/地區 | 字元集與排序規則 | UTF-8 / US(啟用 XML 必須 Unicode) |
| XML 支援 | pureXML 功能開關 | 勾選 Enable Database for XML |
軌道一:Control Center 圖形化精靈(圖 5-6)
- 啟動 Control Center →
All Databases → Create New Database
- 填寫上表決策項 →
Next
- 勾選 Enable Database for XML → 自動帶入
CODESET UTF-8 TERRITORY US
Summary 頁面 → Show Command 可檢視/儲存等效 CLI 指令
Finish 等待建立完成
建立完成自動生成的六大物件
- 指定路徑下的資料庫目錄結構
- 三大預設表空間(SYSCATSPACE、TEMPSPACE1、USERSPACE1)
- 系統目錄表/視圖(編目表空間)
- 資料庫配置檔 (DB CFG) 及預設值
- 恢復日誌檔案空間
- CLI/CLP 等應用程式所需環境
軌道二:命令列快速建立
# 開啟 DB2 命令視窗
db2cmd
# 查看語法說明
db2 ? create database
# 一鍵建立(預設路徑 C:\,不啟用 XML)
db2 CREATE DATABASE MYTESTDB ON C:
# 驗證
db2 LIST DATABASE DIRECTORY
# Control Center → Selected → Refresh 同步檢視
啟用 XML 的資料庫建立指令(含完整參數)
db2 CREATE DATABASE HelloWld ON C:
ALIAS hwld
USING CODESET UTF-8 TERRITORY US
PAGESIZE 4096
DFT_EXTENT_SZ 32
CATALOG TABLESPACE MANAGED BY DATABASE
USING (FILE 'C:\DB2\NODE0000\HELLOWLD\SYSCATSPACE' 10000)
USER TABLESPACE MANAGED BY DATABASE
USING (FILE 'C:\DB2\NODE0000\HELLOWLD\USERSPACE1' 5000)
TEMPORARY TABLESPACE MANAGED BY SYSTEM
USING ('C:\DB2\NODE0000\HELLOWLD\TEMPSPACE1')
WITH "Created via CLI with XML enabled";
驗證與後續動作
- Control Center 左側
All Systems / All Databases 確認 HELLOWLD、MYTESTDB 存在
db2 LIST DATABASE DIRECTORY 列出兩庫條目
- 下一步:建立業務表空間、緩衝池、Schema、授權、RUNSTATS 排程、備份策略
常見錯誤與避坑
| 錯誤 | 原因 | 修正 |
| SQL1052N 路徑不存在 | 指定目錄未建立或權限不足 | 預先建立目錄並授權實例擁有者全權限 |
| SQL1092N 授權失敗 | 非 SYSADM/SYSCTRL/DBADM 執行 | 以實例擁有者或具權限用戶登入 |
| SQL1005N 資料庫已存在 | 同名/同別名衝突 | 更換名稱或 DROP DATABASE 先刪除 |
| XML 功能不可用 | 非 Unicode 資料庫 | 重建資料庫指定 CODESET UTF-8 |
總結
Control Center 精靈適合初學者與需視覺化確認參數的場景;命令列適合腳本化、自動化部署、版本控管。**核心原則:先規劃實例拓撲與儲存路徑,再決定編碼與 XML 啟用,最後選擇交付方式。** 將建立指令存為 .clp 檔案納入版本庫,即可實現資料庫結構的「基礎設施即代碼」管理。