Después de horas de mala dirección del soporte oficial de Oracle, me sumergí en esto por mi cuenta y lo arreglé. Lo estoy documentando aquí en caso de que alguien más tenga este problema.
Para hacer algo de esto, debe ser el usuario de Oracle:
$ su - oracle
Paso 1: debe mirar el registro de alertas. No está en / var / log como se esperaba. Debe ejecutar un programa de lectura de registros de Oracle:
$ adrci
ADRCI: Release 11.2.0.1.0 - Production on Wed Sep 11 18:27:56 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
ADR base = "/u01/app/oracle"
adrci>
Observe la base ADR. Esa no es la instalación. Necesita ver las casas para poder conectarse a la que usa.
adrci> show homes
ADR Homes:
diag/rdbms/cci/CCI
diag/tnslsnr/cci/listener
diag/tnslsnr/cci/start
diag/tnslsnr/cci/reload
CCI es el hogar. Establecer eso.
adrci> set home diag/rdbms/cci/CCI
adrci>
Ahora puede ver los registros de alertas. Sería muy bueno si estuvieran en / var / log para poder analizar fácilmente los registros. Simplemente deja de querer y trata con esta interfaz. Al menos puedes seguir (y espero que tengas un buffer de desplazamiento hacia atrás):
adrci> show alert -tail 100
Desplácese hacia atrás hasta que vea errores. Desea el PRIMER error. Cualquier error después del primer error probablemente sea causado por el primer error. En mi caso, el primer error fue:
ORA-19815: WARNING: db_recovery_file_dest_size of 53687091200 bytes is 100.00% used, and has 0 remaining bytes available.
Esto es causado por las transacciones. Oracle no está diseñado para ser utilizado. Si inserta una gran cantidad de datos, guarda los registros de transacciones. Esos van al área del archivo de recuperación. Una vez que esté lleno (50GB lleno en este caso). Entonces, Oracle simplemente muere. Por diseño, si algo está en mal estado, Oracle responderá cerrándose.
Hay dos soluciones, la adecuada y la rápida y sucia. La rápida y sucia es aumentar db_recovery_file_dest_size. Primero, salga de adrci.
adrci> exit
Ahora, vaya a sqlplus sin abrir la base de datos, simplemente montándola (es posible que pueda hacer esto sin montar la base de datos, pero la monte de todos modos).
$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Wed Sep 11 18:40:25 2013
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> connect / as sysdba
Connected.
SQL> startup mount
Ahora, puede aumentar su db_recovery_file_dest_size actual, aumentado a 75G en mi caso:
SQL> alter system set db_recovery_file_dest_size = 75G scope=both
Ahora, puede apagar e iniciar nuevamente y ese error anterior debería desaparecer.
La solución adecuada es deshacerse de los archivos de recuperación. Lo haces usando RMAN, no SQLPLUS o ADRCI.
$ rman
Recovery Manager: Release 11.2.0.1.0 - Production on Wed Sep 11 18:45:11 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
RMAN> backup archivelog all delete input;
Si tiene RMAN-06171: not connected to target database
, intente usar en rman target /
lugar de solorman
Espere mucho tiempo y su archivo (que estaba usando todo ese espacio) desaparecerá. Por lo tanto, puede cerrar / iniciar su base de datos y volver al negocio.
ALTER DATABASE OPEN
y errores después de eso.