jueves, 16 de abril de 2015

Oracle 12c : Upgrade a Oracle 12c de Infraestructura Grid

Después de haber explicado la administración de la Arquitectura Multitenant podemos poner en práctica lo expuesto en artículos anteriores y realizar un Upgrade a Oracle 12c.

En este articulo explicare paso a paso como realizar un Upgrade de la Infraestructura Grid a Oracle 12c.
Para este ejemplo utilizaré el motor de base de datos y de Infraestructura Grid en versión 11.2.0.3. Esta arquitectura está  sobre un servidor con Oracle Linux 6.

Antes de entrar a la explicar los pasos para el upgrade quiero responder algunas preguntas que me hice yo mismo cuando comenzaba con el upgrade a Oracle 12c
  • ¿Por qué tengo que hacer upgrade?
  • ¿Voy a ejecutar un Upgrade o una Migración?
  • ¿Puedo hacer Upgrade directo a Oracle 12c?



¿Por qué tengo que hacer Upgrade?

Es la primera pregunta que se me vino a la cabeza y estoy seguro que también muchos han pensado lo mismo. Y las respuestas principales pueden ser:

1. Nuevas Funcionalidades 
Poder hacer uso de las nuevas funcionalidades de la base de datos.  Estas nuevas funcionalidades ayudan a que la administración y uso de la base de datos sea mucho más sencillo y con mucho mas valor para el negocio.

2.  Performance.
Con cada nueva versión de base de datos, el optimizador va mejorando su funcionalidad de manera exponencial.  Cada vez tiene más datos y herramientas para poder obtener mejores planes de ejecución, lo que lleva a una mejor Performance.

3. Corrección de Errores (Bugs)
Como todo sistema, Oracle también puede presentar errores de fabrica.  A estos errores les llamamos comúnmente Bugs.  Oracle está constantemente tratando de solucionar estos errores a través de parches individuales o Patch sets. 
Con una nueva versión los errores, de versiones anteriores, ya han sido solucionados; esto disminuye la probabilidad de sufrir de Bugs en la herramienta.

4. Soporte (Para mí,  la más importante)
Por favor presten atención al siguiente cuadro:




















Este cuadro muestra las fechas de soporte por cada versión de base de datos. 
Como pueden observar, versiones anteriores como 9i o 10g ya finalizaron su tiempo de soporte hace muchos años atrás.  No solo eso, la versión 11gR2 también ya ha finalizado su tiempo de soporte el mes de Enero del 2015.   Puedo asegurar entonces que el 100% de nuestras bases de datos ya no tienen soporte a la fecha actual. 

Pero tranquilos, no se alarmen. Que no exista soporte para la versión 11gR2 quiere decir; que si algún cliente encuentra un Bug en el motor 11g que Oracle no haya corregido antes, este no podrá ser corregido por Oracle.   Errores pasados pueden ser solucionados con parches ya liberados con anterioridad.

Siempre está la opción de adquirir el Soporte Extendido o Sostenido pero, créanme, es bastante costoso.


¿Voy a ejecutar un Upgrade o una Migración?

Con esta pregunta quiero distinguir las diferencias entre Upgrade y Migración.

Upgrade

Un Upgrade de base de datos se define como el proceso de modificar el diccionario de datos para que pueda ser compatible con la nueva versión, en este caso Oracle 12c.
Normalmente las acciones dentro de un Upgrade involucran adición, modificación o eliminación de:
  • Columnas en las tablas del diccionario de datos.
  • Paquetes y procedimientos
  • Roles y Privilegios.
En un Upgrade la data de la base de datos no es modificada, es por eso que el tamaño de la base de datos no es un impacto para el tiempo del upgrade.
La complejidad del upgrade está en el tipo de Hardware donde se encuentra, la configuración y versión de la base datos.

Migración

El proceso de migración implica aplicar diferentes tipos de cambios sobre la base de datos. No solo de versión sino también:
  • Servidor
  • Sistema Operativo
  • Character Set
  • Storage y Otros.
Normalmente la migración implica el movimiento o modificación de la data dentro de la base de datos.  En este caso, el tamaño de la base de datos si es un impacto importante para el tiempo de migración.

En este ejercicio lo que vamos a hacer es un UPGRADE, de una versión ya instalada, a Oracle 12c.


¿ Puedo hacer un Upgrade directo a Oracle 12c?

Esta respuesta va a depender mucho de que versión de base de datos tengan instalada.
Se puede hacer Upgrade directo desde las siguientes versiones:

