Al intentar
borrar un diskgroup en ASM, nos aparece el siguiente error:
SQL> DROP DISKGROUP DATA INCLUDING CONTENTS;
DROP DISKGROUP DATA INCLUDING CONTENTS
*
ERROR at line 1:
ORA-15039: diskgroup not dropped
ORA-15027: active use of diskgroup "DATA"
precludes its dismount
El grupo
para que pueda ser borrado es necesario que esté en estado mounted. Lo
comprobamos.
SQL> select GROUP_NUMBER,NAME,STATE from v$asm_diskgroup;
GROUP_NUMBER
NAME STATE
------------
------------------------------ -----------
1 DATA MOUNTED
Al
intentar realizar la operación de desmontado, nos aparece el mismo error.
SQL> alter DISKGROUP DATA DISMOUNT;
alter DISKGROUP DATA DISMOUNT
*
ERROR at line 1:
ORA-15032:
not all alterations performed
ORA-15027: active use of diskgroup "DATA"
precludes its dismount
Uno de los
motivos por el que no nos deje realizar ninguna de estas operaciones es porque
el grupo esta siendo usado por alguna base de datos.
Para hacer
esta comprobación consultamos la vista “V$ASM_CLIENT”.
SQL> select * from
v$asm_client;
no rows
selected
No es
nuestro caso, lo siguiente que comprobaremos es el contenido del diskgroup,
para ver si hay algún contenido que esté provocando este error.
SQL> select group_number, file_number, bytes, type
from v$asm_file;
GROUP_NUMBER FILE_NUMBER BYTES TYPE
------------ ----------- ---------- ------------------------------------------
1 253 1536 ASMPARAMETERFILE
1 256 713039872 DATAFILE
1 257 576724992 DATAFILE
1 258 94380032 DATAFILE
1 259 5251072 DATAFILE
1 260 9748480 CONTROLFILE
1 261 9748480 CONTROLFILE
1 262 52429312 ONLINELOG
1 263 52429312 ONLINELOG
1 264 52429312 ONLINELOG
1 265
52429312 ONLINELOG
1 266 52429312 ONLINELOG
1 267 52429312 ONLINELOG
1 268 30416896 TEMPFILE
1 269 2560 PARAMETERFILE
Como
podemos ver en la primera línea de la consulta, este diskgroup contiene el ASMPARAMETERFILE,
por lo tanto no podemos borrar el diskgroup hasta que no hayamos movido el
ASMPARAMETERFILE a otro diskgroup o a una ubicación física fuera del ASM.
Comprobamos
que efectivamente el parameterfile del ASM está en este diskgroup.
SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ -----------
-----------------------------
spfile
string +DATA/asm/asmparameterfile/reg
istry.253.786031013
Es
recomendable ubicar el asmparameterfile en un diskgroup de ASM, pero hasta que
no creemos uno nuevo lo moveremos temporalmente a una ubicación externa al ASM.
Usaremos la utilidad “asmcmd” desde el SO.
-bash-3.00$
asmcmd
ASMCMD> spget
+DATA/asm/asmparameterfile/registry.253.786031013
Realizamos
el movimiento con “spmove”
ASMCMD> spmove
'+DATA/asm/asmparameterfile/registry.253.786031013' '/oracle/app/oracle/11.2/grid/dbs/spfile+ASM.ora'
ORA-15032: not all alterations performed
ORA-15028: ASM file
'+DATA/asm/asmparameterfile/registry.253.786031013' not dropped; currently
being accessed (DBD ERROR: OCIStmtExecute)
El error
que nos muestra es normal, se debe a que la base de datos está abierta con ese
spfile, el proceso de movimiento ha copiado correctamente a la nueva ubicación
el spfile, pero a la hora de borrarlo no puede ya que el archivo está en uso.
Comprobamos
que lo ha movido correctamente a pesar del error.
ASMCMD> spget
/oracle/app/oracle/11.2/grid/dbs/spfile+ASM.ora
ASMCMD>
quit
Reiniciamos
la base de datos ASM para que arranque con el parameterfile de la nueva
ubicación.
-bash-3.00$
echo $ORACLE_SID
+ASM
-bash-3.00$ sqlplus / as sysasm
SQL*Plus: Release 11.2.0.1.0 Production on Mar Jun 19
10:10:20 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Conectado a:
Oracle Database 11g Enterprise Edition Release
11.2.0.1.0 - 64bit Production
With the Automatic Storage Management option
SQL> shutdown immediate;
ASM diskgroups dismounted
ASM instance shutdown
SQL> startup;
ASM instance started
Total System Global Area 284008448 bytes
Fixed Size 2147392 bytes
Variable Size 256695232 bytes
ASM Cache 25165824 bytes
ORA-15110: no diskgroups mounted
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ -----------
-----------------------------
spfile
string /oracle/app/oracle/11.2/grid/d
bs/spfile+ASM.ora
Procedemos
de Nuevo con el borrado del diskgroup.
SQL> drop diskgroup DATA including contents;
drop diskgroup DATA including contents
*
ERROR at line 1:
ORA-15039: diskgroup not dropped
ORA-15001: diskgroup "DATA" does not exist
or is not mounted
El comando
de borrado vuelve a fallar porque el grupo está desmontado, lo montamos y
ejecutamos el drop de nuevo.
SQL> select GROUP_NUMBER,NAME,STATE from v$asm_diskgroup;
GROUP_NUMBER
NAME STATE
------------
------------------------------ -----------
0 DATA DISMOUNTED
SQL> alter diskgroup DATA mount;
Diskgroup altered.
SQL> drop
diskgroup DATA including contents;
Diskgroup
dropped.
Creamos un
nuevo grupo de ASM, para mas info: http://zelioman.blogspot.com.es/2012/06/asm-disk-groups.html
Una vez ya
tenemos el nuevo grupo de ASM creado, movemos de nuevo el parameterfile de ASM
al nuevo grupo de discos ASM.
ASMCMD> spget
/oracle/app/oracle/11.2/grid/dbs/spfile+ASM.ora
ASMCMD> spmove
'/oracle/app/oracle/11.2/grid/dbs/spfile+ASM.ora'
'+DATA1/asm/asmparameterfile/spfile+ASM.ora'
ORA-15056: additional error message
ORA-17502: ksfdcre:4 Failed to create file
+DATA1/asm/asmparameterfile/spfile+ASM.ora
ORA-15046: ASM file name
'+DATA1/asm/asmparameterfile/spfile+ASM.ora' is not in single-file creation
form
ORA-15124: ASM file name
'+DATA1/asm/asmparameterfile/spfile+ASM.ora' contains an invalid alias name
ORA-06512: at line 7 (DBD ERROR: OCIStmtExecute)
El nombre
no es válido, vamos a usar el que tenía antes.
ASMCMD> spmove
'/oracle/app/oracle/11.2/grid/dbs/spfile+ASM.ora'
'+DATA1/asm/asmparameterfile/registry.253.786031013'
ORA-15056: additional error message
ORA-17502: ksfdcre:4 Failed to create file
+DATA1/asm/asmparameterfile/registry.253.786031013
ORA-15221: ASM operation requires compatible.asm of
11.2.0.0.0 or higher
ORA-06512: at line 7 (DBD ERROR: OCIStmtExecute)
ASMCMD> quit
El
diskgroup debe tener la propiedad COMPATIBLE en 11.2, ahora tiene la 10.1.
-bash-3.00$ sqlplus
/ as sysasm
SQL*Plus: Release 11.2.0.1.0 Production on Mar Jun 19
11:18:35 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Conectado a:
Oracle Database 11g Enterprise Edition Release
11.2.0.1.0 - 64bit Production
With the Automatic Storage Management option
SQL> select
GROUP_NUMBER,SECTOR_SIZE,STATE,COMPATIBILITY,DATABASE_COMPATIBILITY from v$asm_diskgroup;
GROUP_NUMBER SECTOR_SIZE STATE COMPATIBILITY DATABASE_COMPATIBILITY
------------ ----------- -----------
------------------------------------------------------------
------------------------------------------------------------
1 512 MOUNTED 10.1.0.0.0 10.1.0.0.0
Cambiamos el COMPATIBILITY a 11.2.
SQL> alter
diskgroup DATA1 set attribute 'compatible.asm' = '11.2';
Diskgroup
altered.
SQL> quit
Disconnected from Oracle Database 11g Enterprise
Edition Release 11.2.0.1.0 - 64bit Production
With the Automatic Storage Management option
-bash-3.00$ asmcmd
ASMCMD> spget
/oracle/app/oracle/11.2/grid/dbs/spfile+ASM.ora
ASMCMD> spmove
'/oracle/app/oracle/11.2/grid/dbs/spfile+ASM.ora'
'+DATA1/asm/asmparameterfile/registry.253.786031013'
ORA-15056: additional error message
ORA-17502: ksfdcre:4 Failed to create file
+DATA1/asm/asmparameterfile/registry.253.786031013
ORA-15177: cannot operate on system aliases
ORA-06512: at line 7 (DBD ERROR: OCIStmtExecute)
El nombre proporcionado no es válido.
ASMCMD> spmove
'/oracle/app/oracle/11.2/grid/dbs/spfile+ASM.ora'
'+DATA1/asm/asmparameterfile/spfile'
ASMCMD> spget
+DATA1/asm/asmparameterfile/spfile
Reiniciamos
la base de datos para que arranque con el spfile en la nueva ubicación.
-bash-3.00$ sqlplus / as sysasm
SQL*Plus: Release 11.2.0.1.0 Production on Mar Jun 19
11:46:23 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Conectado a:
Oracle Database 11g Enterprise Edition Release
11.2.0.1.0 - 64bit Production
With the Automatic Storage Management option
SQL> shutdown immediate;
ASM diskgroups dismounted
ASM instance shutdown
SQL> startup
ASM instance started
Total System Global Area 284008448 bytes
Fixed Size 2147392 bytes
Variable Size 256695232 bytes
ASM Cache 25165824 bytes
ASM diskgroups mounted
SQL>
SQL>
SQL>
SQL>
SQL> show parameter spfile
NAME
TYPE VALUE
------------------------------------ -----------
-----------------------------
spfile
string +DATA1/asm/asmparameterfile/sp
file
No hay comentarios:
Publicar un comentario