Como mover un controlfile de filesystem hacia ASM
Tuve como consultor las tareas de normalizar politicas, standares y otros elementos de seguridad.
La semana pasada, auditando , me tope con una base que estaba en ASM pero que el controlfile se encontraba en filesystem.
De ello es que acerco esta experiencia ya que el DBA que se econtraba no había trabajado nunca con la tecnologia ASM y al levantar la base despues de la instalacion por medio de scripts dio por sentado que esto estaba funcionando sin problemas.
Primero busque la ubicacion del controlfile y comence con mi tarea de migracion de filesytem para ASM.
SQL> sho parameter control NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ control_file_record_keep_time integer 7 control_files string /u01/app/oracle/product/10.2.0 /db_ASDEF/dbs/cntrlASDEF.dbf
Luego baje la base de datos y la levante en modo nomount.
SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> SQL> startup nomount ORACLE instance started. Total System Global Area 1610612736 bytes Fixed Size 2182600 bytes Variable Size 396145208 bytes Database Buffers 1207959552 bytes Redo Buffers 4325376 bytes
Ahora por medio del RMAN voy a mover el controlfile hacia el ASM, pasando como path el controlfile originario en filesystem.
[oracle@st241006lx dbs]$ rman target / Recovery Manager: Release 10.2.0.4.0 - Production on Fri Oct 15 16:52:04 2010 Copyright (c) 1982, 2007, Oracle. All rights reserved. connected to target database: ASDEF (not mounted) RMAN> restore controlfile to '+DATA' from '/u01/app/oracle/product/10.2.0/db_ASDEF/dbs/cntrlASDEF.dbf'; Starting restore at 15-OCT-10 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=81 devtype=DISK channel ORA_DISK_1: copied control file copy Finished restore at 15-OCT-10 RMAN>
Luego de haber realizado el restore, verifico en el ASM por linea de comandos si se encuentra el archivo generado.
$ asmcmd ASMCMD> cd DATA ASMCMD> ls ASDEF/ ASMCMD> cd +DATA/ASDEF/CONTROLFILE ASMCMD> ls current.268.732473601 ASMCMD> pwd +DATA/ASDEF/CONTROLFILE ASMCMD> exit
Como trabajo con spfile, es preciso que le pase el nuevo path donde se encuentra el controlfile con su nuevo nombre.
SQL> alter system set control_files='+DATA/ASDEF/CONTROLFILE/current.268.732473601' scope=spfile; System altered.
Bajo la instancia nuevamente.
SQL> shutdown immediate ORA-01507: database not mounted ORACLE instance shut down.
Cambio de Nombre el antiguo controlfile para que no sea leido en caso de hacer mal algún paso (luego sera eliminado).
[oracle@st241006lx bin]$ cd /u01/app/oracle/product/10.2.0/db_ASDEF/dbs [oracle@st241006lx dbs]$ ls cntrlASDEF.dbf hc_ASDEF.dat initdw.ora initASDEF.ora init.ora lkASDEF orapwASDEF [oracle@st241006lx dbs]$ mv cntrlASDEF.dbf cntrlASDEF.dbf.OLD
Y levanto la base como paso final, verificando con que controlfile levanto.
SQL> startup ORACLE instance started. Total System Global Area 1610612736 bytes Fixed Size 2182600 bytes Variable Size 396145208 bytes Database Buffers 1207959552 bytes Redo Buffers 4325376 bytes Database mounted. Database opened. SQL> sho parameter control NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ control_file_record_keep_time integer 7 control_files string +DATA/ASDEF/controlfile/curre nt.268.732473601
Es el mismo procedimiento para migrar de ASM a filesystem?
LikeLike
Eso lo podes ver en este articulo del Blog
https://burzaco.wordpress.com/2009/07/24/migrar-datafiles-de-filesystem-hacia-asm/
LikeLike