首先,切換到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中,已經查不到該盤的記錄了。