Parchear base de datos Oracle con AutoUpgrade

En esta entrada detallamos paso a paso cómo parchear una base de datos Oracle 19c usando AutoUpgrade. AutoUpgrade es la herramienta recomendada por Oracle para gestionar actualizaciones de base de datos de manera más rápida, segura y sencilla. Vamos a demostrar también, cómo usar AutoUpgrade para parchear una base de datos de forma automática y sencilla.

En este ejemplo veremos cómo con AutoUpgrade, no sólo podemos parchear una base de datos, sino que también descarga los parches necesarios, crear un nuevo directorio raíz de Oracle, permitiendo aplicar parches usando el método recomendado «out-of-place». Autoupgrade realiza las comprobaciones antes y después del parcheo de forma automática por lo que es un método más sencillo para aplicar parches a nuestra base de datos.

Nuestro laboratorio

Base de datos 19c:  versión 19.27
Multitenant: Si. PDBS (TESTPDB1).
RAC: No

En nuestro caso tenemos la base de datos en versión 19.27.0.0.0 y vamos a aplicar el parche 19.28.

1 – Preparar la base de datos antes de parchear.

Independientemente del método a aplicar, Oracle siempre recomienda analyzar la base de datos, o realizar un precheck del estado de la base de datos para conocer si el parcheo puede realizarse sin problemas.

Para ello lanzaremos AutoUpgrade en el modo «analyze», donde se realizará un análisis para comprobar si nuestra base de datos está aparentemente preparada para ser parcheada.

Autoupgrade requiere un archivo de configuración sobre la información de base de datos a parchear.
Hemos creado el fichero 01-simple.patching.cfg con la siguiente información:

global.global_log_dir=/home/oracle/autoupgrade-patching/simple-patching/log
patch1.source_home=/u01/app/oracle/product/19
patch1.target_home=/u01/app/oracle/product/19_28
patch1.sid=TEST
patch1.folder=/home/oracle/patch-repo
patch1.patch=RECOMMENDED,37738908
patch1.download=no
  • source_home and sid describe la base de datos actual.
  • global_log_dir directorio donde se almacenaran los ficheros de log.
  • target_home nos indica la localización del nuevo Oracle Home. Si no existe, AutoUpgrade creará uno nuevo con las características del Oracle origen.
  • folder le indica a Autoupgrade donde se encuentra el parche a aplicar. En este caso lo hemos descargado con aterioridad pero puedes indicarle a Autoupgrade que realice descarge el parche de forma automática, para ello debes indicarle las credenciales correctas de My Oracle Support.
  • patch indica a AutoUpgrade el parche a aplicar. RECOMMENDED significa la actualización del OPatch de forma automática y la Release más reciente, además los parches de los paquetes OJVM y Data Pump.
  • download Le indicas las credenciales donde Oracle debería descargar el parche. En nuestro caso no aplica al estar descargado con anterioridad.

2 – Analyzar la base de datos antes de parchear.

Lanzamos el siguiente comando con la opción analyze

java -jar autoupgrade.jar -config scripts/01-simple.patching.cfg -mode analyze

3 – Monitorizar el proceso

lsj -a 10
  • lsj lista los jobs activos, es decir nuestro «analyze» del parcheo y se refresca cada 10 segundos.

Esperamos a que finalice el proceso. En caso de que todo esté correcto, la salida será parecida a esta con «jobs falied 0».

4 – Comprobamos los ficheros de logs

Antes de aplicar el parche definitivamente se recomienda revisar los ficheros html/log generados por AutoUpgrade. Estos ficheros revelan un informe resumen del análisis e indican si el precheck se ha realizado correctamente.

En el log del reporte se indica:

  • La base de datos a parcheear será nuestra base de datos TEST
  • Estamos parcheando de la versión 19.27 to 19.28. (el parche que hemos descargado)
  • In your own environment, when AutoUpgrade downloads patches, it will always take the latest available Release Upgrade from MOS when you specify patch=recommended.
    En este caso no estamos conectados a Oracle Support por lo tanto no se descargará ningún parche aún especificando patch=recommended. En un entorno conectado a Oracle, se descargarán los parches para aplicar la última actualización disponible en MOS.
  • Se indica que todos los PRECHECKS son correctos y que no necesitamos ninguna acción manual.
  • Esta base de datos por tanto está lista para ser parcheada.

5 – Parcheamos la base de datos.

java -jar autoupgrade.jar -config scripts/01-simple.patching.cfg -mode deploy

Chequeamos el estado de nuestro parcheo:

lsj -a 10

lsj lista los jobs activos, es decir nuestro «analyze» del parcheo y se refresca cada 10 segundos.

Si necesitamos más información del proceso, podemos hacer lo siguiente.
Pulsamos ENTER en la pantalla anterior para ir a la pantalla principal de autoupgrade, allí ejecutaremos lo siguiente

status -job 102 -a 10

Nota: el número 102 indica el job de nuesro proceso, que puedes identificar en la salidad el comando lsj.

6- Comprobamos los ficheros de log.

En la salida del comando se puede ver la ruta a los ficheros de log. Es conveniente revisar estos ficheros mientras se está aplicando el parche para comprobar que todo se está realizando de forma correcta.

Una vez finalizado el proceso podremos ver lo siguiente.

Cómo podemos observar, AutoUpgrade ha creado un «restore point», con lo que podremos revertir el proceso en caso de que encontráramos algún error en la aplicación del parche. De momento no lo borramos hasta comprobar que todo el proceso se ha realizado de forma correcta.

Revisamos otra vez detenidamente los ficheros de log para comprobar que no se ha producido ningún error durante la aplicación del parche.

Comprobamos que el parche está aplicado correctamente.

export ORACLE_HOME=/u01/app/oracle/product/19_28/
$ORACLE_HOME/OPatch/opatch lspatches

Una vez hemos comprado que todo es correcto, podemos borrar el restore point.

Cómo observamos con AutoPatch podemos realizar de forma automática lo siguiente:

  • Parchear la base de datos.
  • Se ha creado un nuevo Oracle
  • Actualización de Opah y actualizaciones de las veriones de los parches requeridos.
  • Tareas de precheck y de post-instalación tras la aplicación del parche.
  • Copia de los archivos de configuración de la base de datos antigua.

Por último, actualizaremos nuestro script de profile de entornos para que se adapte a nuestro nuevo Oracle Home.

Ejemplo profile19_28.env

Scroll al inicio