Oracle:接続時に「ORA-01109:データベースがオープンされていません。」エラーが出た場合の原因と対応方法

DBクライアントソフトなどでOracle DBへ接続時に「ORA-01109:データベースがオープンされていません。」が表示された場合の原因と対応方法についてメモしておきます。

「ORA-01109:データベースがオープンされていません。」の原因

  • 文字通り接続しようとしているDBがオープンされていないのが原因となります。今回接続先を「ORCLPDB」に指定していましたがそこがオープンされていないようです。
  • 念のためSQL Plusを起動して「show pdbs」コマンドでプラガブル・データベース(PDB)のオープン状態を確認するとやはりオープンされていませんでした。

「ORA-01109:データベースがオープンされていません。」の対処方法

  1. SQL Plusで「alter pluggable database ORCLPDB open;」コマンドを実行し、ORCLPDBをオープンします。
  2. 「show pdbs」コマンドでプラガブル・データベース(PDB)のオープン状態を確認します。
  3. これでORCLPDBのオープンだけなら完了していますが、このままPCを再起動するとまた再びクローズ状態に戻ってしまいます。ですので最後に現在オープンされている全てのPDBを自動起動(オープン)するように「alter pluggable database all save state;」コマンドで保存します。

 

補足:よくある注意点と確認ポイント

上記の対応だけで解決しない場合や、環境によっては以下のようなケースもあるので参考にしてください。

PDB が自動で開かない場合

ALTER PLUGGABLE DATABASE ALL SAVE STATE; を実行しても、再起動後に PDB が自動的にオープンされないことがあります。
その際は以下を確認してみてください。

  • PDB の AUTO_STARTUP が有効になっているか
  • 初期化パラメータ ENABLE_PLUGGABLE_DATABASE が設定されているか
  • OS 側の起動スクリプトに PDB オープン処理が含まれているか

権限不足でエラーになる場合

PDB を開こうとしたときに ORA-01031: insufficient privileges が出る場合は、権限不足の可能性があります。
SYSDBA 権限を持つユーザーで接続して実行する必要があります。

PDB の状態確認

今の状態を確認したいときは、次のコマンドを使うと便利です。

READ WRITE であればオープン済み、MOUNTED ならまだ開いていない状態です。

ログのチェック

もし原因が分からない場合は、アラートログ(alert log)や trace ファイルを確認してみてください。
「ファイルが読み込めない」「整合性が取れていない」といったエラーが記録されていることもあります。

冗長構成を利用している場合

Data Guard や RAC のような構成では、PDB のオープン状態が自動で引き継がれないことがあります。
フェイルオーバー後に PDB が閉じたままになるケースもあるので注意が必要です。

関連するエラーメッセージ

今回の ORA-01109 以外にも、以下のエラーが一緒に出ることがあります。

  • ORA-01110

  • ORA-01113

これらも「データベースがオープンされていない」状態に関係するため、併せて確認してみてください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

email confirm*

post date*