Descarga parches como un profesional

Aplicar parches es una tarea regular, dentro de la lista de actividades de todo DBA, y que implica conectarse a la página de My Oracle Support y seguir los siguientes pasos:

1. Ir a la pestaña [Patches & Updates].

2. Ingresar el número de parche.

3. Seleccionar la plataforma.

4. Presionar el botón [Search].

5. Seleccionar, de entre la lista de resultados, el parche asociado a la versión de Oracle a la que lo vamos a aplicar.

6. Presionar el botón [Download]/span>.

7. Darle click al link.

Si bien no es cosa complicada, imagínate que necesitas descargar una veintena de parches, y tienes que repetir estos 7 pasos una y otra vez!

Afortunadamente hay un método más rápido y eficiente de hacerlo.

getMOSPatch al rescate

Maris Elsins se tomó la molestia de confeccionar un programa en Java que simplifica y acelera la descarga de parches: getMOSPatch.

Sin más rodeos, veamos como usarlo:

a. Descargarlo desde GitHub.

wget "https://github.com/MarisElsins/getMOSPatch/raw/master/getMOSPatch.jar" -q
b. Ejecutarlo, solicitando la descarga del parche 36285197, pero que sea para el RU 19.23, y para Linux x64.
java -jar getMOSPatch.jar \
MOSUser=enrique@gmail.com \
MOSPass=Oracle_4U$ \
patch=36285197 \
regexp=".*1923000.*" \
platform=226P \
stagedir="/stage"
download=all

Noten que se ha proporcionado como parámetros el usuario (MOSUser) y contraseña (MOSPass) con el que nos conectamos a My Oracle Support; el número de parche (patch); el RU deseado (regexp); la plataforma (platform); y el directorio en el que deseamos que se descargue (stagedir).

Si se requiere de varios parches, simplemente los separamos con comas, teniendo cuidado de no dejar espacios en blanco entre ellos; igual con las plataformas.

Sobre la plataforma, los valores más comunes son:

23POracle Solaris on SPARC (64-bit)
212PIBM AIX on POWER Systems (64-bit)
226PLinux x86-64
233PMicrosoft Windows x64 (64-bit)

Ejemplo definitivo

Imaginemos que deseamos aplicar el último Release Update (19.23) a nuestras instalaciones con Oracle 19c, junto con algunos parches recomendados (nota 555.1 en MOS) y la versión más reciente de OPatch, tanto para AIX como para Linux, de acuerdo a la siguiente lista:

36233263Database release update 19.3.0.0.0
36195566JDK bundle patch 19.0.0.0.240416
36199232OJVM release update 19.23.0.0.0
36420641DATAPUMP BUNDLE PATCH 19.23.0.0.0
33427856Gathering statistics for indexes on large tables in 19c may be time-consuming
6880880OPatch 12.2.0.1.42 for DB 19.0.0.0.0

Solo los one-off están asociados al RU 19.23, mientras que el resto de parches no dependen del RU sino que están asociados con 19c en sí, por lo que se va a requerir de 2 llamados a getMOSPatch, con distintos valores para regexp:

$ java -jar getMOSPatch.jar patch=36233263,36195566,36199232,6880880 regexp=".*19000.*" platform=212P,226P download=all

Downloading all selected files:
 Downloading /stage/p36233263_190000_AIX64-5L.zip: 1874MB at average speed of 1872KB/s - DONE!
 Downloading /stage/p36233263_190000_Linux-x86-64.zip: 1770MB at average speed of 25265KB/s - DONE!
 Downloading /stage/p36195566_190000_AIX64-5L.zip: 153MB at average speed of 3582KB/s - DONE!
 Downloading /stage/p36195566_190000_Linux-x86-64.zip: 120MB at average speed of 24018KB/s - DONE!
 Downloading /stage/p36199232_190000_AIX64-5L.zip: 125MB at average speed of 2822KB/s - DONE!
 Downloading /stage/p36199232_190000_Linux-x86-64.zip: 121MB at average speed of 25612KB/s - DONE!
 Downloading /stage/p6880880_190000_AIX64-5L.zip: 168MB at average speed of 7825KB/s - DONE!
 Downloading /stage/p6880880_190000_Linux-x86-64.zip: 127MB at average speed of 19238KB/s - DONE!
$ java -jar getMOSPatch.jar patch=36420641,33427856 regexp=".*1923000.*" platform=212P,226P download=all

Downloading all selected files:
 Downloading /stage/p36420641_1923000DBRU_Generic.zip: 2MB at average speed of 2947KB/s - DONE!
 Downloading /stage/p33427856_1923000DBRU_Generic.zip: 0MB at average speed of 848KB/s - DONE!

Por simplicidad se ha obviado mostrar algunos parámetros, como MOSUserMOSPass.

El resultado final es:

$ ls -l /stage

total 9257664
-rw-r--r--  160694091 Jun 30 p36195566_190000_AIX64-5L.zip
-rw-r--r--  126843335 Jun 30 p36195566_190000_Linux-x86-64.zip
-rw-r--r--  131554204 Jun 30 p36199232_190000_AIX64-5L.zip
-rw-r--r--  127475677 Jun 30 p36199232_190000_Linux-x86-64.zip
-rw-r--r-- 1965829022 Jun 30 p36233263_190000_AIX64-5L.zip
-rw-r--r-- 1856311021 Jun 30 p36233263_190000_Linux-x86-64.zip
-rw-r--r--  176769223 Jun 30 p6880880_190000_AIX64-5L.zip
-rw-r--r--  133535622 Jun 30 p6880880_190000_Linux-x86-64.zip
-rw-r--r--     519356 Jun 30 p33427856_1923000DBRU_Generic.zip
-rw-r--r--    2670772 Jun 30 p36420641_1923000DBRU_Generic.zip

¿Qué les pareció? Sin dudas getMOSPatch nos va aliviar el dolor de cabeza de tener que descargar múltiples parches. Ahora solo tenemos que tomar nota de los números de parche que necesitamos y listo, en minutos los tendremos disponibles para aplicarlos en toda nuestra infraestructura de Oracle!

¿Te pareció interesante este artículo?, ¿te quedaron algunas dudas?, ¿quieres sugerirme un tema a tratar?, pues déjame tus comentarios o ¡contáctame ahora mismo!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Posts Relacionados

Qué hacer cuando Oracle reporta un valor incorrecto para el espacio usado en Fast Recovery Area.
Aprenda a resolver y evitar el error ORA-01017 cuando tenga implementado Oracle Data Guard con wallet.
Aprenda a identificar la fila involucrada en la ocurrencia del evento de espera "enq: TX - row lock contention"

¿Necesitas Ayuda?

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