Entorno: RAC de 2 nodos con Oracle Linux 8 y un CRS versión 12.2
Primero descargamos el instalador del GRID con el usuario oracle:
$ cd /u01/soft/gi_19c
$ wget --http-user=xxxx@xxxx --http-password=xxxx --no-check-certificate --output-document=V982068-01.zip "https://edelivery.oracle.com/osdc/softwareDownload?fileName=V982068-01.zip&token=ejQxL3hTRllsK1Nway9QQmJCdXk2USE6OiFmaWxlSWQ9MTA0NDg4MDA5JmZpbGVTZXRDaWQ9OTAxMzI3JnJlbGVhc2VDaWRzPTg5OTMzMiZwbGF0Zm9ybUNpZHM9MzUmZG93bmxvYWRUeXBlPTk1NzY0JmFncmVlbWVudElkPTExNjgwOTE1JmVtYWlsQWRkcmVzcz1mYWdyYW5kZUB1YWRlLmVkdS5hciZ1c2VyTmFtZT1FUEQtRkFHUkFOREVAVUFERS5FRFUuQVImaXBBZGRyZXNzPTE3MC4yMzkuMTcwLjEwOCZ1c2VyQWdlbnQ9TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEzNC4wLjAuMCBTYWZhcmkvNTM3LjM2JmNvdW50cnlDb2RlPUFSJmRscENpZHM9MTA2MzIwOQ"
Luego descargamos el último parche RU disponible, en mi caso fue el GI RELEASE UPDATE 19.26.0.0.0
$ cd /u01/soft/gi_19c/parche
$ wget --http-user=xxxx@xxxx --http-password=xxxx --no-check-certificate --output-document=p37257886_190000_Linux-x86-64.zip "https://updates.oracle.com/Orion/Services/download/p37257886_190000_Linux-x86-64.zip?aru=26041193&patch_file=p37257886_190000_Linux-x86-64.zip"
Creamos los directorios necesarios y descomprimimos los nuevos binarios 19c. Previamente debes asegurarte que tengas espacio libre en el /u01:
mkdir -p /u01/app/19.0.0/grid
chown oracle:oinstall /u01/app/19.0.0/grid
su - oracle
$ cp V982068-01.zip /u01/app/19.0.0/grid/
$ cd /u01/app/19.0.0/grid/
$ unzip V982068-01.zip
$ rm V982068-01.zip
Debido a que en Oracle Linux 8 la versión del OPENSSH es 8, la validación de la conectividad SSH fallará con el siguiente error:

Para evitar este error, debemos aplicar el último RU disponible en el nuevo $GI_HOME, previo a su configuración (ejecución del root.sh) - Fuente: Nota 2555697.1
Pero previamente debemos descargar e instalar la última versión del OPatch para version 19c (Patch 6880880).
Como estamos trabajando en un Oracle Linux 8, al ejecutar el instalador aparecerá el siguiente mensaje de error:

Para evitarlo debemos configurar la variable CV_ASSUME_DISTID con el valor OEL7
$ cd /u01/soft/gi_19c/parche
$ unzip p37257886_190000_Linux-x86-64.zip
$ export CV_ASSUME_DISTID=OEL7
$ export ORACLE_HOME=/u01/app/19.0.0/grid
$ $ORACLE_HOME/gridSetup.sh -applyRU /u01/soft/gi_19c/parche/37257886
Luego verificamos que nuestro ambiente cumpla con todos los requisitos necesarios para realizar el upgrade:
$ /u01/app/19.0.0/grid/runcluvfy.sh stage -pre crsinst -upgrade -rolling -src_crshome /u01/app/12.2.0/grid -dest_crshome /u01/app/19.0.0/grid -dest_version 19.0.0.0.0 -fixupnoexec -verbose > cluverify.log
En mi caso, el cluvfy me indicó que debía descargar y aplicar el parche 27006180 en el $GI_HOME origen (12.2)
$ cd /u01/soft/parches
$ wget --http-user=xxxx@xxxx --http-password=xxxx --no-check-certificate --output-document=p27006180_122010_Linux-x86-64.zip "https://updates.oracle.com/Orion/Services/download/p27006180_122010_Linux-x86-64.zip?aru=21761216&patch_file=p27006180_122010_Linux-x86-64.zip"
$ unzip p27006180_122010_Linux-x86-64.zip
Antes de aplicar el parche, debí descargar e instalar la última versión del OPatch para 12.2
Luego aplicamos el parche con el usuario root en modo rolling (de a un nodo por vez) para evitar pérdida de servicio total:
NODO 1
yum install -y zip
export ORACLE_HOME=/u01/app/12.2.0/grid
$ORACLE_HOME/bin/crsctl stop crs => COMIENZA PERDIDA DE SERVICIO EN EL NODO 1.
(Lo bajo porque sino me devuelve este error:
OPATCHAUTO-72030: Execution mode invalid. OPATCHAUTO-72030: Cannot execute in rolling mode, as CRS home is shared. OPATCHAUTO-72030: Execute in non-rolling mode. OPatchAuto failed.)
$ORACLE_HOME/OPatch/opatchauto apply /u01/soft/parches/27006180 -oh $ORACLE_HOME -analyze
$ORACLE_HOME/OPatch/opatchauto apply /u01/soft/parches/27006180 -oh $ORACLE_HOME
$ORACLE_HOME/bin/crsctl start crs => VUELVE A DAR SERVICIO EL NODO 1.
NODO 2
yum install -y zip
$ORACLE_HOME/bin/crsctl stop crs => COMIENZA PERDIDA DE SERVICIO EN EL NODO 2.
$ORACLE_HOME/OPatch/opatchauto apply /u01/soft/parches/27006180 -oh $ORACLE_HOME -analyze
$ORACLE_HOME/OPatch/opatchauto apply /u01/soft/parches/27006180 -oh $ORACLE_HOME
$ORACLE_HOME/bin/crsctl start crs => VUELVE A DAR SERVICIO EL NODO 2.
Volvemos a ejecutar el CLUVFY para corroborar que ya no figuren errores:
$ /u01/app/19.0.0/grid/runcluvfy.sh stage -pre crsinst -upgrade -rolling -src_crshome /u01/app/12.2.0/grid -dest_crshome /u01/app/19.0.0/grid -dest_version 19.0.0.0.0 -fixupnoexec -verbose > cluverify_2.log
Si ya no se presentan errores, avanzamos con el proceso (para no hacer tan largo este artículo con las imágenes del instalador, resumo los pasos):
$ export CV_ASSUME_DISTID=OEL7
$ /u01/app/19.0.0/grid/gridSetup.sh -dryRunForUpgrade
- Upgrade Oracle Grid Infrastructure
- Next
- Next
- Next
- Verificar que el Oracle Base sea el correcto y luego hacer clic en Next
- Next
- Asegurarse que no exista ningún punto con estado Failed. Clic en Next
- Submit
- Ejecutar el /u01/app/19.0.0/grid/rootupgrade.sh como root. Esto demora varios minutos
Por precaución, reinicio los nodos del RAC (de a uno por vez) antes del upgrade para asegurarme que no exista ningún problema previo y que todo levante bien.
Ahora sí, ejecutamos el proceso del upgrade, esto provocará una pérdida de servicio total de la base de datos, con lo cual se deberá realizar en una ventana de trabajo previamente coordinada con el negocio:
$ /u01/app/19.0.0/grid/gridSetup.sh
Consultamos la version del CRS
$ /u01/app/19.0.0/grid/bin/crsctl query crs activeversion
¡Listo! Ya tenemos nuestro CRS en versión 19c 😀
Hasta el próximo post 😀
Saludos desde Buenos Aires, Argentina