¿Cómo podemos ver el motivo de que un upgrade en un DB System falle?
La verdad es que no nos da mucha información para poder solucionarlo, debemos usar database cli y los ficheros de log para obtener más información.
Lo primero que tenemos que hacer, es obtener el identificador del job que ha fallado
[root@~]# dbcli list-jobs | tail -1
90ef6dc3-e463-4adb-97c9-cdd8a101980a Server Patching Prechecks Friday, December 29, 2023, 12:25:33 CET Failure
Una vez obtenido el identificador del JOB que ha fallado, debemos obtener los detalles del job, en este caso al utilizar la opción -j nos lo muestra en formato json, pero si queremos que nos lo saque en detalle podemos hacer lo siguiente: “dbcli describe-job -i <jobId> -l Verbose”
[root@~]# dbcli describe-job -i 90ef6dc3-e463-4adb-97c9-cdd8a101980a -j
{
"jobId" : "90ef6dc3-e463-4adb-97c9-cdd8a101980a",
"status" : "Failure",
"message" : "DCS-10003:File '/home/oracle/.opciargfiledir_2023-12-29_12-29-33.0498/opciargfile_2023-12-29_12-29-33.0498.rsp' does not exist.Failed to create opc file. Please,\n refer dcs agent log for more information. ",
"errorCode" : "DCS-10003",
"reports" : [ {
"taskId" : "TaskSequential_556730",
"taskName" : "Server Patching Precheck",
"taskResult" : "DCS-10003:File '/home/oracle/.opciargfiledir_2023-12-29_12-29-33.0498/opciargfile_2023-12-29_12-29-33.0498.rsp' does not exist.Failed to create opc file. Please,\n refer dcs agent log for more information. ",
"startTime" : "December 29, 2023 12:25:33 PM CET",
"endTime" : "December 29, 2023 12:29:33 PM CET",
"status" : "Failure",
"taskDescription" : null,
"parentTaskId" : "TaskZLockWrapper_556734",
"jobId" : "90ef6dc3-e463-4adb-97c9-cdd8a101980a",
"tags" : [ ],
"reportLevel" : "Error",
"updatedTime" : "December 29, 2023 12:29:33 PM CET",
"message" : null
},
Esta línea "Failed to create opc file." nos da una pista del problema. Vamos a revisar el FS de home a ver si tiene espacio
[root@ociosgobsdb01 ~]# df -h | sort -nrk5 | head -1
Size Used Avail Use% Mounted on
960M 893M 0 100% /home
Lo tenemos lleno, procedemos a limpiar y ejecutamos de nuevo.
Listo, ya ha pasado de manera satisfactoria.