Solución de fallos de actualización
Las operaciones de actualización pueden fallar por diversos motivos. Normalmente, una operación falla porque un nodo de base de datos está caído, no hay suficiente espacio en el sistema de archivos o el host de la base de datos no puede acceder al almacén de objetos.
En este artículo se incluye información que ayuda a determinar la causa del fallo y a solucionar el problema. La información se organiza en varias secciones, en función de la condición de error.
Si ya sabe la causa, puede ir al tema con la solución sugerida. De lo contrario, utilice el tema Identificación de la causa del fallo para comenzar.
En este artículo se tratan los siguientes temas:
- Identificación de la causa del fallo
- Incidencias del agente de Database Service
- Incidencias de conectividad del almacén de objetos
- Incidencias del host
- Incidencias de Oracle Clusterware
- Incidencias de la base de datos
- Obtención de ayuda adicional
Sugerencia:
También puede crear conexiones de consola serie para solucionar problemas del sistema en modo de usuario único. Para obtener información sobre la creación de una conexión de consola serie en la consola de OCI, consulte Gestión de conexiones de consola serie al sistema de base de datos.Identificación de la causa del fallo
En la consola de OCI, puede identificar una operación de actualización con fallos consultando el historial de actualizaciones de un sistema de base de datos o de una base de datos individual. Una actualización que no se ha aplicado correctamente muestra el estado Con fallos e incluye una breve descripción del error que ha provocado el fallo. Si el mensaje de error no contiene suficiente información para sugerirle una solución, puede usar la CLI y los archivos log de la base de datos para recopilar más datos. A continuación, consulte la sección correspondiente de este artículo para buscar una solución.
Se tratan los siguientes temas:
Identificación de la causa raíz del fallo de la operación de actualización
-
Conéctese al host como usuario root y vaya al directorio
/opt/oracle/dcs/bin/
. -
Determine la secuencia de las operaciones realizadas en la base de datos.
dbcli list-jobs
Anote el último identificador de trabajo mostrado con un estado distinto de Correcto.
-
Con el identificador de trabajo que ha anotado en el paso anterior, utilice el siguiente comando para comprobar los detalles de ese trabajo:
dbcli describe-job -i <job_ID> -j
Normalmente, la ejecución de este comando es suficiente para revelar la causa raíz del fallo.
-
Si necesita más información, revise el archivo
/opt/oracle/dcs/log/dcs-agent.log
.Para buscar el identificador de trabajo en este archivo, utilice el registro de hora devuelto por el informe de trabajo en el paso 2.
- Si el fallo de actualización está en una base de datos RAC de 2 nodos, realice los pasos 3 y 4 en ambos nodos.
Incidencias del agente de Database Service
La base de datos utiliza un marco de agente para que pueda gestionarla a través de la plataforma Oracle Cloud.
Se tratan los siguientes temas:
- Resolución de fallos de actualización causados por un agente parado
- Reinicio del agente de servicio de base de datos
- Resolución de fallos de actualización provocados por un agente que debe actualizarse
- Contacto con los Servicios de Soporte Oracle para actualizar el agente del servicio de base de datos de OCI
Resolución de fallos de actualización causados por un agente parado
En ocasiones, puede que deba reiniciar el programa dcsagent
si tiene el estado parada/en espera para resolver un fallo de actualización.
Reinicio del agente de servicio de base de datos
-
Desde un símbolo del sistema, compruebe el estado del agente:
initctl status initdcsagent
-
Si el agente tiene el estado parada/en espera, intente reiniciar el agente:
initctl start initdcsagent
-
Vuelva a comprobar el estado del agente para confirmar que tiene el estado de inicio/en ejecución:
initctl status initdcsagent
Resolución de fallos de actualización provocados por un agente que debe actualizarse
La operación de actualización también puede fallar si es necesario actualizar el agente. El sistema proporciona el siguiente mensaje de error para este fallo:
Current DcsAgent version is less than or equal to minimum required version.
Para resolver esta incidencia, realice los pasos de la siguiente sección.
Contacto con los Servicios de Soporte Oracle para actualizar el agente del servicio de base de datos de OCI
-
Confirme que el agente (dcsagent) y el programa DCS Admin (dcsadmin) se están ejecutando mediante los siguientes comandos:
initctl status initdcsagent
initctl status initdcsadmin
-
Si estos programas no se están ejecutando, utilice los siguientes comandos para reinarlos:
initctl start initdcsagent
initctl start initdcsadmin
- Siga las instrucciones de Obtención de ayuda adicional para recopilar los archivos log del agente DCS.
- Póngase en contacto con los Servicios de Soporte Oracle para obtener ayuda para actualizar el agente.
Incidencias de conectividad del almacén de objetos
Las actualizaciones del sistema de base de datos y la base de datos se almacenan en OCI Object Storage. Por lo tanto, las operaciones de actualización correctas requieren conectividad entre el host del sistema de base de datos y la ubicación de Object Storage desde la que se descargan las actualizaciones.
Se tratan los siguientes temas:
Cómo asegurarse que su host de base de datos puede conectarse a OCI Object Storage
-
Utilice el siguiente comando para verificar que el host puede acceder a OCI Object Storage:
dbcli describe-latestpatch
Salida de ejemplo que indica que es correcto:
componentType availableVersion -------------- -------------- gi 12.2.0.1.180417 gi 12.1.0.2.180417 db 11.2.0.4.180417 db 12.2.0.1.180417 db 12.1.0.2.180417 oak 12.1.2.11.3 oak 12.2.1.1.0
Resultado de ejemplo que indica un fallo:
DCS-10032:Resource patch metadata is not found.Failed to download patchmetadata from objectstore
-
Si no puede conectarse al almacén de objetos, consulte Copia de seguridad de una base de datos mediante la consola para obtener más información sobre cómo configurar la conectividad del almacén de objetos.
Incidencias del host
Una o varias de las siguientes condiciones en el host de base de datos pueden provocar fallos en las operaciones de actualización:
Se tratan los siguientes temas:
El nodo de base de datos no está en ejecución durante la operación de actualización
Todos los nodos de base de datos deben estar activos y en ejecución mientras una operación de actualización está en curso, tanto si está actualizando el sistema de base de datos como el directorio raíz de base de datos. Utilice la consola de OCI para comprobar que el estado de cada nodo es DISPONIBLE e iniciar el nodo, si es necesario.
El sistema de archivos está lleno
Las operaciones de actualización necesitan un mínimo de 15 GB de espacio libre en el directorio /u01
del sistema de archivos del host. Utilice el comando df -h
en el host para comprobar el espacio disponible. Si el sistema de archivos no tiene espacio suficiente, puede eliminar archivos de rastreo o archivos log antiguos para liberar espacio.
Incidencias de Oracle Clusterware
Se tratan los siguientes temas:
Oracle Clusterware no está en ejecución
Oracle Clusterware permite a los servidores comunicarse entre sí para que puedan funcionar como una unidad colectiva. El programa de software de cluster debe estar activo y en ejecución en el sistema de base de datos para que se completen las operaciones de actualización. En ocasiones, puede necesitar reiniciar Oracle Clusterware para resolver un fallo de actualización.
Reinicio de Oracle Clusterware
-
Desde el símbolo del sistema, compruebe el estado de Oracle Clusterware:
crsctl check crs
Salida:
CRS-4638: Oracle High Availability Services is online CRS-4537: Cluster Ready Services is online CRS-4529: Cluster Synchronization Services is online CRS-4533: Event Manager is online
Para obtener información de estado más detallada, puede ejecutar
crsctl stat res -t
. -
Si Oracle Clusterware no está en línea, intente reiniciar el programa:
crsctl start crs
-
Compruebe el estado de Oracle Clusterware para confirmar que está en línea:
crsctl check crs
Oracle Grid Infrastructure (GI) no está actualizado
Este problema se produce al intentar actualizar una base de datos antes de actualizar el sistema de base de datos de esa base de datos. La descripción del error indica que Oracle Grid Infrastructure se debe actualizar en primer lugar. Para resolver esta incidencia, actualice el sistema de base de datos a la versión más reciente disponible. Después de actualizar el sistema de base de datos, puede volver a intentar la operación de actualización de la base de datos.
Para obtener las versiones de GI actual y más reciente disponibles para el sistema de base de datos, utilice el siguiente comando:
dbcli describe-component
Incidencias de la base de datos
Un estado de base de datos incorrecto puede producir fallos en la actualización.
Se tratan los siguientes temas:
La base de datos no está en ejecución durante la operación de actualización
La base de datos debe estar activa y en ejecución para que se completen todas las tareas de actualización. De lo contrario, debe ejecutar la tarea datapatch de forma manual.
Comprobación de que la base de datos está activa y en ejecución
Utilice el siguiente comando para comprobar el estado de la base de datos y asegúrese de que se resuelven los problemas que pueden haber ocasionado que la base de datos esté en un estado incorrecto:
srvctl status database -d <db_unique_name> -verbose
El sistema devuelve un mensaje que incluye el estado de la instancia de base de datos. El estado de la instancia debe ser Abierto para que la operación de actualización se realice correctamente.
Si la base de datos no se está ejecutando, utilice el comando siguiente para iniciarla:
srvctl start database -d <db_unique_name> -o open
Si la base de datos está montada pero no tiene el estado Abierto, utilice los siguientes comandos para acceder al símbolo del sistema de SQL*Plus y definir el estado en Abierto:
sqlplus / as sysdba
alter database open;
Ejecute la tarea datapatch
Antes de ejecutar el comando datapatch
, asegúrese de que todas las bases de datos conectables (PDB) están abiertas. Para abrir una PDB, puede utilizar SQL*Plus para ejecutar ALTER PLUGGABLE DATABASE <pdb_name> OPEN READ WRITE;
en la PDB.
$ORACLE_HOME/OPatch/datapatch
El comando datapatch
se debe ejecutar en cada directorio raíz de base de datos.
Obtención de ayuda adicional
Si no ha podido resolver el problema con la información de este artículo, siga los procedimientos siguientes para recopilar la información de diagnóstico y de bases de datos relevante. Después de recopilar esta información, póngase en contacto con los Servicios de Soporte Oracle.
Se tratan los siguientes temas:
Recopilación de información de diagnóstico sobre los trabajos fallidos
-
Conéctese al host como usuario root y vaya al directorio
/opt/oracle/dcs/bin/
. -
Ejecute los dos comandos siguientes para generar información sobre el trabajo fallido:
dbcli list-jobs | grep -i <dbname>
dbcli describe-job -i <job_ID> -j
El <job_ID> del segundo comando debe ser el identificador del trabajo fallido más reciente notificado del primer comando.
-
Ejecute el script del recopilador de diagnósticos para crear un archivo zip con la información de diagnóstico para los Servicios de Soporte Oracle.
diagcollector.py
Este comando crea un archivo denominado
diagLogs-<timestamp>.zip
en el directorio/tmp
.
Recopilación de los archivos log del agente DCS
Para recopilar los archivos log del agente DCS, haga lo siguiente:
- Conéctese como usuario opc.
-
Ejecute el siguiente comando:
sudo /opt/oracle/dcs/bin/diagcollector.py
-
El sistema devuelve un mensaje que indica que hay logs de agente disponibles en un archivo zip de un directorio específico. Por ejemplo:
Log files collected to :/tmp/dcsdiag/diagLogs-1234567890.zip Logs are being collected to: /tmp/dcsdiag/diagLogs-1234567890.zip
Recopilación de archivos log de Oracle Grid Infrastructure y Database
Si falla una actualización de Oracle Grid Infrastructure u Oracle Database, puede buscar los archivos log de estos fallos en las siguientes ubicaciones:
Infraestructura de Grid de Oracle
$GI_HOME/cfgtoollogs/
Oracle Database
$ORACLE_HOME/cfgtoollogs/