Skip to main content

Command Palette

Search for a command to run...

Oracle Errors

Updated
5 min readView as Markdown
Oracle Errors
C
Hola mundo! Soy Carmen. En mi camino como DBA, con particular interés en Oracle, nace este blog para documentar los pequeños aprendizajes y compartirlos con todos los que por una razón u otra han acabado aqui. No busco inventar o descubrir nada nuevo, pero si algo he aprendido en estos años es que a veces la clave no está en qué comunicas, sino el cómo, asique te animo a leer algún post mientras disfrutas de un buen café. Actualmente cuento con 3 años de experiencia, con formación en administración de bases de datos y en desarrollo de SQL en Oracle principalmente. Mis próximos pasos? Una gran incógnita por ahora, entre posts y cafés los descubriremos juntos.

Antes de poder solucionar un problema, es necesario saber qué ha pasado.

Oracle nos proporciona códigos de error que nos ayudan a identificar la causa del fallo.

Pero… ¿y si no sabes interpretar esos códigos?

Fue lo primero que pensé cuando empecé a pelearme con la infrastructura. Asi decidí crear mi propia documentación de errores, tan útil como la documentación de soluciones.

ORA-00265


SQL> alter database archivelog;

    ERROR at line 1:

    ORA-00265: instance recovery required, cannot set ARCHIVELOG mode
  • la BD no se apagó correctamente

ORA-02097 & ORA-19802

SQL> alter system set db_recovery_file_dest='/mnt/oracle/fast_recovery_area';

    ERROR at line 1:

ORA-02097: parameter cannot be modified because specified value is invalid
ORA-19802: cannot use DB_RECOVERY_FILE_DEST without DB_RECOVERY_FILE_DEST_SIZE
  • Antes de especificar un destino para los ARCHIVE LOGs necesitamos especificar un tamaño, eso se hace definiendo el parámetro db_recovery_file_dest_size

ORA-01261 & ORA-01262

Estos errores están relacionados con el parámetro db_recovery_file_dest.

  • Oracle no puede acceder o encontrar el directorio especificado para db_recovery_file_dest, ubicación de la Fast Recovery Area (FRA). Esto puede deberse a:

    • Directorio no existe

    • problemas de permisos

    • ruta mal configurada

    • FRA apunta a una ruta mal montada, Oracle verifica permisos y acceso físico

  • Verifica el contenido de tu archivo init.ora y busca el parámetro db_recovery_file_dest .

    • Asegúrate de que el directorio especificado exista en el sistema operativo

    • usuario oracle tenga permisos para acceder y escribir en ese directorio.

SQL> startup

ORA-01261: Parameter db_recovery_file_dest destination string is not valid
ORA-01262: Parameter db_recovery_file_dest destination cannot be translated
Errors in file /u01/app/oracle/diag/rdbms/orcl/trace/orcl_ora_12345.trc:
ORA-19802: cannot use DB_RECOVERY_FILE_DEST without DB_RECOVERY_FILE_DEST_SIZE

-- el arranque se detiene en NOMOUNT O MOUNT, sin llegar a abrirse la BD
-- Oracle hace esto antes de abrir los datafiles, si no puede garantizar el acceso al destino
-- de la FRA, no continua el arranque


--Verificalos parametros
show parameter db_recovery_file_dest
show parameter db_recovery_file_dest_size



ALTER SYSTEM SET db_recovery_file_dest_size=10G; 
ALTER SYSTEM SET db_recovery_file_dest='/mnt/oracle/fast_recovery_area'; 
  • Error al montar el Filesystem en la FRA

Oracle intenta acceder a una ruta que sí existe como carpeta, pero en realidad está vacía porque el volumen no está montado.

ORA-01261: Parameter db_recovery_file_dest destination string is not valid
ORA-01262: Parameter db_recovery_file_dest destination cannot be translated

Incluso si la BD logra abrirse, los procesos ARC o RMAN intentarán escribir en la FRA. Si en ese momento el filesystem se desmonta o no tiene acceso correcto, se repiten estos errores en el alert.log:

ORA-27040: file create error, unable to create file
Linux-x86_64 Error: 2: No such file or directory

ORA-19809

Cuando se excede el espacio asignado a la FRA (db_recovery_file_dest_size) , y Oracle no puede liberar espacio automáticamente.

ORA-19804

Oracle RMAN (Recovery Manager) no puede reclamar espacio necesario para completar el backup. annot reclaim the space needed to complete the backup.

  • Ampliar tamaño

  • Eliminar backups antiguos

DPI-1080: connection was closed by ORA-03113

ORA-03113: indica que la conexión se perdió abruptamente entre cliente y servidor.

  • Oracle cierra las sesiones de usuarios inactivos (idle). Este error se da en el lado del cliente, no en el servidor.

DPI-1080: es el error correspondiente en el cliente cx_Oracle o ODPI-C (usado por Python, Node.js, etc.).

  • Causas comunes:

    • Sesión matada por inactividad

    • Timeout

    • Fallo en el listener o reinicio del servidor

  • Revisar en el lado del cliente si el firewall tiene timeouts/idle time en:

    • Firewall

    • VPN setup

    • Load balancer

ORA-12170 Connection Timeout

Indica que el cliente intentó conectarse a la base de datos Oracle, pero no recibió respuesta dentro del tiempo límite configurado. Es básicamente un timeout en la conexión inicial.

  • Verificar la conectividad:
# Si usas hostname
ping <nombre_servidor>
# O directamente la IP
ping <ip_servidor>

#Conectividad a nivel de puerto
telnet <host> <puerto>
nc -vz <host> <puerto>
Test-NetConnection -ComputerName <host> -Port <puerto> # (Windows)

# Verificar que el listener esté arriba
lsnrctl status

# Verificar conectividad TNS desde cliente a traves de la capa TNS de Oracle
tnsping <alias_tns>

# Verificar ruta
traceroute <host>
# o en Windows:
tracert <host>

ORA-00600: internal error code, arguments: [...][...][...][...]

Error interno del motor de Oracle. Indica un fallo en una verificación interna o corrupción lógica.

Puedes encontrar mas informacion en alert.log, buscar el trace file en $ORACLE_BASE/diag , e interpretar los arguments para diagnosticar corrupción de bloques, errores de redo o bugs.

  • ORA-00600 [2662]: ocurre cuando el SCN leído es menor al SCN requerido, generalmente por un recovery inconsistente.

ORA-01555: snapshot too old

Ocurre cuando una consulta larga intenta leer versiones antiguas de bloques del undo tablespace, pero esos bloques ya fueron sobrescritos.

Vistas que pueden dar mas información:

  • v$undostat

  • v$transaction

ORA-19502 / ORA-19504

Error en la escritura de backup (RMAN o exportación). Puede ser por:

  • Espacio

  • Permisos

  • Fallos en disco/NFS

Recomendación, verificar:

  • Permisos en el destino de backup

  • Configuración del db_recovery_file_dest y rman channels

Este post se actualizará periódicamente.

Y tú, que errores conoces?