「データベースの接続に失敗しました。」とエラーが発生します。(Oracle版)

「データベースの接続に失敗しました。」とエラーが発生します。(Oracle版)

該当製品:パッケージ版
質問ID:NEO-T0231
対象:全バージョン(Oracle版のみ)

Oracle版においてエラーが発生した場合について説明します。

エラーメッセージ
Copied!
データベースの接続に失敗しました。データベースが起動していない可能性があります。

OracleのSYSTEM表領域が一杯になり、接続できない状況になっている可能性があります。Oracleアラートログ(alert<SID>.log)に、以下が記録されていないかを確認してください。

ログ
Copied!
ORA-00604: error occurred at recursive SQL level 1
ORA-01653: unable to extend table SYS.AUD$ by 8192 in tablespace SYSTEM
ORA-02002: error while writing to audit trail
ORA-00604: error occurred at recursive SQL level 1
ORA-01653: unable to extend table S]

Oracleの監査設定(AUDIT_TRAIL)により、SYS.AUD$テーブルにログが記録され、SYSTEM表領域を圧迫しているために発生しています。
※Oracleの11gより、監査設定(AUDIT_TRAIL)がデフォルトでONになっています。

AUD$テーブルのデータを定期的に削除するか、監査が不要の場合は監査設定(AUDIT_TRAIL)をOFFにすることで回避できます。

以下に設定のOFFおよびテーブル削除の例を記載します。
ただし、監査設定のON/OFFおよびデータ削除の詳細な方法は、Oracleのマニュアルをご確認ください。

例)
1. メンテモードで接続します。
コマンド
Copied!
sqlplus / as sysdba

2. 設定がONであることを確認します。
コマンド
Copied!
SQL> show parameter audit_trail
NAME        TYPE   VALUE
—————————————————————————
audit_trail  string  DB

3. 設定をOFFにします。
コマンド
Copied!
SQL> alter system set AUDIT_TRAIL = none scope = spfile;

4. DBを再起動します。
コマンド
Copied!
SQL> shutdown immediate
SQL> startup

5. 設定がOFFであることを確認します。
コマンド
Copied!
SQL> show parameter audit_trail
NAME       TYPE   VALUE
—————————————————————————
audit_trail  string NONE

6. AUD$データを削除します。
コマンド
Copied!
SQL>truncate table SYS.AUD$
Powered by Helpfeel