Oracle Release
Oracle Patchset
Oracle 10g
10.2.0.5
Oracle 11g R1
11.1.0.7
Oracle 11g R2
11.2.0.2 y superiores

Si la versión actual de la base de datos no se encuentra entre las versiones indicadas en el cuadro, no se podrá realizar un Upgrade directo a Oracle 12c.  Para estos casos es necesario realizar un paso previo de actualización a cualquier de las versiones mostradas.

El siguiente diagrama resumen los pasos a tomar dependiendo la versión que la base de datos tiene.





















Si se desea realizar upgrade directamente a la versión Oracle 12c sin encontrarse en las versiones bases, es posible utilizar otros procedimientos como:
  • Transport Tablespace.
  • Export/Import Datapump.
  • Export/Import Original
=========================================================================

Empezamos el ejercicio con el Upgrade de la Infraestructura Grid a Oracle 12c.
Siempre recomiendo que se haga este ejercicio primero en un ambiente de Test para poder realizar todo tipo de pruebas.


UPGRADE  de INFRAESTRUCTURA GRID a ORACLE 12c

Paso 1: Preparamos el servidor para poder instalar la Infraestructura Grid Oracle 12c.
Estos pasos pueden encontrarlos con detalle en mi post sobre Instalación de la Infraestructura Grid 12c.  Aquí les dejo el link


Paso 2: Desde una sesión VNC lanzamos el instalador de la Infraestructura Grid 12c.

[oracle@upgrade12c Instaladores]$ cd grid/
[oracle@upgrade12c grid]$ ./runInstaller
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB.   Actual 1874 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 3070 MB    Passed
Checking monitor: must be configured to display at least 256 colors.    Actual 16777216    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2015-04-14_07-51-34PM. Please wait ...[oracle@upgrade12c grid]$


Paso 3: Como nuestro servidor no tendrá conexión a Internet u Oracle Support. Elegimos la opción Skip software updates
























Paso 4: Como esta instalación es para un Upgrade a Oracle 12c. Elegimos la opción Upgrade Oracle Grid Infraestructure or Oracle Automatic Storage Management
























Paso 5: Seleccionamos el idioma a instalar.
























Paso 6: Configuramos los grupos de sistema Operativo para cada función a ejecutar en el ASM de la nueva Infraestructura Grid 12c.
























Paso 7: Definimos los directorios ORACLE_BASE y ORACLE_HOME.
El ORACLE_BASE se recomienda ser el mismo que la versión Oracle 11g ya instalada.
























Paso 8 (Nuevo en Oracle 12c): En Oracle 12c tenemos la nueva opción de poder configurar el password del oot o credenciales para el sudo.  De esta manera que se puede ejecutar los scripts de instalación finales sin necesidad de que lo ejecute el administrador del Sistema Operativo.

Para este caso como se trata de un upgrade de la Infraestructura Grid, el script que se ejecuta de manera automática es: rootupgrade.sh
























Paso 9: Revisamos si existe algún pre-requisito faltante.
























Paso 10: Revisamos la configuración seleccionada antes de la instalación.
























Paso 11: Para los que no configuraron el paso 8, van a tener que lanzar manualmente el script rootupgrade.sh con el usuario root.





















Antes de lanzar el script con el usuario root, se recomienda bajar todas las bases de datos que se conectan a la Infraestructura Grid.  Para mi ejemplo bajo la base de datos 11gR2 ORCL.

SQL*Plus: Release 11.2.0.3.0 Production on Thu Apr 16 00:13:14 2015

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, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

Cuando se ejecuta el script rootupgrade.sh se  realiza la tarea de desactivación de la Infraestructura Grid versión 11g y activación de la versión 12c.

[root@upgrade12c ~]# /u01/app/oracle/product/12.1.0/grid/rootupgrade.sh
Performing root user operation for Oracle 12c

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/12.1.0/grid

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The file "dbhome" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]:
The file "oraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]:
The file "coraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]:

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Using configuration parameter file: /u01/app/oracle/product/12.1.0/grid/crs/install/crsconfig_params

ASM Configuration upgraded successfully.

Creating OCR keys for user 'oracle', privgrp 'oinstall'..
Operation successful.
LOCAL ONLY MODE
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
CRS-4664: Node upgrade12c successfully pinned.
2015/04/15 23:49:20 CLSRSC-329: Replacing Clusterware entries in file 'oracle-ohasd.conf'

2015/04/15 23:53:01 CLSRSC-329: Replacing Clusterware entries in file 'oracle-ohasd.conf'

upgrade12c     2015/04/15 23:58:02     /u01/app/oracle/product/12.1.0/grid/cdata/upgrade12c/backup_20150415_235802.olr

