En el siguiente artículo vamos a mostrar la manera de aplicar un patch de tipo PSU en una base de datos en Oracle Database Cloud Service utilizando la herramienta de línea de comando “dbaascli”. En nuestro ejemplo aplicaremos el último PSU para Oracle Database 11.2.0.4 disponible, el cual desde algún tiempo estábamos esperando y justo durante el desarrollo de este artículo fue liberado.
Comenzamos entonces con nuestra tarea. Primero nos conectamos a Oracle Cloud y nos posicionarnos en la página “home” de nuestra base de datos, una vez allí comprobamos si existen nuevas actualizaciones. Como podemos ver en la imagen, en el área“Administration”, tenemos el aviso de la existencia de un nuevo parche disponible (“1 Patches available”). Hacemos click en él para ver los detalles:
Se trata del PSU Update 11.2.0.4.161018. Si queremos, podemos profundizar más sobre él leyendo el archivo “readme” del parche (desde Oracle Support), esto lo hacemos accediendo por el enlace “Readme” debajo del nombre. Sobre el lado derecho de la pestaña tenemos un menú de acción desde el cual podemos ejecutar un “Precheck” (verificación de pre-requisitos) y/o aplicar el parche (“Patch”). Ejecutamos primero el precheck, esto nos permite estar seguros de que no tendremos problemas al momento de aplicar efectivamente el parche.
Esta no es la primera vez que aplicamos un parche en Oracle Database Cloud Service y en nuestra experiencia anterior (2 o 3 meses atrás) aplicamos también el último PSU disponible en ese momento y lo hicimos sin tener ningún tipo de problema. Resultó ser un proceso sin sobresaltos y demoró menos de una hora en finalizar.
En esta oportunidad, al ejecutar la opción de “Precheck”,la verificación de pre-requisitos falló.
Desafortunadamente, la página “Database Home” no nos muestra detalles sobre que pre-requisito falló específicamente.Por tal motivo, quisimos probar suerte de nuevo pero esta vez realizando la tarea desde línea de comandos. Oracle Cloud nos provee la herramienta “dbaascli” para administrar el servicio de bases de datos. Esta herramienta también nos permite la aplicación de parches, no obstante, hay que tener en cuenta que algunas de sus funcionalidades requieren ser ejecutadas con privilegios de usuario“root”.
Nos conectamos entonces a nuestro servidor en la nube vía SSH con el usuario "opc" (este usuario tiene permiso de sudo para poder cambiar a usuario root).
Una vez en la máquina virtual, ejecutamos el siguiente comando para verificar los pre-requisitos del parche que tenemos disponible para nuestra base de datos:
dbaascli dbpatchm --run -prereq
A continuación podemos ver la salida del comando:
Como podemos ver en la imagen, parece que no tuvimos suerte! Analizando la salida e investigando un poco, encontramos un “thread” en Oracle Community donde se indica que para subsanar el problema necesitamos actualizar el paquete dbaascli (cloud tooling).
Vamos entonces a verificar con que versión estamos trabajando.
Ejecutamos el siguiente comando como root:
Dbaascli dbpatchm --run -list_tools
La salida no resulta muy informativa al principio, pero al leer el archivo de logs vemos que existen actualizaciones disponibles para dbaascli:
De acuerdo a la documentación de Oracle, necesitamos actualizar el paquete dbaascli utilizando al propio dbaascli :
http://docs.oracle.com/en/cloud/paas/database-dbaas-cloud/csdbi/update-cloud-tooling-using-dbpatchm.html
Lo hacemos ejecutando el siguiente comando:
dbaascli dbpatchm --run –toolsinst –rpmversion=16.4.5.1_161213.1526
Indicamos en el parámetro “rpmversion” la última disponible del rpm.
Vemos un “WARNING” en la salida, pero parece que fue actualizado. Ejecutamos entonces nuevamente el comando (dbaascli dbpatchm –run-list_tools), comprobamos los logs y vemos que efectivamentese actualizó sin problemas.
Utilizamos ahora dbaascli para comprobar los pre-requisitos y comparamos la salida con la anterior. Inicialmente nos parece que no funcionó correctamente,pero para estar seguros también realizamos la comprobación de pre-requisitos en la consola de servicio de Oracle Database Cloud, esta vez sí se completó de manera exitosa.
Comparando los logs de nuestras corridas anteriores de dbaascli,incluso utilizando la consola web para aplicar el parche o verificar pre-requisitos, notamos que la causa de falla de nuestros primeros intentos fue la versión desactualizada de las dbaastools.
Algo interesante que encontramos, el lugar donde se encuentran los logs del proceso de parcheo de la base de datos. Los podemos ubicar en la carpeta /var/opt/oracle/log/dbpatchm .
Una vez comprobados los pre-requisitos, ahora si procedemos a aplicar el parche:
Hacemos click en la opción "patch" del menú de acción. Se nos solicita ingresar una “nota” y nos pregunta si queremos forzar la aplicación del parche, introducimos un texto (por ejemplo "it’s so easy to patch :)") y hacemos click en el botón "patch" para comenzar el proceso.
Luego de unos 25 minutos aproximadamente, el parche fue exitosamente instalado y nuestra base de datos quedó arriba y funcionando sin problemas. Ahora sí, finalmente estamos con nuestra base de datos en el último nivel de PSU.
Esperamos que este artículo le haya resultado de utilidad y lo invitamos a continuar leyendo nuestras próximas publicaciones focalizadas en Oracle Cloud.
Gokhan Atil (Oracle ACE Director) es un experimentado administrador de bases de datos con basta experiencia en campo real en Oracle, PostgreSQL, Microsoft SQL Server, MySQL y NoSQL. Gokhan es Oracle Certified Professional (OCP) en EBS R12, Oracle 10g, 11g y notablemente experto en Oracle Enterprise Manager. Gokhan es miembro fundador y vice-presidente del “Turkish Oracle User Group (TROUG)”. Habitual presentador de conferencias incluyendo en el “US Oracle Open World”. Co-autor del libro “Expert Oracle Enterprise Manager 12c" y posee un blog relacionado desde el ano 2008: www.gokhanatil.com.
Joel Pérez es un experto DBA (Oracle ACE Director, Maximum Availability OCM, OCM Cloud Admin. & OCM12c/11g) con más de 16 años de experiencia real en el mundo de tecnología Oracle, especializado en diseño e implementación de soluciones de: Cloud, Alta disponibilidad, Recuperación contra desastres, Upgrades, Replicación y toda área relacionada con bases de datos Oracle. Joel se desempeña como "Chief Technologist & MAA, HA Architect" para www.Enmotech.com Yunhe Enmo (Beijing) Technology Co. Ltd. Beijing, China. Perfil OCM Joel Pérez: http://education.oracle.com/education/otn/JoelPerez.htm
Este artículo ha sido revisado por el equipo de productos Oracle y se encuentra en cumplimiento de las normas y prácticas para el uso de los productos Oracle.