Oracle

Oracleasm deleteddisk failed 無法清除磁碟

  • March 4, 2019

我已經從 ASM 磁碟組中刪除了磁碟:

> ALTER DISKGROUP DATA01 DROP DISK DISK1;

Oracle 執行了重新平衡操作,然後刪除了磁碟。

現在,我想從 ASM 庫中刪除磁碟並將磁碟返回給系統:

# oracleasm deletedisk -v DISK1
 Clearing disk header: oracleasm-write-label: Unable to open device "/dev/oracleasm/disks/DISK1": 
 Device or resource busy failed
 Unable to clear disk "DISK1"

系統詳細資訊:11.2.0.1 2 節點 RAC

為什麼 ASM 不清除磁碟頭?在哪裡可以看到詳細的日誌?

——————————— 編輯1 ————- ——————————————-

# fuser /dev/oracleasm/disks/DISK1

在兩個節點上都不返回任何內容

首先,我檢查了 DISK1 上沒有範圍。

$ . oraenv
ORACLE_SID = [+ASM1] ?

SQL> select PXN_KFFXP,  -- physical extent number
          XNUM_KFFXP, -- virtual extent number
          DISK_KFFXP, -- disk number
          AU_KFFXP    -- allocation unit number
   from X$KFFXP
   where DISK_KFFXP=1;

no rows selected

我通過dd清除了磁碟頭:

# dd if=/dev/zero of=/dev/oracleasm/disks/DISK1 bs=1024 count=100
100+0 records in
100+0 records out
102400 bytes (102 kB) copied, 0.000156 seconds, 656 MB/s

注意:我的分配單位是 1MB,這就是我使用 bs=1024 的原因。

然後通過 oracleasm 刪除磁碟:

# oracleasm deletedisk DISK1
# oracleasm scandisks    <--Do this step on all nodes

說實話這不是解決問題的好方法,因為當我在第二個節點上執行以下命令時:

/sbin/blkid | grep oracleasm

/dev/sdg1: LABEL="DISK6" TYPE="oracleasm"
/dev/sdb1: LABEL="DISK1" TYPE="oracleasm"
/dev/sdh2: LABEL="DISK8" TYPE="oracleasm"
/dev/sdh3: LABEL="DISK9" TYPE="oracleasm"
/dev/sdh4: LABEL="DISK10" TYPE="oracleasm"
/dev/sdh1: LABEL="DISK7" TYPE="oracleasm"
/dev/sdi1: LABEL="DISK11" TYPE="oracleasm"
/dev/sdi2: LABEL="DISK12" TYPE="oracleasm"

它顯示了標籤 DISK1。

所以使用 dd 清除 ASM 磁碟頭會留下一些垃圾。

引用自:https://dba.stackexchange.com/questions/57113