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

oop patch grid siha - patch new OH
Aprende a parchar Grid Infrastructure for Single Instance, también conocido como Oracle Restart, con la modalidad out-of-place.
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.
Setting incremental statistics for partitioned tables
Si implementaste estadísticas incrementales en versiones previas a Oracle 12.2, puede que no estés aprovechando todas sus ventajas. ¡Aprende a hacerlo!
if there is an unusable index when analyze is executed, expect ORA-1502
Sobre cómo un error causado por ejecutar analyze a una tabla con indices unusable es resuelto con expresiones regulares y dbms_stats.

¿Necesitas Ayuda?

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