Parchear GI 19.22 a 19.24 Out of place en RAC

Comenzamos como siempre con un poco de teoría centrada en la Grid Infrastructure.

¿Qué es el parcheo out-of-place?

El parcheo out-of-place en Oracle implica crear una nueva instalación de software de Oracle en una ubicación separada, aplicar los parches correspondientes en esa nueva instalación y, posteriormente, cambiar la base de datos para que utilice la versión parcheada. Este proceso difiere del parcheo in-place, donde los parches se aplican directamente a la instalación existente, lo que modifica la estructura de archivos de dicha instalación.

¿Cómo funciona el proceso out-of-place?

  • Creación de un nuevo directorio de Oracle Home: En lugar de modificar el directorio de instalación existente (Oracle Home), se crea una copia de la instalación de Oracle en un nuevo directorio donde se aplican los parches necesarios en el nuevo Oracle Home.

  • Cambio de entorno: Una vez aplicado el parche y validado que todo funciona correctamente, se realiza la transición, o switch, para que la base de datos apunte al nuevo Oracle Home parcheado. Aquí es donde entra en juego la opción -switch-clone durante el proceso, minimizando los tiempos de inactividad.

Ventajas del parcheo out-of-place

El enfoque out-of-place ofrece varias ventajas clave sobre el parcheo in-place:

  1. Reducción del tiempo de inactividad. El tiempo de inactividad es uno de los aspectos más críticos para los administradores de bases de datos. Con el parcheo out-of-place, el downtime necesario es considerablemente menor, ya que la mayor parte del trabajo, como la instalación y la aplicación del parche, se realiza en una ubicación separada. El cambio a la versión parcheada es rápido, minimizando el impacto en las operaciones de producción.

  2. Reversibilidad más sencilla. Si algo sale mal durante el proceso, revertir los cambios es más simple. Dado que la instalación original no se toca, es posible volver al Oracle Home anterior sin necesidad de desinstalar parches o realizar operaciones complejas. Esto proporciona una mayor seguridad ante posibles fallos durante el proceso de parcheo.

  3. Menos riesgo de corrupción en el software. Como el software de Oracle existente no se modifica directamente, se minimiza el riesgo de corromper archivos críticos o de encontrarse con incompatibilidades inesperadas durante la operación. Si bien Oracle ofrece herramientas para validar parches aplicados in-place, el enfoque out-of-place garantiza una mayor estabilidad y control.

Conclusión. El parcheo out-of-place en Oracle es una estrategia eficiente y segura para mantener las bases de datos actualizadas, minimizando los tiempos de inactividad y proporcionando un mayor control sobre el proceso. La capacidad de realizar pruebas en entornos aislados y la fácil reversibilidad del proceso hacen de este método una opción sólida para los administradores que buscan estabilidad y eficiencia en sus sistemas.

Si bien puede requerir más espacio en disco y una planificación más detallada que el parcheo in-place, las ventajas en términos de flexibilidad, seguridad y reducción de riesgos hacen del parcheo out-of-place una práctica recomendada en entornos Oracle.

Ejemplo de parcheo

Mostraré los pasos seguidos para realizar un parcheo de la GI en dos pasos (two-step).

  • Primera fase: Se realiza una instalación separada de Oracle Home, y en este nuevo directorio se aplican los parches sin afectar la instalación en producción.

  • Segunda fase: Una vez validados los cambios, se procede a cambiar el entorno de producción para que la base de datos utilice el nuevo Oracle Home.

Actualización de OPatch

Descargaremos la versión necesaria para el parche a aplicar y actualizaremos los binarios de Optach en el home de la grid actual en ambos nodos al tratarse de un RAC.

    -- Pasos
    cd /u01/software/RU_24
    unzip p6880880_122010_Linux-x86-64.zip
    mv /u01/app/19.22.0/grid/OPatch /u01/app/19.22.0/grid/OPatch_20240916   
    mv OPatch /u01/app/19.22.0/grid

    -- Comprobar versión
    $ORACLE_HOME/OPatch/opatch version

    [grid@rac-nodo-001 RU_24]$ $ORACLE_HOME/OPatch/opatch version
    OPatch Version: 12.2.0.1.43

    OPatch succeeded.

    [grid@rac-nodo-002 RU_24]$ $ORACLE_HOME/OPatch/opatch version
    OPatch Version: 12.2.0.1.43

    OPatch succeeded.

Validaciones previas

