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

Oracle ASM 新增磁碟到磁碟群組操作手冊

     編輯:Oracle 資料庫基礎

前言

Oracle Automatic Storage Management (ASM) 簡化資料庫儲存管理。擴充磁碟群組需在作業系統層級準備裝置、配置 ASM Library Driver、標記 ASM 磁碟,最後透過 DBCA 或 SQL 指令加入磁碟群組。本文記錄 VMware + RHEL 5.4 + Oracle 10.2.0.1 環境的完整操作流程。

環境資訊

  • OS:VMware Red Hat Enterprise Linux 5.4
  • DB:Oracle 10.2.0.1 (ASM 執行個體)
  • 目標:新增 2 塊 SCSI 磁碟到現有 +DATA 磁碟群組

步驟 1:作業系統層級新增實體磁碟

  1. 在 VMware 設定中新增兩顆 SCSI 硬碟(/dev/sdf、/dev/sdg)。
  2. 使用 fdisk 建立分區:
    # fdisk /dev/sdf
    # fdisk /dev/sdg
    # 建立主分區 sdf1、sdg1,類型 8e (Linux LVM) 或保留預設 83

步驟 2:配置 Raw 裝置繫結 (RHEL 5 必須)

編輯 /etc/sysconfig/rawdevices:

/dev/raw/raw1  /dev/sdb1
/dev/raw/raw2  /dev/sdc1
/dev/raw/raw3  /dev/sdd1
/dev/raw/raw4  /dev/sdf1   # 新增
/dev/raw/raw5  /dev/sdg1   # 新增

重啟服務生效:

# service rawdevices restart
Assigning devices:
 /dev/raw/raw4  -->  /dev/sdf1
 /dev/raw/raw5  -->  /dev/sdg1
done

步驟 3:配置 Oracle ASM Library Driver

# /etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.
Default user to own the driver interface [oracle]: oracle
Default group to own the driver interface [dba]: dba
Start Oracle ASM library driver on boot (y/n) [y]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver: [  OK  ]
Scanning the system for Oracle ASMLib disks: [  OK  ]

步驟 4:標記 ASM 磁碟

# /etc/init.d/oracleasm createdisk VOL4 /dev/sdf1
Marking disk "VOL4" as an ASM disk: [  OK  ]
# /etc/init.d/oracleasm createdisk VOL5 /dev/sdg1
Marking disk "VOL5" as an ASM disk: [  OK  ]

驗證:

# /etc/init.d/oracleasm listdisks
VOL1
VOL2
VOL3
VOL4
VOL5

步驟 5:將新磁碟加入磁碟群組

方法 A:使用 DBCA 圖形介面(原文方式)

  1. 以 Oracle 使用者啟動 DBCA:dbca
  2. 選擇 「Automatic Storage Management」 → 「Configure ASM」 → 選擇目標磁碟群組 +DATA → 「Add Disks」。
  3. 勾選 VOL4、VOL5 → 完成嚮導。

DBCA 選擇 Add Disk DBCA 確認新增磁碟

方法 B:使用 SQL*Plus 指令(非圖形環境適用)

SQL> ALTER DISKGROUP DATA ADD DISK 
  2  'ORCL:VOL4' NAME VOL4,
  3  'ORCL:VOL5' NAME VOL5
  4  REBALANCE POWER 5;
  • REBALANCE POWER:1~11,數值越大重平衡越快但佔用更多 I/O 頻寬。
  • 可查詢 V$ASM_OPERATION 監控重平衡進度。

步驟 6:驗證擴充結果

SQL> SELECT name, state, type, total_mb, free_mb, usable_file_mb 
  2  FROM v$asm_diskgroup WHERE name = 'DATA';

NAME  STATE   TYPE     TOTAL_MB  FREE_MB  USABLE_FILE_MB
DATA  MOUNTED NORMAL   204800    152000   76000
SQL> SELECT disk_number, name, path, total_mb, free_mb, state 
  2  FROM v$asm_disk WHERE group_number = (SELECT group_number FROM v$asm_diskgroup WHERE name='DATA');

DISK_NUMBER  NAME  PATH          TOTAL_MB  FREE_MB  STATE
0            VOL1  ORCL:VOL1     51200     38000   NORMAL
1            VOL2  ORCL:VOL2     51200     38000   NORMAL
2            VOL3  ORCL:VOL3     51200     38000   NORMAL
3            VOL4  ORCL:VOL4     51200     51200   NORMAL
4            VOL5  ORCL:VOL5     51200     51200   NORMAL

常見問題與排查

現象原因與解決
ORA-15032: not all alterations performed磁碟已屬於其他磁碟群組或標記失敗 → 確認 listdisks 顯示新磁碟,且 V$ASM_DISK 狀態為 CANDIDATE。
重平衡極慢POWER 設定過低或 I/O 瓶頸 → 調高 POWER、檢查儲存陣列效能、避開業務尖峰時段。
新磁碟不顯示於 DBCAASM Library Driver 未掃描到 → 執行 /etc/init.d/oracleasm scandisks 或重啟 oracleasm 服務。
權限錯誤裝置擁有者非 oracle:dba → 檢查 /etc/udev/rules.d/99-oracle-asmdevices.rules 設定。

最佳實務建議

  1. 新增磁碟大小一致:同一磁碟群組內磁碟容量應盡量相同,確保資料均勻分佈。
  2. 使用 FAILGROUP:生產環境建立磁碟群組時規劃 Failure Group,新增磁碟時指定對應 FG。
  3. 監控重平衡:SELECT * FROM v$asm_operation; 觀察 EST_MINUTES、SOFAR/EST_WORK。
  4. 備份 ASM 元資料:md_backup /backup/asm_md.bak(ASMCMD 指令)。

注意:Oracle 11g R2 起引入 ASM Filter Driver (AFD) 取代 ASMLib,RHEL 7+ 建議改用 udev 規則直接呈現裝置給 ASM,無需 rawdevices 與 ASMLib。

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