MIGRACION ORACLE SINGLE INSTANCE TO RAC INSTANCE 1
Índice Objetivo... 3 Información... 3 Caso de uso... 3 Configuracion de Archivo XML para la Migracion... 4 Procedimiento Migracion... 6 Verificaciones... 6 A nivel de cluster:... 6 A nivel de Storage:... 7 A nivel Instancias/Base de datos:... 8 Conclusión... 9 2
Objetivo Documentar la realización de la migración de una instancia(single) de base de datos Oracle a una instancia de base de datos Oracle en cluster(rac) Información Se documenta a continuación el proceso de migración de una base de datos creada en motor Oracle 11.2.0.3 Caso de uso Existen 3 metodos para realizar la migración de una base de datos Single Instance a una Base de datos de Cluster: Herramienta grafica DBCA, basada en maquina virtual de JAVA Oracle Enterprise Manager Binario RCONFIG En este caso se utilizo la tercer opción Servidor nodo1: oratest1 IP: 1xxxxxxxxxx Sistema Operativo: Linux Red-Hat 5.7 x86_64 Memoria RAM: 4GB Storage-FileSystems: Local + ASM Base de datos: PAKI Motor de base de datos: 11.2.0.3 Grid: 11.2.0.3 Servidor nodo2: oratest2 IP: 1xxxxxxxxx Sistema Operativo: Linux Red-Hat 5.7 x86_64 Memoria RAM: 4GB Storage-Filesystems: : Local + ASM Base de datos: PAKI Motor de base de datos: 11.2.0.3 Grid: 11.2.0.3 Ubicación de los datafiles de la base de datos Single Instance PAKI(disco local): [oracle@oratest1 ~]$ ls -ltr /u02/oradata/paki/ total 3672688 -rw-r----- 1 oracle oinstall 524296192 ago 26 15:29 temp01.dbf -rw-r----- 1 oracle oinstall 108797952 sep 24 11:10 users01.dbf -rw-r----- 1 oracle oinstall 503324672 sep 24 11:10 undotbs01.dbf -rw-r----- 1 oracle oinstall 796925952 sep 24 11:10 system01.dbf -rw-r----- 1 oracle oinstall 912269312 sep 24 11:10 sysaux01.dbf -rw-r----- 1 oracle oinstall 104865792 sep 24 11:10 GNSIT_IDX01.DBF -rw-r----- 1 oracle oinstall 524296192 sep 24 11:10 GNSIT_DATA01.DBF -rw-r----- 1 oracle oinstall 104865792 sep 24 11:10 example01.dbf -rw-r----- 1 oracle oinstall 10076160 sep 24 11:19 control02.ctl -rw-r----- 1 oracle oinstall 10076160 sep 24 11:19 control01.ctl -rw-r----- 1 oracle oinstall 52429312 sep 24 11:20 redo02.log -rw-r----- 1 oracle oinstall 52429312 sep 24 11:20 redo01.log -rw-r----- 1 oracle oinstall 52429312 sep 24 11:20 redo03.log 3
Configuracion de Archivo XML para la Migracion Se utilizo el método RCONFIG para migrar la base de datos single Instance PAKI a Base de datos de instancia RAC, para ello se debe configurar un archivo XML, que viene por defecto en el Oracle_home, en este caso: /u01/app/oracle/product/assistants/rconfig/samplexmls/converttorac_adminmanaged.xml Se realiza una copia del archivo xml para no modificar el original: oracle@oratest1:~> cp ConvertToRAC_AdminManaged.xml ConvertToRAC_PAKI.xml Se modifica el contenido del archivo xml como se muestra a continuación: oracle@oratest1:~> vi ConvertToRAC_PAKI.xml <?xml version="1.0" encoding="utf-8"?> <n:rconfig xmlns:n="http://www.oracle.com/rconfig" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.oracle.com/rconfig rconfig.xsd"> <n:converttorac> <!-- Verify does a precheck to ensure all pre-requisites are met, before the conversion is attempted. Allowable values are: YES NO ONLY --> <n:convert verify="yes"> 1 <!--Specify current OracleHome of non-rac database for SourceDBHome --> <n:sourcedbhome>/u01/app/oracle/product/11.2.0/db_1</n:sourcedbhome> 2 <!--Specify OracleHome where the rac database should be configured. It can be same as SourceDBHome --> <n:targetdbhome>/u01/app/oracle/product/11.2.0/db_1</n:targetdbhome> 3 <!--Specify SID of non-rac database and credential. User with sysdba role is required to perform conversion --> <n:sourcedbinfo SID="PAKI"> 4 <n:credentials> <n:user>sys</n:user> <n:password>managed</n:password> 5 <n:role>sysdba</n:role> </n:credentials> </n:sourcedbinfo> <!--Specify the list of nodes that should have rac instances running for the Admin Managed Cluster Database. LocalNode should be the first node in this nodelist. --> <n:nodelist> <n:node name="oratest1"/> 6 <n:node name="oratest2"/> </n:nodelist> <!--Specify RacOneNode along with servicename to convert database to RACOne Node --> <!--n:raconenode servicename="salesrac1service"/--> <!--Instance Prefix tag is optional starting with 11.2. If left empty, it is derived from db_unique_name.--> <n:instanceprefix>paki</n:instanceprefix> 7 <!-- Listener details are no longer needed starting 11.2. Database is registered with default listener and SCAN listener running from Oracle Grid Infrastructure home. --> <!--Specify the type of storage to be used by rac database. Allowable values are CFS ASM. The non-rac database should have same storage type. ASM credentials are no needed for conversion. --> <n:sharedstorage type="asm"> 8 <!--Specify Database Area Location to be configured for rac database.if this field is left empty, current storage will be used for rac database. For CFS, this field will have directory path. --> <n:targetdatabasearea>+data</n:targetdatabasearea> 9 <!--Specify Fast Recovery Area to be configured for rac database. If this field is left empty, current recovery area of non-rac database will be configured for rac database. If current database is not using recovery Area, the resulting rac database will not have a recovery area. --> <n:targetflashrecoveryarea></n:targetflashrecoveryarea> </n:sharedstorage> </n:convert> </n:converttorac> </n:rconfig> 4
1.- Convert Verify: Este tag tiene 3 opciones: YES=Ejecuta una verificación de los pre-requisitos antes de comenzar con la migración NO=Comienza la migración directamente sin ejecutar la verificación de pre-requisitos ONLY=No ejecuta la migración, solo lanza la verificación de los prerequisitos 2.- SourceDBHome: se debe ingresar el OracleHome de la base de datos Single Instance 3.- TargetDBHome: Se debe ingresar el OracleHome de la base de datos a migrar a RAC(en este caso es el mismo Oracle Home, pero puede ser un OracleHome distinto) 4.- SourceDBInfo: SID de la base de datos single Instance 5.- User,Password,role: usuario admin de la base de datos single Instance(en este caso sys), password, y rol sysdba 6.- Node Name: un tag por cada nodo del cluster(en este caso son 2 nodos: oratest1 y oratest2) 7.- InstancePrefix: Nombre de la base de datos que se levantara en el cluster(a partir de 11.2, si no se deja el tag vacio, toma el nombre de DB_UNIQUE_NAME de la base de datos Single instance) 8.- SharedStrorage: tipo de Storage compartido al que se van a migrar los datafiles de la base de datos(en este caso ASM) 9.- TargetDatabaseArea: nombre del GroupDisk montado en ASM(en este caso +DATA) 5
Procedimiento Migracion Para realizar la migración, solo se ejecuta el binario rconfig seguido del archivo xml configurado en el punto anterior: oracle@oratest1:~>/u01/app/oracle/product/11.2.0/db_1/bin/rconfig ConvertToRAC_PAKI.xml Este binario ejecutara la migración de la base de datos Single Instance PAKI, una fez finalizada la migración, quedan levantadas las instancias PAKI1, PAKI2 en cada uno de los nodos Verificaciones Verificamos entonces la existencia de la base de datos en RAC, tanto a nivel de cluster, como a nivel de Storage y a nivel instancia: A nivel de cluster: [root@oratest1 ~]# clusterstat (clusterstat = alias configurado en el profile: crsctl stat res t) -------------------------------------------------------------------------------- NAME TARGET STATE SERVER STATE_DETAILS ------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.data.dg ora.fra.dg ora.listener.lsnr ora.asm Started Started ora.gsd OFFLINE OFFLINE oratest1 OFFLINE OFFLINE oratest2 ora.net1.network ora.ons ora.registry.acfs -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.listener_scan1.lsnr 1 ora.listener_scan2.lsnr 1 ora.cvu 1 ora.oc4j 1 ora.oratest1.vip 1 ora.oratest2.vip 1 ora.paki.db 1 Open 2 Open ora.sayira.db 1 OFFLINE OFFLINE 2 OFFLINE OFFLINE ora.scan1.vip 1 ora.scan2.vip 1 6
Se pueden observar todos los servicios de cluster levantados y el servicio ora.paki.db tiene las 2 instancias en cada uno de los nodos online y con estado open.- A nivel de Storage: Nos logueamos con el usuario grid [root@oratest1 ~]# su - grid Ingresamos a la consola de ASM y verificamos los discos montados, y el contenido del group disk data validando la ubicación de los datafiles de la base de datos PAKI: [grid@oratest1 ~]$ asmcmd ASMCMD> lsdg State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED EXTERN N 512 4096 1048576 35390 23272 0 23272 0 Y DATA/ MOUNTED EXTERN N 512 4096 1048576 35326 31601 0 31601 0 N FRA/ ASMCMD> ls -l State Type Rebal Name MOUNTED EXTERN N DATA/ MOUNTED EXTERN N FRA/ ASMCMD> cd DATA ASMCMD> ls -l Type Redund Striped Time Sys Name Y PAKI/ Y SAYIRA/ Y oratest-rac/ N sp_paki_backup => +DATA/PAKI/BACKUPSET/2013_09_24/nnsnf0_TAG20130924T111628_0.388.826974989 N spfilepaki.ora => +DATA/PAKI/PARAMETERFILE/spfile.389.826975025 ASMCMD> cd PAKI ASMCMD> ls -l Type Redund Striped Time Sys Name Y BACKUPSET/ Y CONTROLFILE/ Y DATAFILE/ Y ONLINELOG/ Y PARAMETERFILE/ Y TEMPFILE/ ASMCMD> cd DATAFILE ASMCMD> ls -l Type Redund Striped Time Sys Name DATAFILE UNPROT COARSE SEP 24 11:00:00 Y EXAMPLE.386.826974957 DATAFILE UNPROT COARSE SEP 24 11:00:00 Y GNSIT_DATA.383.826974817 DATAFILE UNPROT COARSE SEP 24 11:00:00 Y GNSIT_IDX.387.826974971 DATAFILE UNPROT COARSE SEP 24 11:00:00 Y SYSAUX.381.826974651 DATAFILE UNPROT COARSE SEP 24 11:00:00 Y SYSTEM.382.826974743 DATAFILE UNPROT COARSE SEP 24 11:00:00 Y UNDOTBS1.384.826974883 DATAFILE UNPROT COARSE SEP 24 11:00:00 Y UNDOTBS2.398.826975547 DATAFILE UNPROT COARSE SEP 24 11:00:00 Y USERS.385.826974941 ASMCMD> Se pueden observar los datafiles de la base de datos PAKI, migrados al Storage ASM 7
A nivel Instancias/Base de datos: Nos conectamos a la instancia de la base de datos PAKI1 oracle@oratest1:~>export ORACLE_SID=PAKI1 oracle@oratest1:~>sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Tue Sep 24 14:23:11 2013 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0-64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options SQL> SQL> SQL> select instance_name from v$instance; INSTANCE_NAME ---------------- PAKI1 SQL> select name from v$database; NAME --------- PAKI SQL> select tablespace_name,file_name from dba_data_files; TABLESPACE_NAME FILE_NAME ------------------------------ -------------------------------------------------- EXAMPLE +DATA/paki/datafile/example.386.826974957 USERS +DATA/paki/datafile/users.385.826974941 UNDOTBS1 +DATA/paki/datafile/undotbs1.384.826974883 SYSAUX +DATA/paki/datafile/sysaux.381.826974651 SYSTEM +DATA/paki/datafile/system.382.826974743 GNSIT_DATA +DATA/paki/datafile/gnsit_data.383.826974817 GNSIT_IDX +DATA/paki/datafile/gnsit_idx.387.826974971 UNDOTBS2 +DATA/paki/datafile/undotbs2.398.826975547 8 rows selected. SQL> Se observan los datos de la instancia, de la base de datos y de los datafiles(ya migrados a ASM +DATA) 8
Conclusión Si bien se puede utilizar cualquiera de los 3 metodos mencionados al principio del documento, para este método utilizado se debe tener en cuenta la configuración del archivo XML, luego el binario rconfig realiza la migración de forma rápida(esto depende de la configuración del hardware), con esto ya tenemos migrada una base de datos Oracle Single Instance a una base de datos Oracle en Cluster(RAC).- Tiempo en realizar la migración de la base de datos (3.4GB): 12 minutos.- 9