Extraemos los parches a aplicar en ambos nodos:

[grid@rac-nodo-001 ~]$ cd /u01/software/RU_24
[grid@rac-nodo-001 RU_24]$ unzip p36582629_190000_Linux-x86-64.zip

[grid@rac-nodo-002 ~]$ cd /u01/software/RU_24
[grid@rac-nodo-002 RU_24]$ unzip p36582629_190000_Linux-x86-64.zip

Validación de inventario

[grid@rac-nodo-001 RU_24]$ mkdir backup_config_previa
[grid@rac-nodo-001 RU_24]$ $ORACLE_HOME/OPatch/opatch lsinventory -detail -oh /u01/app/19.22.0/grid >> backup_config_previa/inventory_detail.log

[grid@rac-nodo-002 RU_24]$ mkdir backup_config_previa
[grid@rac-nodo-002 RU_24]$ $ORACLE_HOME/OPatch/opatch lsinventory -detail -oh /u01/app/19.22.0/grid >> backup_config_previa/inventory_detail.log

Chequear conflictos

[grid@rac-nodo-001 RU_24]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/software/RU_24/36582629/36582781
[grid@rac-nodo-001 RU_24]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/software/RU_24/36582629/36587798
[grid@rac-nodo-001 RU_24]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/software/RU_24/36582629/36590554
[grid@rac-nodo-001 RU_24]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/software/RU_24/36582629/36648174
[grid@rac-nodo-001 RU_24]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/software/RU_24/36582629/36758186

[grid@rac-nodo-002 RU_24]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/software/RU_24/36582629/36582781
[grid@rac-nodo-002 RU_24]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/software/RU_24/36582629/36587798
[grid@rac-nodo-002 RU_24]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/software/RU_24/36582629/36590554
[grid@rac-nodo-002 RU_24]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/software/RU_24/36582629/36648174
[grid@rac-nodo-002 RU_24]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/software/RU_24/36582629/36758186

-- En todos los casos obtener:

     Prereq "checkConflictAgainstOHWithDetail" passed. <<<----

     OPatch succeeded.

Comprobación de espacio

-- Crear fichero ambos nodos
[grid@rac-nodo-001 RU_24]$ cat /u01/software/RU_24/patch_list_gihome.txt

/u01/software/RU_24/36582629/36582781
/u01/software/RU_24/36582629/36587798
/u01/software/RU_24/36582629/36590554
/u01/software/RU_24/36582629/36648174
/u01/software/RU_24/36582629/36758186

-- Comprobar en ambos nodos
[grid@rac-nodo-001 RU_24]$ $ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /u01/software/RU_24/patch_list_gihome.txt


-- En todos los casos obtener

      Prereq "checkSystemSpace" passed.

      OPatch succeeded.

Clonado del home en ambos nodos.

Comenzaremos con el clonado del HOME en el nodo rac-nodo-002. Para ello exportamos las variables del HOME actual y nos pedirá la ruta esperada para los nuevos binarios.

