Dopo ore di errata direzione dal supporto ufficiale Oracle, mi sono immerso in questo da solo e l'ho risolto. Lo sto documentando qui nel caso in cui qualcun altro abbia questo problema.
Per fare ciò, devi essere l'utente di Oracle:
$ su - oracle
Passaggio 1: è necessario esaminare il registro degli avvisi. Non è in / var / log come previsto. Devi eseguire un programma di lettura log 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>
Notare la base ADR. Questa non è l'installazione. Devi vedere le case in modo da poterti connettere a quella che usi.
adrci> show homes
ADR Homes:
diag/rdbms/cci/CCI
diag/tnslsnr/cci/listener
diag/tnslsnr/cci/start
diag/tnslsnr/cci/reload
CCI è la casa. Imposta quello.
adrci> set home diag/rdbms/cci/CCI
adrci>
Ora puoi guardare i log degli avvisi. Sarebbe molto bello se fossero in / var / log in modo da poter analizzare facilmente i registri. Basta smettere di volere e gestire questa interfaccia. Almeno puoi fare la coda (e spero che tu abbia un buffer di scrollback):
adrci> show alert -tail 100
Scorri indietro fino a visualizzare errori. Vuoi il PRIMO errore. Eventuali errori dopo il primo errore sono probabilmente causati dal primo errore. Nel mio caso, il primo errore è stato:
ORA-19815: WARNING: db_recovery_file_dest_size of 53687091200 bytes is 100.00% used, and has 0 remaining bytes available.
Ciò è causato dalle transazioni. Oracle non è progettato per essere utilizzato. Se si inseriscono molti dati, vengono salvati i registri delle transazioni. Quelli vanno nell'area del file di ripristino. Una volta che è pieno (50 GB pieno in questo caso). Quindi, Oracle muore. In base alla progettazione, se qualcosa è incasinato, Oracle risponderà spegnendo.
Esistono due soluzioni, quella corretta e quella rapida e sporca. Quello rapido e sporco è aumentare db_recovery_file_dest_size. Innanzitutto, esci da Adrci.
adrci> exit
Ora, vai su sqlplus senza aprire il database, semplicemente montandolo (potresti essere in grado di farlo senza montare il database, ma lo monto comunque).
$ 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
Ora, puoi aumentare il tuo attuale db_recovery_file_dest_size, aumentato a 75G nel mio caso:
SQL> alter system set db_recovery_file_dest_size = 75G scope=both
Ora puoi chiudere e riavviare e l'errore precedente dovrebbe essere sparito.
La soluzione corretta è eliminare i file di ripristino. Puoi farlo usando RMAN, non 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;
Se hai RMAN-06171: not connected to target database
, prova a usare rman target /
invece di solorman
Attendi molto tempo e il tuo archivio (che stava esaurendo tutto quello spazio) sparirà. Quindi, è possibile arrestare / avviare il database ed essere di nuovo in affari.
ALTER DATABASE OPEN
e dopo gli errori.