私はここ、Oracleサポート、および過去3日間で見つけることができる他の場所で投稿を読んでいて、この問題をあきらめました...
Oracleデータベースがハングしました。データベースのシャットダウンが数時間行われた後、終了しました。再起動しません。サーバーが再起動されました。 Oracleが再起動されました。段階的に進む:起動nomountが機能し、データベースマウントが変更され、データベースオープンが変更されると、ORA-03113が返されます。これはすべてネットワーク経由ではなくローカルホスト上にあります。マシンには実行中のファイアウォールはありません。
このORA-03113エラーを回避する方法はありますか?私は過去4.5時間、インドでサポートを利用して電話をかけてきましたが、まだ役に立った人はいません。
オラクルの公式サポートから何時間もの誤解を受けた後、私はこれを自分で調べて修正しました。他の誰かがこの問題を抱えている場合に備えて、私はそれをここに文書化しています。
これを行うには、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
しばらく待つと、アーカイブログ(そのスペースをすべて使用していました)がなくなります。したがって、データベースをシャットダウン/起動して、ビジネスに戻ることができます。