Esta fase no requiere corte, lo podremos dejar preparado los días que querramos previamente.

      [root@rac-nodo-002 RU_24]# export ORACLE_HOME=/u01/app/19.22.0/grid
      [root@rac-nodo-002 RU_24]# export PATH=$ORACLE_HOME/OPatch:$PATH

      [root@rac-nodo-002 RU_24]# cd /u01/software/RU_24/
      [root@rac-nodo-002 RU_24]# $ORACLE_HOME/OPatch/opatchauto apply /u01/software/RU_24/36582629 -prepare-clone -oh $ORACLE_HOME

      OPatchauto session is initiated at Tue Sep 17 16:30:57 2024

      System initialization log file is /u01/app/19.22.0/grid/cfgtoollogs/opatchautodb/systemconfig2024-09-17_04-30-59PM.log.

      El archivo de log de sesión es /u01/app/19.22.0/grid/cfgtoollogs/opatchauto/opatchauto2024-09-17_04-31-06PM.log
      El ID para esta sesión es VGF6
      Please press ENTER button to accept system generated default clone path.
      Please enter clone path [/u01/app/19.22.0/grid_2 ] :
      /u01/app/19.24/grid

      Executing OPatch prereq operations to verify patch applicability on home /u01/app/19.22.0/grid
      Patch applicability verified successfully on home /u01/app/19.22.0/grid


      Executing patch validation checks on home /u01/app/19.22.0/grid
      Patch validation checks successfully completed on home /u01/app/19.22.0/grid


      Copying the files from the existing oracle home /u01/app/19.22.0/grid to a new location. Please wait...
      Clone of oracle home /u01/app/19.22.0/grid is /u01/app/19.24/grid on host rac-nodo-002
      Copying the files from the existing oracle home /u01/app/19.22.0/grid to a new location is successful.


      Unlocking CRS clone home for home /u01/app/19.22.0/grid.
      Prepatch operation log file location: /u01/app/grid/crsdata/rac-nodo-002/crsconfig/crs_prepatch_apply_oop_rac-nodo-002_2024-09-17_04-32-39PM.log
      Unlocked CRS clone home successfully for home /u01/app/19.22.0/grid.


      Creating clone for oracle home /u01/app/19.22.0/grid.
      Clone operation successful for oracle home /u01/app/19.22.0/grid.


      Performing post clone operation for oracle home /u01/app/19.22.0/grid.
      Performing post clone operation was successful for oracle home /u01/app/19.22.0/grid.


      Start applying binary patch on home /u01/app/19.24/grid
      Binary patch applied successfully on home /u01/app/19.24/grid


      Running rootadd_rdbms.sh on home /u01/app/19.24/grid
      Successfully executed rootadd_rdbms.sh on home /u01/app/19.24/grid



      OPatchAuto correcto.

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

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

      Host:rac-nodo-002
      CRS Home:/u01/app/19.22.0/grid
      Version:19.0.0.0.0
      Summary:

      ==Following patches were SUCCESSFULLY applied:

      Patch: /u01/software/RU_24/36582629/36582781
      Log: /u01/app/19.24/grid/cfgtoollogs/opatchauto/core/opatch/opatch2024-09-17_16-33-24PM_1.log

      Patch: /u01/software/RU_24/36582629/36587798
      Log: /u01/app/19.24/grid/cfgtoollogs/opatchauto/core/opatch/opatch2024-09-17_16-33-24PM_1.log

      Patch: /u01/software/RU_24/36582629/36590554
      Log: /u01/app/19.24/grid/cfgtoollogs/opatchauto/core/opatch/opatch2024-09-17_16-33-24PM_1.log

      Patch: /u01/software/RU_24/36582629/36648174
      Log: /u01/app/19.24/grid/cfgtoollogs/opatchauto/core/opatch/opatch2024-09-17_16-33-24PM_1.log

      Patch: /u01/software/RU_24/36582629/36758186
      Log: /u01/app/19.24/grid/cfgtoollogs/opatchauto/core/opatch/opatch2024-09-17_16-33-24PM_1.log


      Out of place patching clone home(s) summary
      ____________________________________________
      Host : rac-node-002
      Actual Home : /u01/app/19.22.0/grid
      Version:19.0.0.0.0
      Clone Home Path : /u01/app/19.24/grid


      OPatchauto session completed at Tue Sep 17 16:38:39 2024
      Time taken to complete the session 7 minutes, 42 seconds

Una vez finalizado en el primer nodo procedemos con el segundo. En este paso ya no nos preguntará por la ruta de los binarios.

     [root@rac-nodo-001 RU_24]# export ORACLE_HOME=/u01/app/19.22.0/grid
     [root@rac-nodo-001 RU_24]# export PATH=$ORACLE_HOME/OPatch:$PATH

     [root@rac-nodo-001 RU_24]# cd /u01/software/RU_24/
     [root@rac-nodo-001 RU_24]# $ORACLE_HOME/OPatch/opatchauto apply /u01/software/RU_24/36582629 -prepare-clone -oh $ORACLE_HOME

      -- Segundo nodo. Ya no hay que especificar el home


      [root@rac-nodo-001 RU_24]# $ORACLE_HOME/OPatch/opatchauto apply /u01/software/RU_24/36582629 -prepare-clone -oh $ORACLE_HOME

      OPatchauto session is initiated at Tue Sep 17 16:46:00 2024

      System initialization log file is /u01/app/19.22.0/grid/cfgtoollogs/opatchautodb/systemconfig2024-09-17_04-46-02PM.log.

      El archivo de log de sesión es /u01/app/19.22.0/grid/cfgtoollogs/opatchauto/opatchauto2024-09-17_04-46-10PM.log
      El ID para esta sesión es CVIV

      Executing OPatch prereq operations to verify patch applicability on home /u01/app/19.22.0/grid
      Patch applicability verified successfully on home /u01/app/19.22.0/grid


      Executing patch validation checks on home /u01/app/19.22.0/grid
      Patch validation checks successfully completed on home /u01/app/19.22.0/grid


      Copying the files from the existing oracle home /u01/app/19.22.0/grid to a new location. Please wait...
      Clone of oracle home /u01/app/19.22.0/grid is /u01/app/19.24/grid on host rac-nodo-001
      Copying the files from the existing oracle home /u01/app/19.22.0/grid to a new location is successful.


      Unlocking CRS clone home for home /u01/app/19.22.0/grid.
      Prepatch operation log file location: /u01/app/grid/crsdata/rac-nodo-001/crsconfig/crs_prepatch_apply_oop_rac-nodo-001_2024-09-17_04-47-33PM.log
      Unlocked CRS clone home successfully for home /u01/app/19.22.0/grid.


      Creating clone for oracle home /u01/app/19.22.0/grid.
      Clone operation successful for oracle home /u01/app/19.22.0/grid.


      Performing post clone operation for oracle home /u01/app/19.22.0/grid.
      Performing post clone operation was successful for oracle home /u01/app/19.22.0/grid.


      Start applying binary patch on home /u01/app/19.24/grid
      Binary patch applied successfully on home /u01/app/19.24/grid


      Running rootadd_rdbms.sh on home /u01/app/19.24/grid
      Successfully executed rootadd_rdbms.sh on home /u01/app/19.24/grid



      OPatchAuto correcto.

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

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

      Host:rac-nodo-001
      CRS Home:/u01/app/19.22.0/grid
      Version:19.0.0.0.0
      Summary:

      ==Following patches were SUCCESSFULLY applied:

      Patch: /u01/software/RU_24/36582629/36582781
      Log: /u01/app/19.24/grid/cfgtoollogs/opatchauto/core/opatch/opatch2024-09-17_16-48-17PM_1.log

      Patch: /u01/software/RU_24/36582629/36587798
      Log: /u01/app/19.24/grid/cfgtoollogs/opatchauto/core/opatch/opatch2024-09-17_16-48-17PM_1.log

      Patch: /u01/software/RU_24/36582629/36590554
      Log: /u01/app/19.24/grid/cfgtoollogs/opatchauto/core/opatch/opatch2024-09-17_16-48-17PM_1.log

      Patch: /u01/software/RU_24/36582629/36648174
      Log: /u01/app/19.24/grid/cfgtoollogs/opatchauto/core/opatch/opatch2024-09-17_16-48-17PM_1.log

      Patch: /u01/software/RU_24/36582629/36758186
      Log: /u01/app/19.24/grid/cfgtoollogs/opatchauto/core/opatch/opatch2024-09-17_16-48-17PM_1.log


      Out of place patching clone home(s) summary
      ____________________________________________
      Host : rac-node-001
      Actual Home : /u01/app/19.22.0/grid
      Version:19.0.0.0.0
      Clone Home Path : /u01/app/19.24/grid


      OPatchauto session completed at Tue Sep 17 16:54:00 2024
      Time taken to complete the session 8 minutes, 0 second

Comprobamos parches ambos nodos

    [grid@rac-nodo-002 ~]$ /u01/app/19.24/grid/OPatch/opatch lspatches
    36758186;DBWLM RELEASE UPDATE 19.0.0.0.0 (36758186)
    36648174;TOMCAT RELEASE UPDATE 19.0.0.0.0 (36648174)
    36590554;ACFS RELEASE UPDATE 19.24.0.0.0 (36590554)
    36587798;OCW RELEASE UPDATE 19.24.0.0.0 (36587798)
    36582781;Database Release Update : 19.24.0.0.240716 (36582781)

    OPatch succeeded.

    [grid@rac-nodo-001 ~]$ /u01/app/19.24/grid/OPatch/opatch lspatches
    36758186;DBWLM RELEASE UPDATE 19.0.0.0.0 (36758186)
    36648174;TOMCAT RELEASE UPDATE 19.0.0.0.0 (36648174)
    36590554;ACFS RELEASE UPDATE 19.24.0.0.0 (36590554)
    36587798;OCW RELEASE UPDATE 19.24.0.0.0 (36587798)
    36582781;Database Release Update : 19.24.0.0.240716 (36582781)

    OPatch succeeded.

Switch al nuevo home

