Explicamos cómo solucionar el temido error en el startup (arranque) de una base de datos Oracle 11g: ORA-03113: end-of-file on communication channel. Este error puede producirse por diversos motivos, explicamos en este artículo cómo solucionarlo en una de sus casuísticas más habituales.

Escenario inicial error ORA-03113 en Oracle 11g y versiones similares

En un escenario inicial disponemos de una máquina virtual o equipo físico con Linux Red Hat Enterprise 6 y Oracle 11g instalado.

Cuando se produce algún cambio en el sistema de archivos: conexión con SAN, clonación de máquina virtual, apagado inesperado, etc. algún fichero de los que componen la base de datos Oracle puede quedar inconsistente.

Un caso muy habitual es cuando los ficheros de archivelog no están correctamente sincronizados, por alguno de los motivos indicados anteriormente. Esto puede producir el error ORA-03113 y hacer que la base de datos Oracle no se inicie.

Escenario inicial error ORA-03113 en Oracle 11g y versiones similares

En este caso estamos trabajando con una base de datos Oracle 11g sobre Linux Red Hat 6, aunque este error puede producirse en otras versiones de Oracle y la solución podría ser válida también para estas otras versiones.

NOTA IMPORTANTE: antes de realizar el proceso que explicamos a continuación es muy recomendable hacer copia de seguridad de la base de datos y de la máquina virtual completa. El proceso que explicaremos no funciona en todos los casos.

Solucionar error ORA-03113 end-of-file on communication channel en Oracle 11g

En primer lugar abriremos una ventana de consola (de MS-DOS para equipos Windows o bien un shell de comandos en equipos Linux). Normalmente accederemos con el usuario de Oracle del sistema operativo, con el que tenemos las variables de entorno y todo correctamente configurado para el acceso a Oracle:

Desde la terminal ejecutaremos el siguiente comando para trabajar con el usuario oracle:

su – oracle

Solucionar error ORA-03113 end-of-file on communication channel en Oracle 11g

A continuación accederemos a sqlplus con:

sqlplus /nolog

Solucionar error ORA-03113 end-of-file on communication channel en Oracle 11g

Intentaremos conectarnos a la base de datos Oracle para ver su estado con:

conn / as sysdba

Si la base de datos no está correctamente iniciada nos mostrará un mensaje «Connected to an idle instance.»

Solucionar error ORA-03113 end-of-file on communication channel en Oracle 11g

Intentaremos mostrar el estado actual con:

select status from v$instance;

En una base de datos iniciada correctamente debería mostrar: OPEN:

Solucionar error ORA-03113 end-of-file on communication channel en Oracle 11g

En nuestro caso muestra un error indicando que la base de datos no está iniciada:

Error at line 1: ORA-01034: ORACLE not available

Solucionar error ORA-03113 end-of-file on communication channel en Oracle 11g

Si intentamos hacer un startup normal nos devolverá este error:

ORA-03113: end-of-file on communication channel. Process ID: 5199 Session ID: 1 Serial number: 5

Solucionar error ORA-03113 end-of-file on communication channel en Oracle 11g

Para solucionarlo, iniciaremos la base de datos en modo nomount con:

startup nomount

Y cambiaremos su estado a mount con:

alter database mount;

Solucionar error ORA-03113 end-of-file on communication channel en Oracle 11g

A continuación haremos un clear para cada grupo de archivelog de nuestra base de datos, ejecutando:

alter database clear unarchived logfile group 1;

alter database clear unarchived logfile group 2;

alter database clear unarchived logfile group 3;

Solucionar error ORA-03113 end-of-file on communication channel en Oracle 11g

Si hacemos un clear en un grupo que no existe, como en la imagen anterior para:

alter database clear unarchived logfile group 4;

Nos mostrará el error:

Error at line 1: ORA-00359: logfile group 4 does not exist.

Una vez hecho el clear para todos los grupos de archivelog detendremos la base de datos con el comando:

shutdown immediate;

Una vez detenida la iniciaremos de forma normal con el comando:

startup;

Solucionar error ORA-03113 end-of-file on communication channel en Oracle 11g

Y si todo es correcto podremos hacer un:

select status from v$instance;

Que nos mostrará: OPEN y nuestra base de datos habrá quedado reparada.

Solucionar error ORA-03113 end-of-file on communication channel en Oracle 11g

También podremos acceder vía consola web y comprobar el correcto funcionamiento de la base de datos y del archivado: