domingo, 4 de marzo de 2018

¡Es tiempo de actualizar a 12cR2! – Parte I (Grid Infrastructure)


A mediados de febrero del 2018 se liberó el nuevo patchset de la base de datos Oracle 12.2.0.2 … perdón, ahora lo llaman 18.1.0.0. La versión 18c ya está disponible para los servidores Exadata, Oracle Database Appliance y los servicios de Cloud.

Con esta noticia hice una mirada hacia atrás y observé que la versión Oracle 12c Release 2 ya tiene casi un año de liberada; y gracias a los Release Upgrades (la nueva forma de parchar las bases de datos 12cR2) que se han ido publicando a lo largo del año 2017 y, con el último, en enero 2018, se puede observar que la versión 12.2.0.1 es una versión ya bastante estable para poder ser utilizada en ambientes de test y producción.

Por tal motivo quiero compartir el procedimiento completo para que puedas hacer Upgrade de tu base de datos hacia la versión Oracle 12c Release 2. 
El ejercicio de este artículo se basa en una migración de base de datos Oracle 12.1.0.2 hacia 12.2.0.1, sin embargo, a lo largo del mismo voy a ir señalando que acciones extras se deben de tomar si tu base de datos origen es 11g.


La información general del ambiente en el que vamos a trabajar es la siguiente.


12cR1
12cR2
Sistema Operativo
Oracle Linux 6.8
Oracle Linux 6.8
ORACLE_BASE
/u01/app/oracle/
/u01/app/oracle/
ORACLE_GRID_HOME
/u01/app/oracle/product/12.1.0/grid_1
/u01/app/oracle/product/12.2.0/grid_1
ORACLE_DB_HOME
/u01/app/oracle/product/12.1.0/db_1
/u01/app/oracle/product/12.2.0/db_1
            

Para esta primera parte voy a enfocarme en la actualización de la Infraestructura Grid.  Posteriormente, en una segunda parte, revisaremos el Upgrade de la base de datos.


PRE-REQUISITOS

1.    Revisión de la versión del Sistema Operativo

La versión Oracle 12c Release 2 esta soportada solo para las versiones de sistema Operativo específicas.   Es importante primero actualizar su Sistema Operativo para poder instalar y actualizar hacia versión 12cR2.
Algunas versiones soportadas son:


Para nuestro ejercicio tenemos el sistema operativo Oracle Linux 6.8


[root@oracle12c ~]# cat /etc/oracle-release
Oracle Linux Server release 6.8

[root@oracle12c ~]# uname -omr
4.1.12-37.4.1.el6uek.x86_64 x86_64 GNU/Linux



2.    Realizar Backup

Siempre es recomendable realizar un backup de los binarios de Infraestructura Grid y Base de datos.  Además de realizar un backup de las propias bases de datos.


3.    Definir el parámetro asm_diskstring

Antes de realizar la actualización del Grid, es importante definir el parámetro asm_diskstring con el valor por defecto que se utiliza en la configuración.  Para mi caso el valor es /dev/sd*

SQL> alter system set asm_diskstring='/dev/sd*';

System altered.

SQL> show parameter asm_diskstring

NAME                                 TYPE        VALUE
------------------------------------ ----------- ----------------------
asm_diskstring                       string      /dev/sd*


4.    Descargar instaladores y parches

Descargamos los instaladores de la Infraestructura Grid y base de datos Oracle 12c Release 2 desde la página oficial de Oracle. 


Es importante descargar los últimos Release Update (en mi caso enero 2018) para ambos binarios desde la página de Oracle Support.

Binario
Parche
Infraestructura Grid
27100009
Base de datos
27105253


Finalmente, como parte de los pre-requisitos para actualizar la Infraestructura Grid a Oracle 12cR2, es necesario aplicar el parche 21255373 sobre los binarios de las versiones 12cR1 u 11gR2. 


Ahora si estamos listos para realizar el Upgrade de la Infraestructura Grid a Oracle 12c Release 2.


Upgrade de IG a 12.2.0.1


1.    Aplicación del Parche 21255373

Se debe tener una versión de OPATCH en 12.1.0.1.2 o superior para aplicar el parche.


[oracle@oracle12c OPatch]$ ./opatch version
OPatch Version: 12.1.0.1.3

OPatch succeeded.


Copiamos el parche 21255373 al servidor y lo descomprimimos en un directorio temporal.


[oracle@oracle12c OPatch]$ cd /u01/Install/
[oracle@oracle12c Install]$ unzip -q p21255373_121020_Linux-x86-64.zip


En este punto empieza la ventana de mantenimiento.  Debemos de detener los servicios de base de datos.

[oracle@oracle12c ~]$ srvctl stop database -d orcl


Con el usuario ROOT realizamos el análisis y la aplicación del parche.