Esta fase si que va a requerir parada. Se hace de forma rolling, por lo que procederemos con el primer nodo y posteriormente el segundo.

Depende del despliegue que tengamos tener en cuenta que parará la BBDD también, por lo que hay que tener en cuenta el movimiento de servicios previo si aplica.

Comenzaremos por el primer nodo que hemos clonado, importante éste orden.

    [root@rac-nodo-002 RU_24]# export ORACLE_HOME=/u01/app/19.22.0/grid
    [root@rac-nodo-002 RU_24]# export PATH=$ORACLE_HOME/OPatch:$PATH

    [root@rac-nodo-002 RU_24]# cd /u01/software/RU_24/
    [root@rac-nodo-002 RU_24]# $ORACLE_HOME/OPatch/opatchauto apply -switch-clone


    -- Nodo 2
    [root@rac-nodo-002 RU_24]# $ORACLE_HOME/OPatch/opatchauto apply -switch-clone

    OPatchauto session is initiated at Tue Sep 17 17:10:05 2024
    El archivo de log de sesión es /u01/app/19.22.0/grid/cfgtoollogs/opatchauto/opatchauto2024-09-17_05-10-06PM.log
    El ID para esta sesión es 3NAQ

    Executing patch validation checks on home /u01/app/19.24/grid
    Patch validation checks successfully completed on home /u01/app/19.24/grid


    Verifying clone home details before switch for oracle home /u01/app/19.24/grid.
    Verified clone home details successfully for oracle home /u01/app/19.24/grid before switch.


    Update nodelist in the inventory for oracle home /u01/app/19.24/grid.
    Update nodelist in the inventory is completed for oracle home /u01/app/19.24/grid.


    Performing postpatch operations on CRS - starting CRS service on home /u01/app/19.24/grid
    Postpatch operation log file location: /u01/app/grid/crsdata/rac-nodo-002/crsconfig/crs_postpatch_apply_oop_rac-nodo-002_2024-09-17_05-11-15PM.log
    CRS service started successfully on home /u01/app/19.24/grid


    Confirm that all resources have been started from home /u01/app/19.24/grid.
    All resources have been started successfully from home /u01/app/19.24/grid.



    OPatchAuto correcto.

    --------------------------------Summary--------------------------------
    Out of place patching clone home(s) summary
    ____________________________________________
    Host : rac-node-002
    Actual Home : /u01/app/19.22.0/grid
    Version:19.0.0.0.0
    Clone Home Path : /u01/app/19.24/grid


    OPatchauto session completed at Tue Sep 17 17:15:24 2024
    Time taken to complete the session 5 minutes, 19 seconds

Veremos en el logs del CRS:

2024-09-17 17:13:13.864 [CLSCFG(1101414)]CRS-1810: Se ha aplicado el parche para la configuración específica de nodo del nodo rac-nodo-002 de Oracle Local Registry al nivel de parche 3669234883.

Añadimos entrada en el oratab para ASM. Vemos que el proceso la elimina:

    vi /etc/oratab
    +ASM2:/u01/app/19.24/grid:N

Continuamos con el siguiente nodo.

    [root@rac-nodo-001 RU_24]# export ORACLE_HOME=/u01/app/19.22.0/grid
    [root@rac-nodo-001 RU_24]# export PATH=$ORACLE_HOME/OPatch:$PATH

    [root@rac-nodo-001 RU_24]# cd /u01/software/RU_24

    [root@rac-nodo-001 RU_24]# $ORACLE_HOME/OPatch/opatchauto apply -switch-clone

    OPatchauto session is initiated at Tue Sep 17 17:20:26 2024
    El archivo de log de sesión es /u01/app/19.22.0/grid/cfgtoollogs/opatchauto/opatchauto2024-09-17_05-20-27PM.log
    El ID para esta sesión es QYX1

    Executing patch validation checks on home /u01/app/19.24/grid
    Patch validation checks successfully completed on home /u01/app/19.24/grid


    Verifying clone home details before switch for oracle home /u01/app/19.24/grid.
    Verified clone home details successfully for oracle home /u01/app/19.24/grid before switch.


    Update nodelist in the inventory for oracle home /u01/app/19.24/grid.
    Update nodelist in the inventory is completed for oracle home /u01/app/19.24/grid.


    Performing postpatch operations on CRS - starting CRS service on home /u01/app/19.24/grid
    Postpatch operation log file location: /u01/app/grid/crsdata/rac-nodo-001/crsconfig/crs_postpatch_apply_oop_rac-nodo-001_2024-09-17_05-21-37PM.log
    CRS service started successfully on home /u01/app/19.24/grid


    Confirm that all resources have been started from home /u01/app/19.24/grid.
    All resources have been started successfully from home /u01/app/19.24/grid.



    OPatchAuto correcto.

    --------------------------------Summary--------------------------------
    Out of place patching clone home(s) summary
    ____________________________________________
    Host : rac-nodo-001
    Actual Home : /u01/app/19.22.0/grid
    Version:19.0.0.0.0
    Clone Home Path : /u01/app/19.24/grid


    OPatchauto session completed at Tue Sep 17 17:29:41 2024
    Time taken to complete the session 9 minutes, 15 seconds

veremos en el log del CRS:


    2024-09-17 17:25:22.516 [CLSCFG(2181396)]CRS-1811: Se ha aplicado un parche al nodo rac-nodo-001 con el nivel de parche 3669234883.

Añadimos entrada en el oratab para ASM. Vemos que el proceso la elimina:

    vi /etc/oratab
    +ASM1:/u01/app/19.24/grid:N

Comprobaremos posteriormente estado de recursos y versión de la GI

      [grid@rac-nodo-001 RU_24]$ crsctl stat res -t

      --------------------------------------------------------------------------------
      Name           Target  State        Server                   State details
      --------------------------------------------------------------------------------
      Local Resources
      --------------------------------------------------------------------------------
      ora.LISTENER.lsnr
                  ONLINE  ONLINE       rac-nodo-001              STABLE
                  ONLINE  ONLINE       rac-nodo-002              STABLE
      ora.chad
                  ONLINE  ONLINE       rac-nodo-001              STABLE
                  ONLINE  ONLINE       rac-nodo-002              STABLE
      ora.helper
                  OFFLINE OFFLINE      rac-nodo-001              IDLE,STABLE
                  OFFLINE OFFLINE      rac-nodo-002              STABLE
      ora.net1.network
                  ONLINE  ONLINE       rac-nodo-001              STABLE
                  ONLINE  ONLINE       rac-nodo-002              STABLE
      ora.ons
                  ONLINE  ONLINE       rac-nodo-001              STABLE
                  ONLINE  ONLINE       rac-nodo-002              STABLE
      ora.proxy_advm
                  OFFLINE OFFLINE      rac-nodo-001              STABLE
                  OFFLINE OFFLINE      rac-nodo-002              STABLE
      --------------------------------------------------------------------------------
      Cluster Resources
      --------------------------------------------------------------------------------
      ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
            1        ONLINE  ONLINE       rac-nodo-001              STABLE
            2        ONLINE  ONLINE       rac-nodo-002              STABLE
      ora.DG_nodo_DATA.dg(ora.asmgroup)
            1        ONLINE  ONLINE       rac-nodo-001              STABLE
            2        ONLINE  ONLINE       rac-nodo-002              STABLE
      ora.DG_nodo_FRA.dg(ora.asmgroup)
            1        ONLINE  ONLINE       rac-nodo-001              STABLE
            2        ONLINE  ONLINE       rac-nodo-002              STABLE
      ora.DG_nodo_MGMT.dg(ora.asmgroup)
            1        ONLINE  ONLINE       rac-nodo-001              STABLE
            2        ONLINE  ONLINE       rac-nodo-002              STABLE
      ora.DG_nodo_REDO.dg(ora.asmgroup)
            1        ONLINE  ONLINE       rac-nodo-001              STABLE
            2        ONLINE  ONLINE       rac-nodo-002              STABLE
      ora.DG_nodo_VOTOCR.dg(ora.asmgroup)
            1        ONLINE  ONLINE       rac-nodo-001              STABLE
            2        ONLINE  ONLINE       rac-nodo-002              STABLE
      ora.LISTENER_SCAN1.lsnr
            1        ONLINE  ONLINE       rac-nodo-001              STABLE
      ora.LISTENER_SCAN2.lsnr
            1        ONLINE  ONLINE       rac-nodo-002              STABLE
      ora.LISTENER_SCAN3.lsnr
            1        ONLINE  ONLINE       rac-nodo-002              STABLE
      ora.MGMTLSNR
            1        ONLINE  ONLINE       rac-nodo-001              169.254.8.250 10.10.
                                                                  140.31,STABLE
      ora.asm(ora.asmgroup)
            1        ONLINE  ONLINE       rac-nodo-001              Started,STABLE
            2        ONLINE  ONLINE       rac-nodo-002              Started,STABLE
      ora.asmnet1.asmnetwork(ora.asmgroup)
            1        ONLINE  ONLINE       rac-nodo-001              STABLE
            2        ONLINE  ONLINE       rac-nodo-002              STABLE
      ora.cdbprod.xxxx.svc
            1        OFFLINE OFFLINE                               STABLE
            2        OFFLINE OFFLINE                               STABLE
      ora.cdbprod.xxxx.svc
            1        ONLINE  ONLINE       rac-nodo-002              STABLE
            2        ONLINE  ONLINE       rac-nodo-001              STABLE
      ora.cdbprod.db
            1        ONLINE  ONLINE       rac-nodo-001              Open,HOME=/u01/app/o
                                                                  racle/product/19.22.
                                                                  0,STABLE
            2        ONLINE  ONLINE       rac-nodo-002              Open,HOME=/u01/app/o
                                                                  racle/product/19.22.
                                                                  0,STABLE
      ora.cdbprod.xxxx.svc
            1        ONLINE  ONLINE       rac-nodo-002              STABLE
            2        ONLINE  ONLINE       rac-nodo-001              STABLE
      ora.cdbprod.xxxx.svc
            1        ONLINE  ONLINE       rac-nodo-001              STABLE
            2        ONLINE  ONLINE       rac-nodo-002              STABLE
      ora.cdbprod.xxxx.svc
            1        OFFLINE OFFLINE                               STABLE
            2        OFFLINE OFFLINE                               STABLE
      ora.cdbprod.xxxx.svc
            1        ONLINE  ONLINE       rac-nodo-002              STABLE
      ora.cdbprod.xxxx.svc
            2        ONLINE  ONLINE       rac-nodo-002              STABLE
      ora.cvu
            1        ONLINE  ONLINE       rac-nodo-002              STABLE
      ora.mgmtdb
            1        ONLINE  ONLINE       rac-nodo-001              Open,STABLE
      ora.qosmserver
            1        ONLINE  ONLINE       rac-nodo-001              STABLE
      ora.rac-nodo-001.vip
            1        ONLINE  ONLINE       rac-nodo-001              STABLE
      ora.rac-nodo-002.vip
            1        ONLINE  ONLINE       rac-nodo-002              STABLE
      ora.rhpserver
            1        OFFLINE OFFLINE                               STABLE
      ora.scan1.vip
            1        ONLINE  ONLINE       rac-nodo-001              STABLE
      ora.scan2.vip
            1        ONLINE  ONLINE       rac-nodo-002              STABLE
      ora.scan3.vip
            1        ONLINE  ONLINE       rac-nodo-002              STABLE
      --------------------------------------------------------------------------------
    [grid@rac-nodo-001 RU_24]crsctl query crs activeversion -f
    Oracle Clusterware active version on the cluster is [19.0.0.0.0]. The cluster upgrade state is [NORMAL]. The cluster active patch level is [3669234883].

    [grid@rac-nodo-002 RU_24]$ crsctl query crs activeversion -f
    Oracle Clusterware active version on the cluster is [19.0.0.0.0]. The cluster upgrade state is [NORMAL]. The cluster active patch level is [3669234883].

Nos quedaría actualizar HOME en dependencias… scripts? OEM?

Para OEM te pongo fácil localizar los targets:

   select t.target_name,
               p.property_name,
               p.property_type,
               p.property_value
        from sysman.mgmt_target_properties p,sysman.mgmt_targets t
        where p.property_name in ('DBVersion','OracleHome')
          and t.target_guid=p.target_guid
          and property_value = '/u01/app/19.22.0/grid'
          and upper(target_name) like '%XXXX%';

Esperamos unos días, no seamos ansias… Una vez validado, todo va perfecto? Eliminamos binarios antiguos

-- Eliminar binarios antiguos. Ambos nodos, home antiguo. oracle

   [grid@rac-nodo-001 RU_24]export ORACLE_HOME=/u01/app/19.22.0/grid
   [grid@rac-nodo-001 RU_24]$ORACLE_HOME/deinstall/deinstall -local

   [grid@rac-nodo-002 RU_24]export ORACLE_HOME=/u01/app/19.22.0/grid
   [grid@rac-nodo-002 RU_24]$ORACLE_HOME/deinstall/deinstall -local

Happy patching!