前言
完整資料庫系統包含硬體、OS、網路、DBMS、應用程式與資料,各層相互依賴。本文分享中小型 LAN 環境下 Oracle 系統硬體選型、邏輯/物理設計與開發部署經驗。
一、系統硬體選擇與使用
1. CPU
- 優先優化 SQL 程式碼,劣質應用白白消耗 CPU;
- 評估 OS 對 CPU 數量限制與擴展性;
- 排程將高 CPU 作業安排在離峰時段,善用工作調度降低競爭。
2. 記憶體
- Unix 交換區:實體記憶體 < 1GB 設 4 倍,否則 2 倍,置於最快磁碟;
- SGA 設為可用記憶體 55-57%,過大反降效能;
- Oracle 9i 支援動態調整 SGA 參數無需重啟;
- 定期監控記憶體使用,依應用調整 SGA 子元件。
3. 儲存設備
- 選支援熱插拔硬碟,故障時不停機更換;
- 避免超大硬碟,1-4GB 較適合 Oracle,大量中小硬碟提供 RAID 彈性;
- RAID 0+1 為 OLTP 最佳 (讀寫平衡、重建快);RAID 5 適合 DSS (讀多寫少),OLTP 寫入效能損失大、重建耗時;
- Stripe Size 選擇三因素:應用類型 (OLTP 32-64KB、DSS 64-256KB)、OS/DB 區塊大小 (Stripe 必為 OS 區塊整數倍)、磁碟數量;
- 水平條帶跨控制器、垂直條帶跨磁碟群,成員數 ≤ 控制器數。
二、應用資料庫設計與開發
1. 邏輯設計
- 依業務抽象 ER 模型,映射為正規化關聯模型 (資料完整、與應用無關、儲存優化);
- 輔助工具:Oracle Designer 等實現 ER 到 SQL 映射。
2. 物理設計與物件規劃
設計前需深入理解業務、資料與關係,包含:
- 資料庫使用者、系統權限、表空間配額、Resource Profile;
- 表數量、歸屬使用者、操作權限;
- 表結構、PK、Constraints;
- 關鍵表 vs 交易表、主表 vs 從表、FK、驅動表選擇;
- 索引策略:哪些表、哪些欄位;
- 表空間、回滾段規劃,優先本地管理表空間;
- Trigger、Procedure 需求;
- 備份恢復策略。
3. 物件建立原則
| 原則 | 說明 |
| 資料與系統分離 | 應用資料放獨立表空間,使用者 SYSTEM 配額設 0 |
| 表索引分離 | 不同表空間/磁碟,提升速度 |
| 熱門表分散 | 同時存取表分不同磁碟,利於並發 |
| 預分配儲存 | INITIAL 略大 (整數倍 DB_BLOCK_SIZE)、PCTINCREASE=0 減少碎片、INITRANS=FREELISTS 依並發數設定 |
| 大表分區 | 不同分區置不同磁碟均衡 I/O、支援分區查詢/刪除/移動、彈性備份恢復 (8i 操作分區後需重建全域索引) |
| 同類表同表空間 | 大小/增長相似表同表空間,控制碎片、提高自由區塊重用 |
| 同備份策略同表空間 | 利於備份恢復作業 |
| 關鍵應用物件置快速磁碟 | 滿足嚴格回應時間需求 |
結語
設計階段越細緻,後期問題越少。硬體選型、邏輯/物理設計、儲存規劃三位一體,構建高效能、可維護、可擴展的 Oracle 應用系統。