裸裝置繞過檔案系統緩衝,讓 Oracle 直接對磁碟分區進行 I/O,在高 I/O 負載環境可提升 40% 效能。本文 20 問答完整涵蓋概念、判斷、建立、備份、RAC 強制需求、RAID 搭配等實務細節。
核心概念
- 裸裝置 = 未格式化字元特殊檔,位於
/dev,繞過檔案系統 Cache,應用程式自行管理 I/O。
- 判斷:
ls -l /dev/rdsk/... 顯示字元特殊檔(首字元 c)即為裸裝置;區塊特殊檔(b)經由檔案系統緩衝。
效能優勢與適用條件
- 避免雙重緩衝、減少 inode/空閒塊維護開銷,磁碟 I/O 為瓶頸時效能提升顯著(最高 40%)。
- 前提:資料庫已調優、確認磁碟 I/O 為瓶頸(
vmstat/sar 驗證)、有可用分區。
強制使用場景
- Oracle Parallel Server (RAC) 必須將所有資料檔、控制檔、重做日誌置於裸裝置,確保多實例可共同存取。
- 部分 Unix 要求非同步 I/O 必須用裸裝置。
建立與使用細節
- 由 root 建立、歸屬 oracle:dba、權限 660。
- 資料檔大小須 小於裸裝置實際大小至少 2 個 Oracle 區塊。
- 建表空間語法:
DATAFILE '/dev/rdsk/c0t1d0s1' SIZE 30712K(單位 K)。
- Oracle 區塊大小必須為裸裝置物理區塊大小倍數。
備份策略
- 無法使用 OS 備份工具,必須用
dd:dd if=/dev/rdsk/c0t1d0s1 of=/dev/rmt0 bs=16k。
- 歸檔日誌 不可 放裸裝置,需放一般檔案系統或磁帶。
- 單一裸裝置僅能放一個資料檔,規劃時須精估大小。
最佳實踐建議
- 裸裝置分散至不同實體磁碟/控制器,避免同軸競爭。
- 統一大小利於管理,非強制。
- 核心參數通常無需調整,可選擇減小系統緩衝區。
- 搭配 RAID(特別是 RAID 0+1/5)進一步提升 I/O 頻寬與可用性。
掌握上述細節,可在高 I/O 負載的 Unix/Oracle 環境發揮裸裝置最大效能紅利。