Aprende a parchar como Dios manda (S2E2)

En un episodio anterior mostramos cómo parchar Oracle Database Server out-of-place usando Gold Image, pero ¿qué ocurre si tenemos que parchar Oracle Grid Infrastructure?

Para aprender a hacerlo usaremos una instalación  con Oracle Grid Infrastructure for a standalone server, también conocida como Oracle Restart, que opera con RU 19.24 y que deseamos actualizar a RU 19.26.

Ahora sí, veamos el procedimiento:

Situación inicial

Contamos con un servidor llamado server, en el cual se tiene instalado Oracle Grid Infrastructure 19c en un Oracle Home llamado GIHome1, y Oracle Database Server 19c en un Oracle Home llamado DBHome1, que dan soporte a una base de datos single instance llamada orcl.

El OH de Oracle Grid Infrastructure tiene aplicados los siguientes parches:

$ echo $ORACLE_HOME
/u01/app/grid/19.0.0/grid_1
36758186DBWLM RELEASE UPDATE 19.0.0.0.0 (36758186)
36648174TOMCAT RELEASE UPDATE 19.0.0.0.0 (36648174)
36590554ACFS RELEASE UPDATE 19.24.0.0.0 (36590554)
36587798OCW RELEASE UPDATE 19.24.0.0.0 (36587798)
36582781Database Release Update : 19.24.0.0.240716 (36582781)
36538667JDK BUNDLE PATCH 19.0.0.0.240716

1

2

Creación de nuevo Oracle Home

Creamos un directorio que luego se asociará con un Oracle Home llamado GIHome2.

$ mkdir /u01/app/grid/19.0.0/grid_2

Instalación de Oracle Grid Infrastructure

Descomprimimos el software base de Oracle Grid Infrastructure 19c en el directorio recién creado.

$ export GI_HOME=/u01/app/grid/19.0.0/grid_2
$ export STAGE=/stage

$ unzip -oq ${STAGE}/LINUX.X64_193000_grid_home.zip -d ${GI_HOME}
$ rm -rf ${GI_HOME}/OPatch
$ unzip -oq ${STAGE}/p6880880_190000_Linux-x86-64.zip -d ${GI_HOME}

Luego de esto tenemos los binarios de Oracle Grid Infrastructure 19.3 en el nuevo directorio.

3

4

Parchado del nuevo Oracle Home

Aplicaremos los siguientes parches:

37257886GI release update 19.26.0.0.0
37542054JDK bundle patch 19.0.0.0.250415
37769929GI MRP 19.26.0.0.250415
$ ${GI_HOME}/gridSetup.sh -silent -printtime -waitforcompletion \
-ignorePrereqFailure -lenientInstallMode \
ORACLE_HOME_NAME="GIHome2" -applyRU ${STAGE}/37257886 \
-applyOneOffs ${STAGE}/37542054 \
-responseFile ${DB_HOME}/install/response/gridsetup.rsp \
INVENTORY_LOCATION=/u01/app/oraInventory \
oracle.install.option=CRS_SWONLY \
ORACLE_BASE=/u01/app/oracle \
oracle.install.asm.OSDBA=asmdba \
oracle.install.asm.OSOPER=asmoper \
oracle.install.asm.OSASM=asmadmin

$ ${GI_HOME}/OPatch/opatchauto apply ${STAGE}/37769929 \
-binary -oh ${GI_HOME} -target_type cluster
Luego de esto tenemos el Oracle Home GIHome2 conteniendo los binarios de Oracle Grid Infrastructure 19.26.

Preparando el cambio de Oracle Home

Como usuario root, confirmamos la versión en uso y el estado de los servicios.

# echo ORACLE_HOME
/u01/app/grid/19.0.0/grid_1

# crsctl query has releasepatch
Oracle Clusterware release patch level is [467891468].
The release patch string is [19.24.0.0.0].

# crsctl stat res -t
----------------------------------------------------------
Name           Target  State   Server  State details
----------------------------------------------------------
Local Resources
----------------------------------------------------------
ora.DATA.dg
               ONLINE  ONLINE  server  STABLE
ora.LISTENER.lsnr
               ONLINE  ONLINE  server  STABLE
ora.asm
               ONLINE  ONLINE  server  Started,STABLE
ora.ons
               OFFLINE OFFLINE server  STABLE
---------------------------------------------------------
Cluster Resources
---------------------------------------------------------
ora.cssd
      1        ONLINE  ONLINE  server  STABLE
ora.diskmon
      1        OFFLINE OFFLINE         STABLE
ora.evmd
      1        ONLINE  ONLINE  server  STABLE
ora.orcl.db
      1        ONLINE  ONLINE  server  Open,HOME=/u01/app/o
                                       racle/19.0.0/db_1,ST
                                       ABLE
---------------------------------------------------------

Procedemos a ejecutar prepatch desde el OH actual, referenciando al nuevo OH.

