Migración de Base de Datos a ASM “No Zero Downtime”
Por Joel PérezPublicado en diciembre 2012
Reciban estimados tecnólogos Oracle un cordial saludo. A través del presente artículo, tendremos la oportunidad de visualizar y adentrarnos un poco en el tema de migración o traslado de una base de datos ( BBDD ) Oracle a ASM utilizando RMAN ( Oracle Recovery Manager ).
A partir de la versión de servidor de base de datos 10g contamos con la tecnología de almacenamiento ASM ( Automatic Storage Management ) la cual revoluciono la forma de almacenar y administrar nuestras base de datos.
Anterior al surgimiento de ASM , las opciones típicas de almacenamiento eran filesystems o Raw devices. Los raw devices eran y siguen siendo dispositivos rápidos en acceso, debido a que el sistema operativo no tiene la necesidad de establecer una capa adicional de manejo de volúmenes para trabajar con los mismos.
La desventaja de ellos son varias:
- Las particiones no pueden ser redimensionadas una vez establecidas
- Los archive logs de la base de datos no pueden estar almacenados en raw devices por lo poco flexible de sus constitución
- Si existiese la necesidad de crear nuevos datafiles, se tendría la necesidad de crear nuevos dispositivos raw
- Y en general son poco flexibles para su administración
- Ya no habría necesidad de crear varios puntos de montaje o filesystems
- Los datafiles tendrían mayor protección respecto a su almacenamiento en filesystems
- Tendríamos a la mano nuevas filosofías de arquitectura de storage: solo 2 Diskgroups para todas las bases de datos
- Los problemas de I/O por saturación y cuellos de botellas en puntos de monturas serian elementos del pasado al existir el concepto de “Rebalance” entre ASM Disks, etc
- Estas y 1000 razones mas hay para justificar la migración de nuestras bases de datos de filesystem a ASM
Una estrategia de migración y/o traslado “Zero Downtime” tiene consigo la concepción de llevar a cabo la tarea en el menos tiempo posible ( segundos…, minutos… ) y por lo general esta asociada a empresas con negocios y servicios de alta criticidad que generalmente trabajan 24x7x365. Este mismo articulo lo desarrollaremos para llevar a cabo la misma tarea pero con técnicas que satisfagan la filosofía “Zero Downtime”.
Escenario: se posee una base de datos single instance con todos sus elementos ( Controlfiles, Datafiles, Redo Logs & Archives ) en filesystem y se desea trasladar la misma a ASM. Asumiendo que previamente el software necesario esta instalado, vamos a iniciar la actividad. La técnica utilizada en este articulo es valida para los “Oracle Servers 10g” en adelante.
BBDD Origen: SOURCE
Diskgroups disponibles para la migración: +DATA & +FRA
Reconocimiento de los elementos a trasladar de la BBDD “Source”
Reconocimiento de Datafiles:
oracle@MyjpServer ~]$ export ORACLE_SID=SOURCE [oracle@MyjpServer ~]$ [oracle@MyjpServer ~]$ sqlplus / as sysdba SQL*Plus: Release 11.1.0.7.0 - Production on Sat Jul 28 18:34:39 2012 Copyright (c) 1982, 2008, Oracle. All rights reserved. Connected to: Oracle Database 11g Release 11.1.0.7.0 - 64bit Production With the Real Application Clusters option SQL> select file_name from dba_data_files; FILE_NAME -------------------------------------------------------------------------------- /home/oracle/SOURCE/users01.dbf /home/oracle/SOURCE/undotbs01.dbf /home/oracle/SOURCE/sysaux01.dbf /home/oracle/SOURCE/system01.dbf Reconocimiento de Tempfiles: SQL> select file_name from dba_temp_files; FILE_NAME -------------------------------------------------------------------------------- /home/oracle/SOURCE/temp01.dbfReconocimiento de Controlfiles:
SQL> show parameters control_files NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ control_files string /home/oracle/SOURCE/control01. ctl, /home/oracle/SOURCE/contr ol02.ctl, /home/oracle/SOURCE/ control03.ctl SQL> SQL> select NAME from v$controlfile; NAME --------------------------------- /home/oracle/SOURCE/control01.ctl /home/oracle/SOURCE/control02.ctl /home/oracle/SOURCE/control03.ctl SQL>Reconocimiento de Redo Log files:
SQL> select GROUP#, MEMBER from v$logfile; GROUP# MEMBER ---------- --------------------------------- 3 /home/oracle/SOURCE/redo03.log 2 /home/oracle/SOURCE/redo02.log 1 /home/oracle/SOURCE/redo01.logReubicación de Controlfiles
Realizaremos cambios de parámetros a nivel de spfile ( Server Parameter File ) por lo tanto procederemos a respaldar el mismo para su restaurado en caso de ser necesitado.
Nota: Para respaldar el server parameter file la BBDD debe estar en estado “mount or open “
Estado actual de la BBBD: abierta.
rman target / Recovery Manager: Release 11.1.0.7.0 - Production on Sat Jul 28 18:49:07 2012 Copyright (c) 1982, 2007, Oracle. All rights reserved. connected to target database: SOURCE (DBID=2908208036) RMAN> backup spfile format '/home/oracle/SOURCE/MySpfileBackup.ora'; Starting backup at 28-07-2012 18:49:11 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=147 device type=DISK channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set including current SPFILE in backup set channel ORA_DISK_1: starting piece 1 at 28-07-2012 18:49:12 channel ORA_DISK_1: finished piece 1 at 28-07-2012 18:49:13 piece handle=/home/oracle/SOURCE/MySpfileBackup.ora tag=TAG20120728T184911 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 Finished backup at 28-07-2012 18:49:13 RMAN>Procedemos a cambiar los parámetros (controlfile y db_create_file_dest) a su nueva ruta. Cerraremos la base de datos con opción “immediate” para poseer los Datafiles & Redo Logs en correcta consistencia. La ruta escogida va alineada a las rutas “Oracle Managed Files” para base de datos en ASM. Los nuevos datafiles serán creados por defecto en la ruta especificada por el parámetro db_create_file_dest.
SQL> Alter System set control_files=’+DATA/source/controlfiles/control01.ctl’ scope=spfile; SQL> alter system set db_create_file_dest='+DATA' scope=spfile; SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down.Creación de Directorio en ASM donde se alojara el o los controlfiles
Para el presente caso trabajaremos creando solo 1 controlfile, si se desean crear controlfiles en distintos Diskgroups lo cual es el “best practice”, se podrá llevar a cabo de la misma manera. Se deberán crear los directorios respectivos en los Diskgroups respectivos y se deberá asignar rutas múltiples en el valor del parámetro control_files a nivel de spfile.
Recordemos que esta base de datos esta originalmente creada en filesystem y no posee ninguna relación con los ASM Diskgroups, por lo tanto es necesario crear los directorios de alojamiento de los Controlfiles, Datafiles, Redo Logs y otros. Para algunos de los elementos el procedimiento asociado ( RMAN restore ) los crea automáticamente, para otros no. En el caso del controlfile, el directorio tiene que ser creado.
Nota: para el presente caso estamos trabajando con un Oracle Server 11g R1 el cual posee la misma la misma arquitectura de “homes” a implementarse en ( 10g R1, 10g R2 & 11g R1 ). Dicha arquitectura cuenta con un home para ASM cuyo dueño típicamente es el usuario oracle. Este “home” trabaja de la mano con un “home” de nivel superior ( en escala de “stack” de componentes ) perteneciente al Oracle Server cuyo dueño es el usuario oracle también. Es por ello que establecemos el “home” de ASM a través del mecanismo ( . oraenv ).
Si trabajáramos en 11g R2 el “best practice” será que el “Grid Infraestructure Software” pertenezca al usuario “grid” y el Oracle Server al usuario “oracle”, en caso de estar en esta arquitectura, este paso se realizaría conectado al usuario grid.
Creación de directorios necesarios para poseer finalmente la siguiente ruta: +DATA/SOURCE/controlfiles
[oracle@MyjpServer ~]$ . oraenv ORACLE_SID = [TEST] ? +ASM The Oracle base for ORACLE_HOME=/u01/app/oracle/product/11.1.0/asm1 is /u01/app/oracle [oracle@MyjpServer ~]$ [oracle@MyjpServer ~]$ asmcmd ASMCMD> ASMCMD> cd +DATA ASMCMD> ASMCMD> mkdir SOURCE ASMCMD> ASMCMD> cd SOURCE ASMCMD> ASMCMD> mkdir CONTROLFILES ASMCMD> ASMCMD> cd controlfiles ASMCMD> ASMCMD> pwd +DATA/SOURCE/controlfiles ASMCMD>Restaurado de Controlfiles en ASM
SQL> startup nomount ORACLE instance started. Total System Global Area 680607744 bytes Fixed Size 2162800 bytes Variable Size 180359056 bytes Database Buffers 494927872 bytes Redo Buffers 3158016 bytes SQL> RMAN> restore controlfile from '/home/oracle/SOURCE/control01.ctl'; Starting restore at 28-07-2012 19:12:25 using channel ORA_DISK_1 channel ORA_DISK_1: copied control file copy output file name=+DATA/source/controlfiles/control01.ctl Finished restore at 28-07-2012 19:12:26 RMAN>Visualizando el Controlfile creado
ASMCMD> pwd +DATA/SOURCE/controlfiles ASMCMD> ASMCMD> ls -lt Type Redund Striped Time Sys Name N control01.ctl => +DATA/SOURCE/CONTROLFILE/ current.261.789851545 ASMCMD>Estableciendo en modo “mount” la BBDD
SQL> alter database mount; Database altered. SQL>“Backup as Copy” de la BBDD
SQL> ho rman target / Recovery Manager: Release 11.1.0.7.0 - Production on Sat Jul 28 19:18:08 2012 Copyright (c) 1982, 2007, Oracle. All rights reserved. connected to target database: SOURCE (DBID=2908208036, not open) RMAN> backup as copy database format '+DATA'; Starting backup at 28-07-2012 19:18:28 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=147 device type=DISK channel ORA_DISK_1: starting datafile copy input datafile file number=00001 name=/home/oracle/SOURCE/system01.dbf output file name=+DATA/source/datafile/system.263.789851909 tag=TAG20120728T191829 RECID=1 STAMP=789851918 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15 channel ORA_DISK_1: starting datafile copy input datafile file number=00002 name=/home/oracle/SOURCE/sysaux01.dbf output file name=+DATA/source/datafile/sysaux.264.789851925 tag=TAG20120728T191829 RECID=2 STAMP=789851932 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15 channel ORA_DISK_1: starting datafile copy input datafile file number=00003 name=/home/oracle/SOURCE/undotbs01.dbf output file name=+DATA/source/datafile/undotbs1.268.789851939 tag=TAG20120728T191829 RECID=3 STAMP=789851939 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01 channel ORA_DISK_1: starting datafile copy copying current control file output file name=+DATA/source/controlfile/backup.269.789851941 tag=TAG20120728T191829 RECID=4 STAMP=789851941 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01 channel ORA_DISK_1: starting datafile copy input datafile file number=00004 name=/home/oracle/SOURCE/users01.dbf output file name=+DATA/source/datafile/users.270.789851943 tag=TAG20120728T191829 RECID=5 STAMP=789851942 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01 channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set including current SPFILE in backup set channel ORA_DISK_1: starting piece 1 at 28-07-2012 19:19:03 channel ORA_DISK_1: finished piece 1 at 28-07-2012 19:19:04 piece handle=+DATA/source/backupset/2012_07_28/nnsnf0_tag20120728t191829_0.271.789851943 tag=TAG20120728T191829 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 Finished backup at 28-07-2012 19:19:04 RMAN>Visualizado de Datafiles creados
ASMCMD> cd DATAFILE/ ASMCMD> ASMCMD> ls -lt Type Redund Striped Time Sys Name DATAFILE UNPROT COARSE JUL 28 19:00:00 Y USERS.270.789851943 DATAFILE UNPROT COARSE JUL 28 19:00:00 Y UNDOTBS1.268.789851939 DATAFILE UNPROT COARSE JUL 28 19:00:00 Y SYSTEM.263.789851909 DATAFILE UNPROT COARSE JUL 28 19:00:00 Y SYSAUX.264.789851925 ASMCMD>RMAN Report schema antes de la aplicación de “Switch Database to copy”
RMAN> report schema; Report of database schema for database with db_unique_name SOURCE List of Permanent Datafiles =========================== File Size(MB) Tablespace RB segs Datafile Name ---- -------- -------------------- ------- ------------------------ 1 700 SYSTEM *** /home/oracle/SOURCE/system01.dbf 2 550 SYSAUX *** /home/oracle/SOURCE/sysaux01.dbf 3 30 UNDOTBS1 *** /home/oracle/SOURCE/undotbs01.dbf 4 5 USERS *** /home/oracle/SOURCE/users01.dbf List of Temporary Files ======================= File Size(MB) Tablespace Maxsize(MB) Tempfile Name ---- -------- -------------------- ----------- -------------------- 1 20 TEMP 32767 /home/oracle/SOURCE/temp01.dbf RMAN>“Switch Database to copy”
RMAN> switch database to copy; datafile 1 switched to datafile copy "+DATA/source/datafile/system.263.789851909" datafile 2 switched to datafile copy "+DATA/source/datafile/sysaux.264.789851925" datafile 3 switched to datafile copy "+DATA/source/datafile/undotbs1.268.789851939" datafile 4 switched to datafile copy "+DATA/source/datafile/users.270.789851943" RMAN>RMAN Report schema posterior a la aplicación de “Switch Database to copy”
RMAN> report schema; Report of database schema for database with db_unique_name SOURCE List of Permanent Datafiles =========================== File Size(MB) Tablespace RB segs Datafile Name ---- -------- -------------------- ------- ------------------------ 1 700 SYSTEM *** +DATA/source/datafile/system.263.789851909 2 550 SYSAUX *** +DATA/source/datafile/sysaux.264.789851925 3 30 UNDOTBS1 *** +DATA/source/datafile/undotbs1.268.789851939 4 5 USERS *** +DATA/source/datafile/users.270.789851943 List of Temporary Files ======================= File Size(MB) Tablespace Maxsize(MB) Tempfile Name ---- -------- -------------------- ----------- -------------------- 1 20 TEMP 32767 /home/oracle/SOURCE/temp01.dbf RMAN>Creación de Directorio para Redo Log
ASMCMD> pwd +DATA/source ASMCMD> ASMCMD> mkdir ONLINELOG ASMCMD> ASMCMDSustitución y/o cambios de Redo Logs
En esta base de datos tenemos originalmente 3 grupos de “Redo Logs” ( en filesystem ). El objetivo es crear grupos de redo logs con alojamiento en ASM. Para realizar esta tarea existen diversas técnicas. Para el presente caso lo haremos siguiendo la filosofía de “No Zero Downtime”. De acuerdo a la filosofía, no tendremos restricciones para detener e iniciar la BBDD hasta culminar la tarea. Si estuviésemos trabajando con filosofía “Zero Downtime” aplicaríamos técnicas para establecer nuevos grupos de redo logs con la BBDD en modo “open”.
Estado de la BBDD: “open”
Por estar trabajando en “Single Instance” no será necesario incluir el atributo “thread”. Si dicha técnica se estuviese aplicando para una BBDD en RAC se estableciera el parámetro “thread” para definir la asociación del grupo de Redo Log con el correspondiente “thread” ( thread=1/thread=2, etc )
Adición de Grupos de Redo Logs 4 y 5:
SQL> ALTER DATABASEBorrado del grupo de Redo Log 1: 2 ADD LOGFILE GROUP 4 ('+DATA/source/ONLINELOG/redo04.log') SIZE 50M; Database altered. SQL> ALTER DATABASE 2 ADD LOGFILE GROUP 5 ('+DATA/source/ONLINELOG/redo05.log') SIZE 50M; Database altered.Visualización de grupos de Redo Logs después de la adiciones:
SQL> select GROUP#, MEMBER from V$LOGFILE GROUP# MEMBER ---------- -------------------------------------------------- 3 /home/oracle/SOURCE/redo03.log 2 /home/oracle/SOURCE/redo02.log 1 /home/oracle/SOURCE/redo01.log 4 +DATA/source/onlinelog/redo04.log 5 +DATA/source/onlinelog/redo05.log SQL>Borrado del grupo de Redo Log 1:
SQL> alter database drop logfile group 1;Borrado del grupo de Redo Log 2. El mismo no puede ser removido aun debido a que la operación de redo log group para la BBDD se encuentra apuntando al mismo.
Database altered. SQL> alter database drop logfile group 2; alter database drop logfile group 2 * ERROR at line 1: ORA-01623: log 2 is current log for instance SOURCE (thread 1) - cannot drop ORA-00312: online log 2 thread 1: '/home/oracle/SOURCE/redo02.log'Borrado del grupo de Redo Log 3:
SQL> alter database drop logfile group 3; Database altered. SQL>Visualización de grupos de Redo Logs posterior a las remociones:
SQL> select GROUP#, MEMBER from V$LOGFILE; GROUP# MEMBER ---------- -------------------------------------------------- 2 /home/oracle/SOURCE/redo02.log 4 +DATA/source/onlinelog/redo04.log 5 +DATA/source/onlinelog/redo05.log SQL>Estatus de los mismos. Tal como podemos visualizar. El grupo de redo log 1 se encuentra en “status”:current, con dicho estatus no podrá ser removido. Tenemos que aplicar diversos “switch logfile” para que el mismo se establezca en “status”:inactive y pueda ser removido ( esto aplica si la BBDD se encuentra abierta ), si la BBDD esta cerrada solo bastara que el grupo de redo log “current” sea el 4 o 5:
SQL> select GROUP#, STATUS, ARCHIVED from v$log; GROUP# STATUS ARC ---------- ---------------- --- 2 CURRENT NO 4 UNUSED YES 5 UNUSED YES SQL>Realizaremos los “switchs” correspondientes:
SQL> alter system switch logfile; System altered. SQL> select GROUP#, STATUS, ARCHIVED from v$log; GROUP# STATUS ARC ---------- ---------------- --- 2 ACTIVE NO 4 CURRENT NO 5 UNUSED YES SQL> alter system switch logfile; System altered. SQL> select GROUP#, STATUS, ARCHIVED from v$log; GROUP# STATUS ARC ---------- ---------------- --- 2 ACTIVE NO 4 ACTIVE NO 5 CURRENT NOTal cual fue el objetivo, el grupo de Redo log “current” actual es el 5. Podríamos haber escogido el 4 también. Lo importante es que no fuese el grupo de redo log 2, debido a que removeremos el mismo. Procederemos a cerrar la BBDD, establecimiento en modo “mount” de la misma y la remoción final del grupo de Redo Log 2:
SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> startup mount ORACLE instance started. Total System Global Area 680607744 bytes Fixed Size 2162800 bytes Variable Size 188747664 bytes Database Buffers 486539264 bytes Redo Buffers 3158016 bytes Database mounted. SQL> SQL> alter database drop logfile group 2; Database altered. SQL> select GROUP#, STATUS, ARCHIVED from v$log; GROUP# STATUS ARC ---------- ---------------- --- 5 CURRENT NO 4 INACTIVE NO SQL> SQL> alter database open; Database altered. SQL> alter system switch logfile; System altered. SQL> r 1* alter system switch logfile System altered. SQL> r 1* alter system switch logfile System altered.En este punto ya llevamos a cabo el objetivo de establecer operativamente solo grupos de Redo Logs en ASM:
SQL> select GROUP#, STATUS, ARCHIVED from v$log; GROUP# STATUS ARC ---------- ---------------- --- 4 CURRENT NO 5 INACTIVE NO SQL>Visualizando Datafiles & Controlfile en ASM
Resumen del trabajo realizado hasta el momento:
SQL> select file_name from dba_data_files; FILE_NAME -------------------------------------------------------------------------------- +DATA/source/datafile/users.270.789851943 +DATA/source/datafile/undotbs1.268.789851939 +DATA/source/datafile/sysaux.264.789851925 +DATA/source/datafile/system.263.789851909 SQL> SQL> show parameters control_files NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ control_files string +DATA/source/controlfiles/cont rol01.ctl SQL>Trabajo sobre Tempfiles
Nuestra BBDD posee en este momento su “Temporary Tablespace” temp con datafile en filesystem. El objetivo es establecer el mismo en ASM. Para ellos realizaremos lo siguiente:
SQL> select file_name from dba_temp_files; FILE_NAME -------------------------------------------------------------------------------- /home/oracle/SOURCE/temp01.dbf SQL>Creación de Tablespace temporal nuevo “temp_tbsp”:
SQL> create temporary tablespace temp_tbsp 2 tempfile '+DATA' size 100m;
Establecimiento del Tablespace temporal “temp_tbsp” como tablespace por defecto de la BBDD:
SQL> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp_tbsp; Database altered.Remoción del Tablespace temporal “temp”:
SQL> drop tablespace temp including contents and datafiles; Tablespace dropped.Objetivo alcanzado, poseer un nuevo tablespace temporal con almacenamiento en ASM:
SQL> select file_name from dba_temp_files; FILE_NAME -------------------------------------------------------------------------------- +DATA/source/tempfile/temp_tbsp.275.789854493 SQL>Cambio de la ruta para el Flash Recovery Area
Establecer la ruta de del Flash Recovery Area a un Diskgroup destinado para almacenar: Backups, Archive Redo Logs, y demás componentes y elementos de la BBDD.
SQL> show parameter db_create_file_dest NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_create_file_dest string +FRAChoosing a Location for the Flash Recovery Area
Oracle® Database Backup and Recovery Basics
10g Release 2 (10.2)
http://docs.oracle.com/cd/B19306_01/backup.102/b14192/setup005.htm
Establecimiento de spfile en ASM Diskgroup
[oracle@MyjpServer ~]$ rman target / Recovery Manager: Release 11.1.0.7.0 - Production on Sun Aug 5 23:56:07 2012 Copyright (c) 1982, 2007, Oracle. All rights reserved. connected to target database: SOURCE (DBID=2908920228) RMAN> run { BACKUP AS BACKUPSET SPFILE; 2> RESTORE SPFILE TO '+DATA/SOURCE/spfilesource.ora'; 3> } Starting backup at 05-08-2012 23:57:45 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=140 device type=DISK channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set including current SPFILE in backup set channel ORA_DISK_1: starting piece 1 at 05-08-2012 23:57:46 channel ORA_DISK_1: finished piece 1 at 05-08-2012 23:57:47 piece handle=+FRA/SOURCE/backupset/2012_08_05/o1_mf_nnsnf_TAG20120805T235746_81yq6tkl_.bkp tag=TAG20120805T235746 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 Finished backup at 05-08-2012 23:57:47 Starting restore at 05-08-2012 23:57:47 using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile backup set restore channel ORA_DISK_1: restoring SPFILE output file name=+DATA/SOURCE/spfilesource.ora channel ORA_DISK_1: reading from backup piece +FRA/SOURCE/backupset/2012_08_05/ o1_mf_nnsnf_TAG20120805T235746_81yq6tkl_.bkp channel ORA_DISK_1: piece handle=+FRA/SOURCE/backupset/2012_08_05/ o1_mf_nnsnf_TAG20120805T235746_81yq6tkl_.bkp tag=TAG20120805T235746 channel ORA_DISK_1: restored backup piece 1 channel ORA_DISK_1: restore complete, elapsed time: 00:00:03 Finished restore at 05-08-2012 23:57:50 RMAN>Visualización de spfile generado en ASM Diskgroup
[oracle@MyjpServer ~]$ . oraenv ORACLE_SID = [TEST] ? +ASM The Oracle base for ORACLE_HOME=/u01/app/oracle/product/11.1.0/asm1 is /u01/app/ oracle [oracle@MyjpServer ~]$ [oracle@MyjpServer ~]$ asmcmd ASMCMD> ASMCMD> cd data ASMCMD> ASMCMD> cd source ASMCMD> ASMCMD> ls -lt Type Redund Striped Time Sys Name N ONLINELOG/ N CONTROLFILES/ Y CONTROLFILE/ N spfilesource.ora => +DATA/ DB_UNKNOWN/PARAMETERFILE/ SPFILE.261.790559869 ASMCMD>Ajuste de archivo initsource.ora
[oracle@MyjpServer ~]$ rm $ORACLE_HOME/dbs/spfileSOURCE.ora [oracle@MyjpServer ~]$ cd $ORACLE_HOME/dbs/ [oracle@MyjpServer ~]$ echo "SPFILE=+DATA/SOURCE/PARAMETERFILE/spfilesource.ora" > initsource.oraDe esta manara la instancia tomara como primera opción el “Parameter File” de nuestra BBDD, el cual apunta internamente al spfile que se encuentra en ASM.
“No Zero Downtime”
El presente artículo lleva a cabo el traslado de una BBDD de filesystem a ASM. Los pasos son estándar para bases de datos de cualquier tamaño. La técnica poseerá en no disponibilidad la BBDD mientras se apliquen lo procedimientos; mientras mayor sea la capacidad de la misma, mayor será el tiempo de “Downtime” para la tarea, es por ello que al mismo lo hemos denominado, un traslado con filosofía “No Zero Downtime”, para el próximo articulo llevaremos a cabo la misma tarea pero con técnicas para satisfacer un traslado con proposito “Zero Downtime”.
Aplicaciones y uso
Las técnicas para trasladar y/o alojar elementos de una base de datos en filesystem a ASM son llevados a cabo en situaciones como las siguientes:
- Traslado de BBDD “Single Instance” de filesystem a BBDD “Single Instance” en ASM
- Traslado de BBDD “Single Instance” de filesystem a BBDD “RAC” en ASM/OCFS/Certified NFS
- Poseer una copia de BBDD en ASM o locación diversa para recuperaciones rápidas de datafiles
- Poseer una copia de BBDD en ASM o locación diversa para recuperaciones rápidas de la BBDD completa
- Y muchos otros casos mas
No hay comentarios:
Publicar un comentario