オラクルの公式サポートから数時間にわたって誤った指示を受けた後、私は自分でこれを調べて修正しました。他の誰かがこの問題を抱えている場合に備えて、ここで文書化しています。
これを行うには、oracleユーザーである必要があります。
$ su - oracle
ステップ1:アラートログを確認する必要があります。期待どおり/ var / 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>
ADRベースに注目してください。それはインストールではありません。あなたが使用しているものに接続できるように、あなたは家を見る必要があります。
adrci> show homes
ADR Homes:
diag/rdbms/cci/CCI
diag/tnslsnr/cci/listener
diag/tnslsnr/cci/start
diag/tnslsnr/cci/reload
CCIはホームです。それを設定します。
adrci> set home diag/rdbms/cci/CCI
adrci>
これで、アラートログを確認できます。それらが/ var / logにあれば、ログを簡単に解析できるので非常に便利です。ただ欲しがるのをやめて、このインターフェースに対処してください。少なくとも尾を引くことができます(そしてスクロールバックバッファーがあることを願っています)。
adrci> show alert -tail 100
エラーが表示されるまでスクロールバックします。最初のエラーが必要です。最初のエラーの後のエラーは、最初のエラーが原因である可能性があります。私の場合、最初のエラーは次のとおりです。
ORA-19815: WARNING: db_recovery_file_dest_size of 53687091200 bytes is 100.00% used, and has 0 remaining bytes available.
これはトランザクションが原因です。Oracleは使用するように設計されていません。大量のデータをそこにプッシュすると、トランザクションログが保存されます。それらはリカバリファイル領域に入ります。それがいっぱいになると(この場合は50GBいっぱい)。その後、Oracleは死にます。設計上、何かがめちゃくちゃになった場合、Oracleはシャットダウンして対応します。
適切な解決策と、迅速で汚れた解決策の2つの解決策があります。手っ取り早い方法は、db_recovery_file_dest_sizeを増やすことです。まず、adrciを終了します。
adrci> exit
ここで、データベースを開かずにsqlplusに移動し、マウントするだけです(データベースをマウントせずにこれを行うことができますが、とにかくマウントします)。
$ 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
これで、現在のdb_recovery_file_dest_sizeを増やすことができ、私の場合は75Gに増やしました。
SQL> alter system set db_recovery_file_dest_size = 75G scope=both
これで、シャットダウンして再起動できるようになり、以前のエラーは解消されるはずです。
適切な修正は、回復ファイルを取り除くことです。これは、SQLPLUSまたはADRCIではなく、RMANを使用して行います。
$ 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;
持っている場合はRMAN-06171: not connected to target database
、rman target /
ただの代わりに使用してみてくださいrman
しばらく待つと、アーカイブログ(すべてのスペースを使い果たしていた)はなくなります。したがって、データベースをシャットダウン/起動して、ビジネスに戻ることができます。
ALTER DATABASE OPEN
とその後のエラーを投稿します。