Al instalar parches podemos encontrarnos con el error code 73 de OPatch, que nos aparecerá tal que así:
OPatch failed with error code 73
Si pretendemos actualizar una base de datos, tendremos que hacerlo con ésta apagada. Cuando este requisito no se cumple aparece el error code 73, y ésta es la causa más probable por la que solemos recibir este error, así que vamos a ver cómo revisar que la base de datos esté apagada y preparada para actualizar y/o parchear.
Lo primero es comprobar que todas las bases de datos que corren con el motor de Oracle que queremos actualizar estén apagadas, para ello podemos utilizar el siguiente comando:
ps -ef | grep pmon
PMON (Process Monitor) es un proceso de Oracle que se ejecuta en segundo plano al iniciar una instancia de base de datos. Esto quiere decir que por cada base de datos nos aparecerá un proceso pmon distinto.
Si en el resultado del comando aparecen listadas una o más bases de datos, las tendremos que apagar. Podemos conectar una por una y apagarlas de la siguiente forma:
sqlplus / as sysdba
shutdown immediate
Después de apagarlas, tendremos que fijarnos en los LISTENER, ya que tampoco podremos actualizar o parchear si estos están activos. Probablemente ya lo sepáis pero los LISTENER son procesos de Oracle que proveen la conectividad con la base de datos. Por ende, si están activos no podremos actualizarla.
Con el siguiente comando podremos comprobar si alguno de ellos se está ejecutando:
ps -ef | grep tnslsnr
De ser así, lo podemos parar los que aparezcan activos de la siguiente forma:
lsnrctl stop <NOMBRE_LISTENER>
Con todas las bases de datos y los listeners apagados no nos debería dar seguir apareciendo el error code 73 al intentar aplicar un parche con OPatch. Así que con esto nos despedimos. Tened en cuenta que, una vez actualizada tendréis que volver a levantar los listener y la base de datos. Es tan sencillo como invertir el proceso:
lsnrctl start <NOMBRE_LISTENER>
sqlplus / as sysdba
startup