Este paso no interrumpe los servicios ni de clusterware ni de base de datos.

# export GI_HOME_NEW=/u01/app/grid/19.0.0/grid_2

# ${ORACLE_HOME}/crs/install/roothas.sh -prepatch -dstcrshome ${GI_HOME_NEW}

Using configuration parameter file: /u01/app/grid/19.0.0/grid_1/crs/install/crsconfig_params
The log of current session can be found at:
  /u01/app/oracle/crsdata/server/crsconfig/hapatch_2025-04-30_12-55-48AM.log
2025/04/30 12:55:54 CLSRSC-347: Successfully unlock /u01/app/grid/19.0.0/grid_2
2025/04/30 12:55:54 CLSRSC-671: Pre-patch steps for patching GI home successfully completed.

5

6

Suspensión del servicio de base de datos

Para poder usar el nuevo OH de Oracle Grid Infrastructure, obligatoriamente se tiene que bajar la base de datos como primer paso.

$ srvctl status database -db orcl
Database is running.

$ srvctl stop database -db orcl -stopmode immediate

$ srvctl status database -db orcl
Database is not running.

Actualización del Clusterware

Siempre como usuario root procedemos a ejecutar postpatch desde el OH actual, referenciando al nuevo OH.

Este paso interrumpe los servicios de clusterware.

# export GI_HOME_NEW=/u01/app/grid/19.0.0/grid_2

# ${ORACLE_HOME}/crs/install/roothas.sh -postpatch -dstcrshome ${GI_HOME_NEW}

Using configuration parameter file: /u01/app/grid/19.0.0/grid_1/crs/install/crsconfig_params
The log of current session can be found at:
  /u01/app/oracle/crsdata/server/crsconfig/hapatch_2025-04-30_01-13-17PM.log
2025/04/30 13:13:59 CLSRSC-329: Replacing Clusterware entries in file 'oracle-ohasd.service'
2025/04/30 13:14:49 CLSRSC-672: Post-patch steps for patching GI home successfully completed.

Confirmamos que se actualizó la versión en uso, verificamos el estado de los servicios y finalmente subimos la base de datos.

$ echo ORACLE_HOME
/u01/app/grid/19.0.0/grid_2

$ crsctl query has releasepatch
Oracle Clusterware release patch level is [2917480843].
The release patch string is [19.26.0.0.0].

$ crsctl stat res -t
----------------------------------------------------------
Name           Target  State   Server  State details
----------------------------------------------------------
Local Resources
----------------------------------------------------------
ora.DATA.dg
               ONLINE  ONLINE  server  STABLE
ora.LISTENER.lsnr
               ONLINE  ONLINE  server  STABLE
ora.asm
               ONLINE  ONLINE  server  Started,STABLE
ora.ons
               OFFLINE OFFLINE server  STABLE
---------------------------------------------------------
Cluster Resources
---------------------------------------------------------
ora.cssd
      1        ONLINE  ONLINE  server  STABLE
ora.diskmon
      1        OFFLINE OFFLINE         STABLE
ora.evmd
      1        ONLINE  ONLINE  server  STABLE
ora.orcl.db
      1        ONLINE  ONLINE  server  Instance Shutdown,ST
                                                ABLE
---------------------------------------------------------

$ echo $ORACLE_HOME
/u01/app/oracle/19.0.0/db_1

$ srvctl start database -db orcl

$ srvctl status database -db orcl
Database is running.

7

Conclusiones

En muy pocos minutos y con mínima suspensión del servicio, tenemos Oracle Grid Infrastructure operando desde GIHome2, parchado con RU 19.26.

Como ya lo habrás notado, la base de datos sigue operando con Oracle Database Server 19.24, y si bien es válido tener versiones distintas de Oracle Grid Infrastructure y Oracle Database Server, es recomendable actualizarlo también. El procedimiento ya lo detallamos en artículo previo, así que dale una mirada si no lo has hecho aún.

En el siguiente episodio veremos cómo usar el parchado out-of-place para Oracle Grid Infrastructure pero ahora usando Gold Image, así que estén atentos!

¿Te pareció interesante este artículo?, ¿te quedaron algunas dudas?, ¿quieres sugerirme un tema a tratar?, pues déjame tus comentarios o ¡contáctame ahora mismo!

2 Responses

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Posts Relacionados

Out of place patching Oracle RAC
Aprende a parchar base de datos Oracle RAC con la modalidad out-of-place, y usando Gold Image para máxima simplicidad.
Hide column contents
Implemente el ocultamiento de los contenidos de columnas, dinámicamente y sin tener que modificar sus aplicaciones.
Register ACFS file system fails
Aprenda cómo registrar un filesystem ACFS luego de migrar el Disk Group que lo contiene a un nuevo Cluster Oracle.

¿Necesitas Ayuda?

Completa estos datos y estaré en contacto a la brevedad.