[root@oracle12c grid_1]# cd /u01/app/oracle/product/12.1.0/grid_1/OPatch
[root@oracle12c OPatch]# ./opatchauto apply /u01/Install/21255373 -analyze

OPatch Automation Tool
Copyright (c) 2018, Oracle Corporation.  All rights reserved.

OPatchauto version : 12.1.0.1.3
OUI version        : 12.1.0.2.0
Running from       : /u01/app/oracle/product/12.1.0/grid_1

opatchauto log file: /u01/app/oracle/product/12.1.0/grid_1/cfgtoollogs/opatchauto/21255373/opatch_gi_2018-03-03_13-19-04_analyze.log

opatchauto succeeded.


[root@oracle12c grid_1]# cd /u01/app/oracle/product/12.1.0/grid_1/OPatch/
[root@oracle12c OPatch]# ./opatchauto apply /u01/Install/21255373

OPatch Automation Tool
Copyright (c) 2018, Oracle Corporation.  All rights reserved.

OPatchauto version : 12.1.0.1.3
OUI version        : 12.1.0.2.0
Running from       : /u01/app/oracle/product/12.1.0/grid_1

Patch Validation: Successful

Stopping CRS ... Successful

Applying patch(es) to "/u01/app/oracle/product/12.1.0/grid_1"
Patch "/u01/Install/21255373/21255373" successfully applied to "/u01/app/oracle/product/12.1.0/grid_1".

Starting CRS ... Successful

Apply Summary:
Following patch(es) are successfully installed:
GI Home: /u01/app/oracle/product/12.1.0/grid_1: 21255373

opatchauto succeeded.


2.    Instalar Infraestructura Grid 12.2.0.1

A partir de la versión Oracle 12c Release 2, la archivo ZIP con el instalador de la Infraestructura Grid no cuenta con un comando runInstaller. 

Para poder instalar los binarios, se deben debe de copiar el archivo ZIP a la ruta donde se quiere instalar la Infraestructura Grid y descomprimir el archivo.  De esta manera se puede utilizar nuevos utilitarios como Oracle ASM Filter Driver antes de realizar la configuración.


[oracle@oracle12c ~]$ mkdir -p /u01/app/oracle/product/12.2.0/grid_1

[oracle@oracle12c ~]$ cd /u01/Install/
[oracle@oracle12c Install]$ mv linuxx64_12201_grid_home.zip /u01/app/oracle/product/12.2.0/grid_1/.

[oracle@oracle12c Install]$ cd /u01/app/oracle/product/12.2.0/grid_1
[oracle@oracle12c grid_1]$ unzip -q linuxx64_12201_grid_home.zip



3.    Configurar la nueva Infraestructura Grid.

Una vez que el archivo ZIP ha sido descomprimido, podemos observar que los archivos del binario de Infraestructura Grid ya se encuentran en la ruta definida.   Ahora, debemos realizar la configuración mediante el comando gridSetup.sh en una interface con soporte gráfico. 
En mi caso utilizo VNC.


[oracle@oracle12c grid_1]$ vncserver

New 'oracle12c.oracle.com:1 (oracle)' desktop is oracle12c.oracle.com:1

Starting applications specified in /home/oracle/.vnc/xstartup
Log file is /home/oracle/.vnc/oracle12c.oracle.com:1.log



[oracle@oracle12c grid_1]$ ./gridSetup.sh
Launching Oracle Grid Infrastructure Setup Wizard...


Como vamos a realizar un Upgrade, elegimos la opción
Upgrade Oracle Grid Infrastructure.


Como no tenemos Cloud Control configurado, dejamos esta pantalla en blanco.


Seleccionamos los grupos de Sistema Operativo para cada rol.


Indicamos nuestro ORACLE_BASE


Como parte de la versión 12c, podemos decidir si los scripts de ROOT se ejecutan de manera automática.


Se verifican los Pre-requisitos y se corrigen si es posible.
La memoria mínima para instalar Infraestructura Grid es de 8Gb.  En mi caso solo tengo 4GB.


Verificamos el Resumen y procedemos con la configuración de la nueva Infraestructura Grid.


Se ejecutan los scripts con ROOT.

[root@oracle12c ~]# /u01/app/oracle/product/12.2.0/grid_1/rootupgrade.sh
Performing root user operation.

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

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of "dbhome" have not changed. No need to overwrite.
The file "oraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)

ASM has been upgraded and started 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 oracle12c successfully pinned.
2018/03/03 15:11:02 CLSRSC-329: Replacing Clusterware entries in file 'oracle-ohasd.conf'
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'oracle12c' has completed
CRS-4133: Oracle High Availability Services has been stopped.
CRS-4123: Oracle High Availability Services has been started.
2018/03/03 15:31:55 CLSRSC-327: Successfully configured Oracle Restart for a standalone server


4.    Aplicar el Release Update (RU) más reciente a la nueva Infraestructura Grid.

