Este procedimiento lo utilicé en su día para cambiar el Diskgroup de una BBDD. A veces que es necesario hacerlo para redistribuir los datos en nuevos discos. Cambiar el tamaño 'general' de los discos, o crear una estructura de discos homogénea para que todos los discos ocupen lo mismo en el Diskgroup.
Los pasos para realizar esta operativa son los siguientes :
1.- Creamos el Diskgroup
CREATE DISKGROUP DATA1 EXTERNAL REDUNDANCY
DISK
'/dev/ORACLE_sdd' NAME DATA1_001,
'/dev/ORACLE_sde' NAME DATA1_002,
'/dev/ORACLE_sdf' NAME DATA1_003,
'/dev/ORACLE_sdg' NAME DATA1_004,
'/dev/ORACLE_sdh' NAME DATA1_005 ;
Y realizamos las comprobaciones
DISK
'/dev/ORACLE_sdd' NAME DATA1_001,
'/dev/ORACLE_sde' NAME DATA1_002,
'/dev/ORACLE_sdf' NAME DATA1_003,
'/dev/ORACLE_sdg' NAME DATA1_004,
'/dev/ORACLE_sdh' NAME DATA1_005 ;
Y realizamos las comprobaciones
SELECT GROUP_NUMBER, name, STATE, path, REDUNDANCY from v$asm_disk;
GROUP_NUMBER NAME STATE PATH REDUNDA
------------ ------------- -------- ---------------------- -------
1 DATA_0000 NORMAL /dev/ORACLE_sdb UNKNOWN
2 DATA1_005 NORMAL /dev/ORACLE_sdh UNKNOWN
2 DATA1_004 NORMAL /dev/ORACLE_sdg UNKNOWN
2 DATA1_003 NORMAL /dev/ORACLE_sdf UNKNOWN
2 DATA1_002 NORMAL /dev/ORACLE_sde UNKNOWN
2 DATA1_001 NORMAL /dev/ORACLE_sdd UNKNOWN
select GROUP_NUMBER, NAME, TOTAL_MB, FREE_MB from v$asm_diskgroup;
GROUP_NUMBER NAME TOTAL_MB FREE_MB
------------ --------------- ---------- ----------
1 DATA 1669120 237160
2 DATA1 2048000 2047927
2.- Pasamos los ficheros 'pequeños':
Esto se contempla dado que en el +ASM únicamente tenemos un Diskgroup (DATA1) que contiene TODOS los datos de la BBDD. Que vienen a ser - además de los Datafiles - el init y los Controlfiles
a) INIT (+ASM) del DATA al DATA1 :
SQL > create pfile='/ora11/sndr/init+ASM.ora' from spfile;
File created.
SQL > alter diskgroup DATA1 set attribute 'compatible.asm'='11.2.0.0.0';
Diskgroup altered.
SQL > create spfile='+DATA1' FROM PFILE='/ora11/sndr/init+ASM.ora';
File created.
Comprobamos
ora11@Maquina:> srvctl config asm
ASM home: /ora11/app/oracle/product/grid
ASM listener: LISTENER
Spfile: +DATA1/asm/asmparameterfile/registry.253.842198787
ASM diskgroup discovery string: /dev/ORA*
b) Control Files
SQL > select name from v$controlfile;
NAME
------------------------------------------------------------------
+DATA/mydb/controlfile/current.265.768518747
1.- Cambiamos la ruta de los controls:
alter system set control_files='+DATA/mydb/controlfile/current.265.768518747','+DATA1' scope=spfile sid='*';
2.- Reiniciamos la instancia en modo nomontado
SQL > shutdown immediate;
Base de datos cerrada.
Base de datos desmontada.
Instancia ORACLE cerrada.
SQL > startup nomount;
Instancia ORACLE iniciada.
Total System Global Area 1603411968 bytes
Fixed Size 2226912 bytes
Variable Size 754976032 bytes
Database Buffers 838860800 bytes
Redo Buffers 7348224 bytes
3.- Copiamos el controlfile utilizando RMAN
$ rman nocatalog
RMAN > connect target
RMAN > restore controlfile from '+DATA/mydb/controlfile/current.265.768518747' ;
El output debería ser algo como
Starting restore at 08-NOV-07
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=147 instance=V1021 devtype=DISK
channel ORA_DISK_1: copied control file copy
output filename=+DATA1/v102/controlfile/current.261.637923577
output filename=+DATA1/v102/controlfile/current.269.638120375
Finished restore at 08-NOV-07
4.- Modificamos la ruta del controlfile con el nuevo fichero creado :
alter system set control_files='+DATA/mydb/controlfile/current.265.768518747','+DATA1/dtm_sde/controlfile/current.269.638120375' scope=spfile sid='*';
5.- Paramos y arrancamos de nuevo la BBDD
RMAN > sql 'alter database mount';
RMAN > sql 'alter database open';
6.- Validamos que existen los dos
select name from v$controlfile;
7.- Podemos ya eliminar 1.
SQL > alter system set control_files='+DATA1/mydb/controlfile/current.256.842199449' scope=spfile sid='*';
3.- Cambio de los Datafiles
Esto se hace con RMAN con la BBDD en MOUNT o NOMOUNT. La forma de proceder es conectarnos al RMAN sobre los ficheros de control y ejecutamos lo siguiente:
rman target / nocatalog
run {
backup as copy database format '+DATA1';
}
Una vez que ha ejecutado el backup sobre el otro DISKGROUP, hacemos un switch database para que te pille el nuevo nombre de los ficheros el controlfile
ora11@maquina:~/ruta > rman target / nocatalog
Recovery Manager: Release 11.2.0.2.0 - Production on Mon Mar 17 08:59:36 2014
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to target database: MYDB (DBID=90116375, not open)
using target database control file instead of recovery catalog
RMAN > switch database to copy;
datafile 1 switched to datafile copy "+DATA1/mydb/datafile/system.312.842215435"
[...]
datafile 66 switched to datafile copy "+DATA1/mydb/datafile/ts_visinte_dad.307.842215149"
RMAN >
4.- Recreamos los REDO.
Procedimiento Standard para recrear grupos de REDO en una BBDD. Pendiente 'actualizar' el blog con esta info.
5.- Recreamos el Temporal.
Procedimiento Standard para recrear el temporal en una BBDD. Pendiente 'actualizar' el blog con esta info.
6.- Configuración DB:
Cambiamos - finalmente - la configuración de la BBDD para que figure únicamente 1 Diskgroup:
ora11@MAQUINA:> srvctl config database -d mydb
Database unique name: MYDB
Database name: MYDB
Oracle home: /ora11/app/oracle/product/11.2.0
Oracle user: ora11
Spfile: +DATA/MYDB/spfileMYDB.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Disk Groups: DATA,DATA1
Services:
srvctl modify database -d mydb -p '+DATA1/MYDB/spfileMYDB.ora'
srvctl modify database -d mydb -a 'DATA1'
ora11@MAQUINA:> srvctl config database -d mydb
Database unique name: MYDB
Database name: MYDB
Oracle home: /ora11/app/oracle/product/11.2.0
Oracle user: ora11
Spfile: +DATA/MYDB/spfileMYDB.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Disk Groups: DATA1
Services:
Fuentes
http://mathijsbruggink.wordpress.com/2013/11/13/moving-your-11-2-database-to-a-new-diskgroup-in-asm/
Dismount a diskgroup (siempre con SYSASM)
No hay comentarios:
Publicar un comentario