咨询微信: dbservice1234 7 x 24 在线支持!

    你在这里

Oracle 表領域の削除前にOS上でファイルを削除してしまった場合の対処

Oracle 表領域の削除前にOS上でファイルを削除してしまった場合の対処

ORACLEデータベース によくあるエラ の解決策

プロのOracle Databaseの復旧サービスを提供
携帯番号: +86 13764045638 メール:service@parnassusdata.com

 

 

[Problem]

表領域をDROP TABLESPACEコマンドで削除する前に、
誤ってOS上でデータファイルを削除してしまいました。
DROP TABLESPACEコマンドでエラーが発生し、削除できません。


[To reproduce]
SQL> create tablespace test
  2  datafile '/tmp/test.dbf' size 1M;

表領域が作成されました。

SQL> create table test (a number) tablespace test;

表が作成されました。

SQL> !rm /tmp/test.dbf
rm: /tmp/test.dbf を消去しますか (yes/no)? y

SQL> drop tablespace test including contents;


drop tablespace test including contents
*
エラー行: 1: エラーが発生しました。
ORA-01116: error in opening database file 19
ORA-01110: data file 19: '/tmp/test.dbf'
ORA-27041: unable to open file
SVR4 Error: 2: No such file or directory
Additional information: 3



[Action]

データファイルをOFFLINE DROPしてから表領域をDROPします。

1.データファイルのOFFLINE DROP

  SQL> alter database datafile '/tmp/test.dbf' offline drop;

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

2.表領域の削除
 
  SQL> drop tablespace test including contents;

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


また、似たようなケースとして、SHUTDOWN中に誤ってデータファイルを削除してしまった
場合に、STARTUP時にエラーとなります。
削除されたデータファイルを含む表領域が削除可能な場合は、以下の方法でOracleを起動
して表領域を削除します。

誤って削除してしまったデータファイルを'/tmp/test.dbf'、表領域をtestとします。

SVRMGR> startup mount;
SVRMGR> alter database datafile '/tmp/test.dbf' offline drop;
SVRMGR> alter database open;
SVRMGR> drop tablespace test including contents;


[Error#]
ora-1116