從11g RAC的ASM 磁盤組中剔出一塊磁盤



首先,切換到grid用戶,連接到ASM實例:

nbasdb1:/grid$id

uid=1001(grid) gid=1001(oinstall)

nbasdb1:/grid$sqlplus / as sysdba

SQL> select group_number, name, state, type, total_MB, free_mb from v$asm_diskgroup;

GROUP_NUMBER NAME STATE TYPE TOTAL_MB FREE_MB

———— ———- ———– —— ———- ———-

1 DATA MOUNTED EXTERN 61339520 49784512

SQL> col path for a30

SQL> select disk_number, path, name, total_mb, free_mb from v$asm_disk where group_number = 1 and rownum < 5;

 DISK_NUMBER PATH NAME TOTAL_MB FREE_MB

———– ———————————– ———- ———- ———-

0 /dev/rdsk/c0t00173800506800ACd0s6 DATA_0000 557632 452032

1 /dev/rdsk/c0t00173800506800ADd0s6 DATA_0001 557632 452864

2 /dev/rdsk/c0t00173800506800AEd0s6 DATA_0002 557632 451968

3 /dev/rdsk/c0t00173800506800AFd0s6 DATA_0003 557632 452352

  

這裏報權限不足,是因爲當前是11g的ASM,需要用sysasm來登錄操作。

 nbasdb1:/grid$sqlplus / as sysasm

 SQL*Plus: Release 11.2.0.4.0 Production on Wed Dec 10 10:08:43 2014

Copyright (c) 1982, 2013, Oracle. All rights reserved.

 Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64bit Production

With the Real Application Clusters and Automatic Storage Management options

 

SQL> alter diskgroup DATA drop disk ‘/dev/rdsk/c0t00173800506800ACd0s6′;

alter diskgroup DATA drop disk ‘/dev/rdsk/c0t00173800506800ACd0s6′

*

ERROR at line 1:

ORA-01948: identifier’s name length (33) exceeds maximum (30)

 

path的名稱太長,超過了限制,改爲使用name來刪除:

 

SQL> alter diskgroup DATA drop disk DATA_0000;

 

Diskgroup altered

 

這裏雖然操作成功,但是磁盤並沒有真正被刪掉,ASM需要先在後臺將該磁盤上的數據挪到其他盤上。查詢該磁盤的狀態如下:

 

SQL> col path for a35

SQL> col name for a10

SQL> set line 200

SQL> select disk_number, path, name, state, total_mb, free_mb from v$asm_disk where group_number = 1 and disk_number = 0;

 

DISK_NUMBER PATH NAME STATE TOTAL_MB FREE_MB

———– ———————————– ———- ——– ———- ———-

0 /dev/rdsk/c0t00173800506800ACd0s6 DATA_0000 DROPPING 557632 498368

 

 

可以看到,這時磁盤的狀態爲DROPPING。

 

SQL> /

 

DISK_NUMBER PATH NAME STATE TOTAL_MB FREE_MB

———– ———————————– ———- ——– ———- ———-

0 /dev/rdsk/c0t00173800506800ACd0s6 DATA_0000 DROPPING 557632 509120

 

SQL> /

 

DISK_NUMBER PATH NAME STATE TOTAL_MB FREE_MB

———– ———————————– ———- ——– ———- ———-

0 /dev/rdsk/c0t00173800506800ACd0s6 DATA_0000 DROPPING 557632 512896

 

同時可以看到,free_mb的大小在不斷增大,說明盤上的數據在不斷被挪走。

 

SQL> /

 

DISK_NUMBER PATH NAME STATE TOTAL_MB FREE_MB

———– ———————————– ———- ——– ———- ———-

0 /dev/rdsk/c0t00173800506800ACd0s6 DATA_0000 DROPPING 557632 521792

 

SQL> /

 

no rows selected

 

SQL>

 

最後,當該盤上的數據全部遷移到其他盤上去時,ASM才正式將該盤剔出磁盤組。此時,在ASM中,已經查不到該盤的記錄了。

首先,切換到grid用戶,連接到ASM實例:

nbasdb1:/grid$id

uid=1001(grid) gid=1001(oinstall)

nbasdb1:/grid$sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.4.0 Production on Wed Dec 10 09:54:38 2014

 

Copyright (c) 1982, 2013, Oracle. All rights reserved.

 

 

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64bit Production

With the Real Application Clusters and Automatic Storage Management options

 

