ORA-01157が発生してDBが起動できない時の対処方法

こんにちは!土門大貴(daikidomon)です。

データベースを起動しようとしてら「ORA-01157: データファイル5を識別/ロックできません」とエラーになりました。

以下、エラーの全文になります。

行1でエラーが発生しました。:
ORA-01157: データファイル5を識別/ロックできません -
DBWRトレース・ファイルを参照してください ORA-01110:
データファイル5: '/u01/app/oracle/oradata/ORCL18C/test001.dbf'

今回は「ORA-01157」が発生した時の対処方法を紹介したいと思います。

目次

エラー原因:データファイルが参照できない

原因は「制御ファイルに記録されているデータファイルに参照できない」とのことです。

ファイルが参照できない原因の多くは、

  • データファイルをOSコマンドで削除した
  • データファイル格納領域のマウントが外れてしまった

でしょう。

私の環境では誤ってOS上からファイルを消してしまいました。。。

しっかりとデータベースのバックアップを取得していれば

格納先にデータファイルをリストアすれば事象は解決します。

以下「ORA-01157」の全文になります。

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

Total System Global Area 1073740616 bytes
Fixed Size 8665928 bytes
Variable Size 373293056 bytes
Database Buffers 683671552 bytes
Redo Buffers 8110080 bytes
データベースがマウントされました。
ORA-01157: データファイル5を識別/ロックできません -
DBWRトレース・ファイルを参照してください ORA-01110:
データファイル5: '/u01/app/oracle/oradata/ORCL18C/test001.dbf'

ちなみにマウント時には制御ファイルの物理情報はローディングされているだけで

実際にオープンできるかまでは検証しません。

なのでマウントが完了してオープンのステータスのところでORAエラーが発生するわけです。

エラーの対象方法:データファイルをdrop offlineさせる

データベースのバックアップを取得していない場合は

  1. データベースをマウントモードで起動
  2. 「alter database datafile ~ drop offline」を実行
  3. データベースをオープン状態に変更
  4. 表領域を削除

することで解消することが出来ます。

以下解消方法です。

まずマウントモードで起動します。

SQL> shutdown immediate
SQL> startup mount;

次に対象の表領域を「drop offline」します。

alter database datafile '<対象データファイル>' offline drop ;

そしてデータベースの状態をオープンに変更します。

alter database open;

最後に対象の表領域を削除します。

drop tablespace '<対象表領域>' including contents;

これで正常にデータベースを起動できます。

念のため実行ログを残しておきます。

17:47:19 SQL> STARTUP MOUNT;
ORACLEインスタンスが起動しました。

Total System Global Area 1073740616 bytes
Fixed Size 8665928 bytes
Variable Size 373293056 bytes
Database Buffers 683671552 bytes
Redo Buffers 8110080 bytes
データベースがマウントされました。
17:47:35 SQL> ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/ORCL18C/test001.dbf' OFFLINE DROP ;

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

17:48:27 SQL> ALTER DATABASE OPEN;

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

17:49:29 SQL> drop tablespace test001 including contents;

表領域が削除されました。

今回の教訓はしっかりとデータベースのバックアップは取得しておきましょう。

よかったらシェアしてね!
  • URLをコピーしました!
目次