OLATOracle Log Analysis Tool Abrir a ferramenta
GraveRede & TNS

ORA-03113

End-of-file no canal (conexão morreu)

O ORA-03113 (“end-of-file on communication channel”) é um erro genérico e frustrante: ele apenas informa que a conexão com o banco foi interrompida de forma abrupta. Ele não diz o porquê.

A informação mais útil sobre este erro é a seguinte: na maioria das vezes, o ORA-03113 é o sintoma, não a doença. O que costuma acontecer é que o processo servidor que atendia a sua sessão morreu — e quando um processo morre, quem estava do outro lado recebe um “fim de arquivo” no canal de comunicação.

Por isso, o primeiro lugar a olhar não é a rede: é o alert log do banco, no exato horário do erro. É muito comum encontrar ali um ORA-00600 ou ORA-07445 que derrubou o processo.

O que significa

O processo servidor sumiu no meio da conversa — crash do servidor (ORA-600/7445!), kill, ou rede/firewall cortando.

Como o erro aparece

ERROR at line 1:
ORA-03113: end-of-file on communication channel
Process ID: 24518
Session ID: 245 Serial number: 33127

Passo a passo do diagnóstico consultas somente leitura

Vá direto ao alert log, no horário exato do erro

Procure por ORA-00600, ORA-07445, “terminating the instance” ou qualquer registro de incidente no mesmo minuto. Se encontrar, o ORA-03113 foi apenas a consequência — trate o erro encontrado.

Verifique se a instância continua no ar

SELECT instance_name, status, database_status FROM v$instance;

Se não houver nada no alert log, investigue a camada de rede

Quando o servidor não registra nada, a hipótese mais provável é que algo entre o cliente e o banco cortou a conexão — tipicamente um firewall com timeout de ociosidade.

Um sintoma clássico de firewall: a queda acontece sempre após o mesmo tempo de inatividade

Se as sessões caem sempre após 30 ou 60 minutos paradas, é quase certamente um dispositivo de rede encerrando conexões ociosas. A mitigação do lado do banco é o Dead Connection Detection:

Ativar keepalive no sqlnet.ora do servidor

SQLNET.EXPIRE_TIME = 10

Verifique também os limites do sistema operacional

Falta de memória (com o OOM killer derrubando processos) e limites de ulimit baixos também produzem esse quadro. Vale checar o dmesg do servidor no horário do incidente.

Ação imediata

SEMPRE olhe o alert do banco no mesmo horário: 3113 no cliente costuma ser sintoma de crash no servidor.

Correção definitiva

Tratar a causa no servidor (bug/patch) ou rede.

Como prevenir

Correlação cliente-servidor de horário (o OLAT cruza módulos por timeline).

Erros comuns — o que não fazer

  • Tratar o ORA-03113 como “problema de rede” antes de olhar o alert log. Em ambientes de produção, é muito comum que ele esteja mascarando um erro interno do Oracle que derrubou o processo servidor.
  • Ignorar a recorrência. Um ORA-03113 isolado pode ser um cliente que fechou abruptamente. Vários por dia, no mesmo horário ou no mesmo comando, indicam um problema estrutural que vai voltar.
  • Aumentar timeouts sem entender a causa. Se o processo servidor está morrendo, nenhum ajuste de timeout vai resolver.

Perguntas frequentes

O que significa ORA-03113 end-of-file on communication channel?

Significa que a conexão entre o cliente e o banco foi encerrada de forma inesperada. Normalmente o processo servidor que atendia a sessão terminou de maneira anormal, mas também pode ser causado por dispositivos de rede que encerram conexões ociosas.

Onde devo procurar a causa do ORA-03113?

No alert log do banco de dados, no horário exato do erro. É frequente encontrar ali um ORA-00600 ou ORA-07445 que derrubou o processo servidor. Se o alert log não registrar nada, a investigação deve seguir para a camada de rede e para os limites do sistema operacional.

Erros relacionados (Rede & TNS)

Vinicius Gabriel Lana

Vinicius Gabriel Lana

Sócio & CTO na MigraTI Soluções em TI · 8 anos como DBA (Oracle, SQL Server, PostgreSQL, MySQL)