Oracle Database エラー「ORA-01109: データベースがオープンされていません。」が発生した場合の対処法

Oracle Database エラー「ORA-01109: データベースがオープンされていません。」が発生した場合の対処法

Oracle Databaseで、エラー「ORA-01109: データベースがオープンされていません。」が発生した場合の対処法を記述してます。

環境

  • OS windows11 home
  • Oracle Database 21c Express Edition

エラー全文

「ALTER USER」などを実行時に発生。

行1でエラーが発生しました。:
ORA-01109: データベースがオープンされていません。

原因

「SHUTDOWN IMMEDIATE;」を実行時にも発生しており、どうやらデータファイルだけを誤って削除してしまっていることが原因のようです。

SQL> SHUTDOWN IMMEDIATE;
ORA-01109: データベースがオープンされていません。

SQL> startup
ORACLEインスタンスが起動しました。

Total System Global Area 1610608792 bytes
Fixed Size                  9855128 bytes
Variable Size             922746880 bytes
Database Buffers          671088640 bytes
Redo Buffers                6918144 bytes
データベースがマウントされました。
ORA-01157: データファイル33を識別/ロックできません -
DBWRトレース・ファイルを参照してください
ORA-01110: データファイル33: 'C:\ORACLE\DATA\DBF1-2.DBF'

対処法

まずは「mount」モードで起動します。

SQL> startup mount;
ORACLEインスタンスが起動しました。

Total System Global Area 1610608792 bytes
Fixed Size                  9855128 bytes
Variable Size             922746880 bytes
Database Buffers          671088640 bytes
Redo Buffers                6918144 bytes
データベースがマウントされました。

次に対象のデータファイルを「offline drop」します。

SQL> alter database datafile 'C:\ORACLE\DATA\DBF1-2.DBF' offline drop;

データベースが変更されました。

openします。

SQL> alter database open;

データベースが変更されました。

あとは「対象」の「表領域」を削除します。

SQL> drop tablespace 対象の表領域 including contents;