Oracle:表領域が削除できない


Oracle:表領域が削除できない

Oracleの表領域を削除しようとしたら・・・
SQL> DROP TABLESPACE TBS001;
DROP TABLESPACE TBS001
*
行1でエラーが発生しました。:
ORA-01116: データベース・ファイル23のオープンでエラーが発生しました。
ORA-01110: データファイル23: 'D:\TBS\TBS00101.DBF'
ORA-27041: ファイルをオープンできません
OSD-04002: ?t?@?C????[?v??????????S-Error: (OS 2) ?w?????t?@?C???????????????
誰かがデータファイルを消したらしい・・・
そうすると上記エラーでテーブルスペースが削除できない。

こういう時は、削除するテーブルスペースの全データファイルをOFFLINEにする。
  ALTER DATABASE DATAFILE 'D:\TBS\TBS00101.DBF' OFFLINE DROP;
これでテーブルスペース削除できるようになる。

データファイルがたくさんある場合は、以下でSQLを作ってしまおう。
  SELECT 'ALTER DATABASE DATAFILE ' || FILE_NAME || 'OFFLINE DROP;' FROM DBA_DATA_FILES
  WHERE FILE_NAME LIKE 'D:\TBS%'
  ORDER BY 1


0 件のコメント:

その他の記事