首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 裸裝置 20 問:從 Unix 核心原理到 Linux ASM 實戰部署全解析

     編輯:Oracle 資料庫基礎

裸裝置繞過檔案系統緩衝,讓 Oracle 直接對磁碟分區進行 I/O,是高負載資料庫突破磁碟瓶頸的關鍵技術。本文以 20 個核心問題串聯裸裝置完整知識體系,並補充 CentOS/RedHat 5.x 下綁定裸裝置供 ASM 使用的實戰操作。

核心 20 問知識圖譜

#問題核心答案
1什麼是裸裝置?未格式化、繞過檔案系統的字元特殊裝置,由應用程式直接讀寫
2如何辨識?/dev 下字元裝置檔,ls -l 首字元為 c
3效能提升幅度?磁碟 I/O 為瓶頸時最高可提升 40%,並省去 inode/自由區塊維護開銷
4何時使用?資料庫已優化、vmstat/sar 確認磁碟瓶頸、有空閒分區
5強制使用場景?Oracle Parallel Server/RAC(所有資料檔、控制檔、Redo 必須裸裝置)、部分 Unix 需異步 I/O
6能用磁碟第一分區?舊版 Unix 含磁碟/邏輯卷資訊,覆蓋導致崩潰;新版較安全但仍不建議
7能用完整分區大小?不可,須預留至少 2 個 Oracle 區塊大小
8擁有者權限?root 建立 → chown oracle:dba
9建立資料檔語法?DATAFILE '/dev/raw1' SIZE 30712K(單引號含路徑)
10Oracle 區塊與裸裝置關係?Oracle 區塊大小必須為物理區塊大小的整數倍
11如何備份?唯有 dd 指令(如 dd if=/dev/raw1 of=/dev/rmt0 bs=16k),或先 dd 到檔案系統再備份
12混合檔案系統與裸裝置?非 RAC 可混用,但備份流程複雜化
13線上 Redo 放裸裝置?極佳選擇,寫入頻繁受益最大;RAC 強制要求
14歸檔日誌放裸裝置?不可,必須放檔案系統或磁帶
15單裸裝置多資料檔?不可,一裝置一檔案,規劃需謹慎
16多裸裝置同物理磁碟?不利,產生爭用;應分散至不同磁碟、不同控制器
17裸裝置大小需統一?非強制,但統一利於管理
18需調核心參數?不需,可選擇縮減系統緩衝區
19OS 層面其他提速?RAID(特別是 RAID 10/0+1)極佳補充
20極致優化方向?Oracle 內部調優 + 更多磁碟/控制器分散 I/O

CentOS/RedHat 5.x 實戰:裸裝置綁定供 ASM 使用

環境假設

  • 5 塊磁碟組 RAID 5,第 6 塊熱備
  • 保留未分區空間供 ASM 使用
  • 目標:將 /dev/sda5 綁定為 /dev/raw/raw1

操作步驟

# 1. 分區
fdisk /dev/sda
n → 選擇擴展分區 → n → 建立 Linux 分區 /dev/sda5 → w
reboot

# 2. 即時綁定
raw /dev/raw/raw1 /dev/sda5
# /dev/raw/raw1 及 /dev/raw 目錄會自動建立

# 3. 永久生效 - 方法 A:/etc/sysconfig/rawdevices
echo "/dev/raw/raw1 /dev/sda5" >> /etc/sysconfig/rawdevices

# 4. 永久生效 - 方法 B:/etc/rc.d/rc.local (雙重保險)
cat >> /etc/rc.d/rc.local <<'EOF'
raw /dev/raw/raw1 /dev/sda5
touch /var/lock/subsys/local
chown -R oracle:dba /dev/sda5
chown -R oracle:dba /dev/raw
EOF

# 5. 驗證
ls -l /dev/raw/raw1
# crw-r----- 1 oracle dba 162, 1 ... /dev/raw/raw1

ASM 磁碟群組建立

CREATE DISKGROUP DATA EXTERNAL REDUNDANCY
DISK '/dev/raw/raw1' NAME DATA_0001;

遷移建議

現代 Linux (RHEL 6+/Oracle Linux 6+) 推薦使用 udev 規則或 ASMLib 管理 ASM 磁碟,raw 指令已棄用。新部署請參考《Oracle ASM 存儲管理員指南》採用現代方案。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved