Aprende a parchar como Dios manda (S2E3)

En el episodio anterior mostramos como aplicar parches out-of-place a Oracle Grid Infrastructure for a standalone server, pero ¿qué ocurre si tenemos que aplicar el parche en múltiples servidores?

Siempre podemos aplicar el procedimiento ya conocido, pero repetir los pasos una y otra vez no es muy eficiente.

Afortunadamente es posible optimizar esta tarea, aprovechando las ventajas del parchado out-of-place, tal como se muestra a continuación.

Gold Image al rescate

¿Qué tal si en lugar de estar instalando el software base y aplicarle los parches requeridos, por cada servidor, simplemente instalamos el software ya parchado tal y como lo necesitamos, ahorrándonos así tiempo y esfuerzo?

Pues esto es posible usando Gold Image, veamos cómo se crea para Oracle Grid Infrastructure.

Creación de Oracle Home

Se crea un directorio que luego se asociará con un Oracle Home llamado GITemp.
$ mkdir /u01/app/grid/19.0.0/grid_1

1

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_1
$ 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.

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="GITemp" -applyRU ${STAGE}/37257886 \
-applyOneOffs ${STAGE}/37542054 \
-responseFile ${GI_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 GITemp conteniendo los binarios de Oracle Grid Infrastructure 19.26.

3

4

Creación de Gold Image

Como paso final, creamos el Gold Image en base al Oracle Home que tenemos ya parchado.

$ ${GI_HOME}/gridSetup.sh \
-silent \
-createGoldImage \
-destinationLocation \
${STAGE}/goldImages \
-name grid_home_19_26.zip

El resultado final es un archivo zip con los contenidos del Oracle Home GITemp, que podemos mantener en un directorio compartido con NFS, para su uso en el parchado de todos los servidores con Oracle Grid Infrastructure.

$ ls -lt /stage/goldImages
total 51721292
drwxrwxr-x  2       4096 May 21 15:52 .
drwxrwxr-x 27       4096 Jul 15 14:28 ..
-rw-r--r-- 4204999485 Apr 27 19:30 grid_home_19_26.zip
-rw-r--r-- 4718682191 Apr 16 11:40 db_home_19_26.zip
-rw-r--r-- 5915692667 Jan 25 13:39 grid_home_19_25.zip
-rw-r--r-- 4726890823 Jan 25 15:13 db_home_19_25.zip
-rw-r--r-- 4313523245 Aug 28  2024 grid_home_19_24.zip
-rw-r--r-- 2970297266 Aug 28  2024 db_home_19_24.zip

Parchado out-of-place con Gold Image

Si no lo has hecho aún, te recomiendo leer primero los pasos para aplicar un parche out-of-place a Oracle Grid Infrastructure for a standalone server, para una mejor comprensión de lo que viene, y luego regresas.

Ahora sí, ya que contamos con un Gold Image, podemos reemplazar los pasos 3 y 4 de dicho procedimiento por los siguientes:

Copiado del Gold Image

Se procede a descomprimir el software ya parchado de Oracle Grid Infrastructure 19c, contenido en el Gold Image, en el directorio recién creado.

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

$ unzip -oq ${STAGE}/goldImages/grid_home_19_26.zip -d ${GI_HOME}

1

2

Registrando el nuevo Oracle Home

Se procede a compilar los binarios y registrar el Oracle Home GridHome2 en el inventory.
$ ${GI_HOME}/gridSetup.sh -silent -printtime -waitforcompletion \
-ignorePrereqFailure -lenientInstallMode \
ORACLE_HOME_NAME="GIHome2" \
-responseFile ${GI_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

Con esto tenemos todo listo para continuar con el procedimiento de parchado out-of-place, desde el paso 5 en adelante.

Conclusiones

La preparación de cada nuevo Oracle Home para un parchado out-of-place, dependiendo de la cantidad de parches considerados, puede tomar 20 minutos o más, pero gracias al trabajo previo de preparar un Gold Image puede tomar tan solo un par de minutos!

Con este episodio demos por terminada la segunda temporada, sin embargo nos queda mucho por explorar, por ejemplo: ¿cómo parchar el Grid Home pero de un cluster? ¿cómo agregar nodos a un cluster, o incluso crear clusters desde cero usando Gold Image?, así que estén atentos a la tercera temporada!

Posts Recientes

in-place patching - apply patch OH
Primer post de una serie dedicada al arte de parchar Oracle. Empezamos con el parchado in-place, la forma más común y también la más peligrosa.
Aprenda a descargar los parches de Oracle, tanto manualmente como de forma automatizada, usando el utilitario getMOSPatch.
Oracle Support Timeline
Oracle ha decidido ampliar el Soporte Premier por 2 años más, por lo que ya no vencera el 2024 sino el 2026!
Link a articulo publicado en Toad World, sobre como aplicar un patch out-of-place a Grid Infrastructure, usando un Golden Image.
Link a articulo publicado en Toad World, sobre como aplicar un patch out-of-place a Grid Infrastructure, en modalidad rolling.
Link a artículo publicado en Oracle Technology Network, sobre como usar un clon de Oracle Home para aplicar patches.

¿Necesitas Ayuda?

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