SQL> select group_number, name, state, type, total_MB, free_mb from v$asm_diskgroup;

 

GROUP_NUMBER NAME STATE TYPE TOTAL_MB

———— —————————— ———– —— ———-

FREE_MB

———-

1 DATA MOUNTED EXTERN 61339520

49784512

 

 

SQL> col name for a10

SQL> /

 

GROUP_NUMBER NAME STATE TYPE TOTAL_MB FREE_MB

———— ———- ———– —— ———- ———-

1 DATA MOUNTED EXTERN 61339520 49784512

 

 

SQL> col path for a30

SQL> select disk_number, path, name, total_mb, free_mb from v$asm_disk where group_number = 1 and rownum < 5;

 

DISK_NUMBER PATH NAME TOTAL_MB FREE_MB

———– ———————————– ———- ———- ———-

0 /dev/rdsk/c0t00173800506800ACd0s6 DATA_0000 557632 452032

1 /dev/rdsk/c0t00173800506800ADd0s6 DATA_0001 557632 452864

2 /dev/rdsk/c0t00173800506800AEd0s6 DATA_0002 557632 451968

3 /dev/rdsk/c0t00173800506800AFd0s6 DATA_0003 557632 452352

 

 

SQL> alter diskgroup DATA drop disk ‘/dev/rdsk/c0t00173800506800ACd0s6′;

alter diskgroup DATA drop disk ‘/dev/rdsk/c0t00173800506800ACd0s6′

*

ERROR at line 1:

ORA-15032: not all alterations performed

ORA-15260: permission denied on ASM disk group

 

這裏報權限不足,是因爲當前是11g的ASM,需要用sysasm來登錄操作。

 

nbasdb1:/grid$sqlplus / as sysasm

 

SQL*Plus: Release 11.2.0.4.0 Production on Wed Dec 10 10:08:43 2014

 

Copyright (c) 1982, 2013, Oracle. All rights reserved.

 

 

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64bit Production

With the Real Application Clusters and Automatic Storage Management options

 

SQL> alter diskgroup DATA drop disk ‘/dev/rdsk/c0t00173800506800ACd0s6′;

alter diskgroup DATA drop disk ‘/dev/rdsk/c0t00173800506800ACd0s6′

*

ERROR at line 1:

ORA-01948: identifier’s name length (33) exceeds maximum (30)

 

path的名稱太長,超過了限制,改爲使用name來刪除:

 

SQL> alter diskgroup DATA drop disk DATA_0000;

 

Diskgroup altered

 

這裏雖然操作成功,但是磁盤並沒有真正被刪掉,ASM需要先在後臺將該磁盤上的數據挪到其他盤上。查詢該磁盤的狀態如下:

 

SQL> col path for a35

SQL> col name for a10

SQL> set line 200

SQL> select disk_number, path, name, state, total_mb, free_mb from v$asm_disk where group_number = 1 and disk_number = 0;

 

DISK_NUMBER PATH NAME STATE TOTAL_MB FREE_MB

———– ———————————– ———- ——– ———- ———-

0 /dev/rdsk/c0t00173800506800ACd0s6 DATA_0000 DROPPING 557632 498368

 

 

可以看到,這時磁盤的狀態爲DROPPING。

 

SQL> /

 

DISK_NUMBER PATH NAME STATE TOTAL_MB FREE_MB

———– ———————————– ———- ——– ———- ———-

0 /dev/rdsk/c0t00173800506800ACd0s6 DATA_0000 DROPPING 557632 509120

 

SQL> /

 

DISK_NUMBER PATH NAME STATE TOTAL_MB FREE_MB

———– ———————————– ———- ——– ———- ———-

0 /dev/rdsk/c0t00173800506800ACd0s6 DATA_0000 DROPPING 557632 512896

 

同時可以看到,free_mb的大小在不斷增大,說明盤上的數據在不斷被挪走。

 

SQL> /

 

DISK_NUMBER PATH NAME STATE TOTAL_MB FREE_MB

———– ———————————– ———- ——– ———- ———-

0 /dev/rdsk/c0t00173800506800ACd0s6 DATA_0000 DROPPING 557632 521792

 

SQL> /

 

no rows selected

 

SQL>

 

最後,當該盤上的數據全部遷移到其他盤上去時,ASM才正式將該盤剔出磁盤組。此時,在ASM中,已經查不到該盤的記錄了。

發佈了369 篇原創文章 · 獲贊 8 · 訪問量 37萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章