Finalizado el Upgrade de Infraestructura Grid a versión 12.2.0.1. Es muy importante aplicar el último Release Update para evitar problemas de Bugs que pueda tener la versión base 12c Release 2.

En este ejercicio utilizamos el RU de enero 2018 con numero de parche 27100009.  Para aplicar el parche se necesita actualizar el OPatch a la versión mínima de 12.2.0.1.6. 
Se puede descargar el parche 6880880 de la página de Oracle Support.

Actualizamos el OPatch

[oracle@oracle12c Install]$ cp p6880880_122010_Linux-x86-64.zip $ORACLE_HOME/.

[oracle@oracle12c Install]$ cd $ORACLE_HOME
[oracle@oracle12c grid_1]$ mv OPatch OPatch.old
[oracle@oracle12c grid_1]$ unzip -q p6880880_122010_Linux-x86-64.zip

[oracle@oracle12c grid_1]$ cd ./OPatch
[oracle@oracle12c OPatch]$ ./opatch version

OPatch Version: 12.2.0.1.12

Descomprimir el parche 27100009 en un directorio temporal.


[oracle@oracle12c OPatch]$ cd /u01/Install/
[oracle@oracle12c Install]$ unzip -q p27100009_122010_Linux-x86-64.zip


Con el usuario ROOT, realizar el análisis y posterior aplicación del parche.

[root@oracle12c OPatch]# ./opatchauto apply /u01/Install/27100009 -oh /u01/app/oracle/product/12.2.0/grid_1 -analyze

OPatchauto session is initiated at Sun Mar  4 00:15:14 2018

System initialization log file is /u01/app/oracle/product/12.2.0/grid_1/cfgtoollogs/opatchautodb/systemconfig2018-03-04_12-15-35AM.log.

--------------------------------Summary--------------------------------

Analysis for applying patches has completed successfully:

Host:oracle12c
SIHA Home:/u01/app/oracle/product/12.2.0/grid_1


==Following patches were SUCCESSFULLY analyzed to be applied:

Patch: /u01/Install/27100009/27105253
Log: /u01/app/oracle/product/12.2.0/grid_1/cfgtoollogs/opatchauto/core/opatch/opatch2018-03-04_00-15-53AM_1.log


[root@oracle12c OPatch]# ./opatchauto apply /u01/Install/27100009 -oh /u01/app/oracle/product/12.2.0/grid_1

OPatchauto session is initiated at Sun Mar  4 00:22:43 2018

System initialization log file is /u01/app/oracle/product/12.2.0/grid_1/cfgtoollogs/opatchautodb/systemconfig2018-03-04_12-23-02AM.log.

Session log file is /u01/app/oracle/product/12.2.0/grid_1/cfgtoollogs/opatchauto/opatchauto2018-03-04_12-23-08AM.log
The id for this session is FD47
Starting CRS service on home /u01/app/oracle/product/12.2.0/grid_1
Postpatch operation log file location: /u01/app/oracle/crsdata/oracle12c/crsconfig/hapatch_2018-03-04_01-03-52AM.log
CRS service started successfully on home /u01/app/oracle/product/12.2.0/grid_1

OPatchAuto successful.

--------------------------------Summary--------------------------------

Patching is completed successfully. Please find the summary as follows:

Host:oracle12c
SIHA Home:/u01/app/oracle/product/12.2.0/grid_1
Summary:

==Following patches were SUCCESSFULLY applied:

Patch: /u01/Install/27100009/27144050
Log: /u01/app/oracle/product/12.2.0/grid_1/cfgtoollogs/opatchauto/core/opatch/opatch2018-03-04_00-26-29AM_1.log

Patch: /u01/Install/27100009/27335416
Log: /u01/app/oracle/product/12.2.0/grid_1/cfgtoollogs/opatchauto/core/opatch/opatch2018-03-04_00-26-29AM_1.log


Una vez finalizado la instalación y el parchado de la Infraestructura Grid podemos proceder al Upgrade de la base de datos en la segunda parte de este artículo.

6 comentarios:

  1. Exacto, ahora somos 12cR2, gracias por la documentación Jorge, ayudará mucho a la comunidad Oracle, incluyéndome.

    ResponderBorrar
    Respuestas
    1. Estamos para apoyar a la comunidad Yonogy!! Se viene la segunda parte en unos dias.

      Borrar
  2. cuanto demora la instalacion del gid y del rdbms

    ResponderBorrar
    Respuestas
    1. Hola Yary
      Va a depender del expertise de la persona que lo realiza. Normalmente una persona que instala por primera vez, se puede tomar entre 4 a 6 horas.
      Una persona con mayor experiencia lo puede hacer entre 2 a 4 horas.

      Saludos
      Jorge Z

      Borrar
  3. Buenos días Jorge. Muchas Gracias. Adriana.

    ResponderBorrar