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

We need to add new disks to Disk Group
¿Estás por añadir, remover o reemplazar discos en ASM? Puede que no estés haciéndolo de la forma más eficiente. Aprende cómo.
Case sensitive comparison
Sabias que AutoUpgrade falla si los nombres de los servidores no están en minúsculas y estás trabajando con una base de datos RAC One Node.
OEM shows incorrect value for used space
Qué hacer cuando Oracle reporta un valor incorrecto para el espacio usado en Fast Recovery Area.
DG broker using wallet
Aprenda a resolver y evitar el error ORA-01017 cuando tenga implementado Oracle Data Guard con wallet.
enq: TX - row lock contention
Aprenda a identificar la fila involucrada en la ocurrencia del evento de espera "enq: TX - row lock contention"
Oracle uses sha512 since RU 19.16
Aprenda a resolver el error CRS-2304 GPnP profile signature verification failed al iniciar una base de datos 11.2 en un cluster 19c.

¿Necesitas Ayuda?

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