upgrade12c     2015/03/13 12:25:38     /u01/app/oracle/product/11.2.0/grid/cdata/upgrade12c/backup_20150313_122538.olr
2015/04/15 23:59:15 CLSRSC-327: Successfully configured Oracle Grid Infrastructure for a Standalone Server


Paso 12: Finalizamos la instalación de la Infraestructura Grid 12c.
























Paso 13: Subimos las bases de datos, si aun no se han activado.

SQL> startup
ORACLE instance started.

Total System Global Area 1014657024 bytes
Fixed Size                  2234680 bytes
Variable Size             335546056 bytes
Database Buffers          671088640 bytes
Redo Buffers                5787648 bytes
Database mounted.
Database opened.

Paso 14: Validamos todos los recursos administrador por la Infraestructura Grid.

[oracle@upgrade12c upgrade12c]$ crsctl status resource -t
-------------------------------------------------------------------------
Name           Target  State        Server                   State details
-------------------------------------------------------------------------
Local Resources
-------------------------------------------------------------------------
ora.DG_DATA.dg
               ONLINE  ONLINE       upgrade12c               STABLE
ora.DG_FRA.dg
               ONLINE  ONLINE       upgrade12c               STABLE
ora.LISTENER.lsnr
               ONLINE  ONLINE       upgrade12c               STABLE
ora.asm
               ONLINE  ONLINE       upgrade12c               Started,STABLE
ora.ons
               OFFLINE OFFLINE      upgrade12c               STABLE
-------------------------------------------------------------------------
Cluster Resources
-------------------------------------------------------------------------
ora.cssd
      1        ONLINE  ONLINE       upgrade12c               STABLE
ora.diskmon
      1        OFFLINE OFFLINE                               STABLE
ora.evmd
      1        ONLINE  ONLINE       upgrade12c               STABLE
ora.orcl.db
      1        ONLINE  ONLINE       upgrade12c               Open,STABLE
-------------------------------------------------------------------------



Problemas Post-Upgrade de la Infraestructura Grid 12c.

Después de realizar el upgrade de la Infraestructura Grid a Oracle 12c es posible que la instancia ASM no se active de manera automática.

Esto se debe a que no se tiene definido el parámetro local_listener en la instancia ASM.  Este parámetro es necesario para la instancia ASM 12c.

SQL> show parameter local_listener

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------
local_listener                       string      

Lo que debemos de hacer en este caso es definir el listener en el archivo tnsnames.ora del ASM_HOME como un alias.

[oracle@upgrade12c admin]$ cat tnsnames.ora

LISTENER_+ASM=
(ADDRESS=(PROTOCOL=TCP)(HOST=172.68.1.25)(PORT=1521))

Posteriormente definimos el parámetro local_listener con el alias definido en el tnsnames.ora

SQL> alter system set local_listener='LISTENER_+ASM' scope=both;

System altered.

SQL> show parameter local_listener

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------
local_listener                       string      LISTENER_+ASM



Procedemos a reiniciar los servicios de la Infraestructura Grid 12c

[oracle@upgrade12c admin]$ crsctl stop has
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'upgrade12c'
CRS-2673: Attempting to stop 'ora.DG_DATA.dg' on 'upgrade12c'
CRS-2673: Attempting to stop 'ora.DG_FRA.dg' on 'upgrade12c'
CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'upgrade12c'
CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'upgrade12c' succeeded
CRS-2677: Stop of 'ora.DG_FRA.dg' on 'upgrade12c' succeeded
CRS-2677: Stop of 'ora.DG_DATA.dg' on 'upgrade12c' succeeded
CRS-2673: Attempting to stop 'ora.asm' on 'upgrade12c'
CRS-2677: Stop of 'ora.asm' on 'upgrade12c' succeeded
CRS-2673: Attempting to stop 'ora.evmd' on 'upgrade12c'
CRS-2677: Stop of 'ora.evmd' on 'upgrade12c' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'upgrade12c'
CRS-2677: Stop of 'ora.cssd' on 'upgrade12c' succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'upgrade12c' has completed
CRS-4133: Oracle High Availability Services has been stopped.

[oracle@upgrade12c admin]$
[oracle@upgrade12c admin]$ crsctl start has
CRS-4123: Oracle High Availability Services has been started.


De esta manera hemos explicado a detalle cómo se realiza el upgrade de la Infraestructura Grid a la versión Oracle 12c.
En el siguiente articulo explicare el Upgrade de la base de datos a la versión Oracle 12c.

Espero les sirva.


No hay comentarios.:

Publicar un comentario