• ベストアンサー

表領域に追加したファイルの削除

教えてください。 DB作成時にデフォルトで作成されていた「TEMP」と「CWMLITE」の表領域に誤ってデータファイルを追加してしまいました。 (TEMP02.dbf、CWMLITE02.dbfという風に) 追加したファイルを削除するには該当のデータファイルを オフラインにして実際にOS上からファイルを削除するという 手順で問題無いのでしょうか? それともOracle側でさらに処理が必要でしょうか?

  • Oracle
  • 回答数2
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

9iでも10gでも 1.該当データファイルをファイルをオフライン 2.該当データファイルをOracleコマンドで削除 3.該当データファイルをOS上から削除 という手順でOKです。(10gの場合は2,3をOracle上で同時にできるだけです。) それより問題は2.です。表領域の中の表が使っている データファイルだったりすると簡単には該当データファイルだけを 削除することはできません。 該当データファイルを使っている表を何か調べてそれを別表領域に 移動して、誰も該当データファイルを使っていない状態にしてから 削除してやる必要があるので非常にややこしいです。 (TEMP表領域は大丈夫だと思いますが) 誤って追加した直後に削除であればまだどこのテーブルでも使っていない可能性が 高いのでおそらく削除できるでしょうか、どこかのテーブルで使われている場合は connect /as sysdba select owner,segment_name from dba_segments where tablespace_name = 'CWMLITE'; で該当表領域に存在するセグメントを全部別表領域に移してから する方がよいかと思います。 (ただ、これも非常にサイズが大きいと大変ですが...)

その他の回答 (1)

  • ishi7474
  • ベストアンサー率32% (71/216)
回答No.1

Oracle9iか10gのどちらかで、対応方法は異なります。 詳しくは管理者ガイドを参照下さい。

関連するQ&A

  • オラクル表領域データファイルの削除について

    まず、経緯から書きますと、 レコードINSERT処理(Access)にて表領域不足エラーが出たため、 以下コマンドにてデータファイルを追加しました。 ALTER TABLESPACE USERS ADD DATAFILE '/db3/oradata/ora805/datafile09.dbf' SIZE 1000M; ところが、以下のエラーが出ました。 エラー行: 1: エラーが発生しました。 ORA-19510: 207360ブロックのサイズ設定に失敗しました   (ファイル"/db3/oradata/ora805/datafile09.dbf"、ブロックサイズ=2048)。 ORA-27059: skgfrsz: ファイル・サイズを削減できません。 SVR4 Error: 28: No space left on device Additional information: 2 ORA-19502: ファイル"/db3/oradata/ora805/datafile09.dbf"の書込みエラー。   ブロック番号: 207105(ブロックサイズ=2048) ORA-27063: skgfospo: 読込み/書込みのバイト数が正しくありません。 SVR4 Error: 28: No space left on device Additional information: -1 Additional information: 131072 まず、このエラーの詳細が正確に理解できていない状況なのですが、 なんとなく、これは、空き容量がないところに1000Mのデータファイルを 作成しようとして、大きすぎて作成出来ませんというエラーを返された、 と解釈しました。 それで、sqlplusにてデータファイルの一覧を見てみると、 追加しようとしていたdatafile09.dbfは確認できませんでした。 表領域 ファイル名            サイズ 自動追加 ---------------------------------------------------------- USERS /db1/oradata/ora805/datafile01.dbf 4194304 NO 0 USERS /db1/oradata/ora805/datafile02.dbf 2097152000 NO 0 USERS /db1/oradata/ora805/datafile03.dbf 2097152000 NO 0 USERS /db2/oradata/ora805/datafile04.dbf 2097152000 NO 0 USERS /db2/oradata/ora805/datafile05.dbf 1048576000 NO 0 USERS /db2/oradata/ora805/datafile06.dbf 996147200 NO 0 USERS /db3/oradata/ora805/datafile07.dbf 2097152000 NO 0 USERS /db3/oradata/ora805/datafile08.dbf 1887436800 NO 0 ところが、OS(Solaris5.6)に戻って、 /db3/oradata/ora805 フォルダの一覧を確認しますと、 以下のように datafile09.dbf が出来ていました。 -rw-rw---- 1 oracle dba 2097154048 13:52 datafile07.dbf -rw-rw---- 1 oracle dba 1887438848 13:52 datafile08.dbf -rw-rw---- 1 oracle dba 1048578048 14:32 datafile09.dbf ここから、質問なのですが、 1)なぜ、datafile09.dbf は OSでファイルが認識されているのに、 sqlplusでデータファイルを一覧したときには表示されないのか。 2)datafile09.dbf をいったん消したいのですが、 OSレベルで datafile09.dbf を削除してもオラクルに悪影響は 出ないのでしょうか。正しい消し方がわかりません。 以上です。 どなたかアドバイスいただけないでしょうか? よろしくお願いいたします。 Ver:Oracle8 OS:SunOS 5.6(Solaris)

  • オフラインリカバリが必要なDBFファイルの削除

    Oracleで一時表領域(TempTbs)用のTEMPファイル(TEMP01.DBF)を新規に作成しようと思いましたが 誤ってTEMP01.DBFに対してインデックス表領域(IndexTbs)を割り当ててしまいました。 ※IndexTbsを割り当ててるDBFファイルはもうひとつ存在してます なので一度下記のコマンドでオフラインにしました。 ALTER DATABASE DATAFILE 'E:\ORADATA\DATABASE1\TEMP\TEMP01.DBF' OFFLINE その後でE:\ORADATA\DATABASE1\TEMP\TEMP01.DBFを誤って別の場所(デスクトップ)へ 移動してしまい、その後で上記所定の位置へ戻し ALTER TABLESPACE IndexTbs DROP DATAFILE 'E:\ORADATA\DATABASE\TEMP\TEMP01.DBF';で 削除しようと思いましたが「ORA-02142:ALTER TABLESPACEオプションがないかまたは無効です」の エラーが表示され削除できません。OracleEnterpriseManagerでTEMP01.DBFファイルの属性を 確認するとステータスが「オフライン(リカバリが必要)」となっています。 正常にオフラインできていないようです。 残っていても問題ないのかもしれませんが、あっても気持ち悪いのでTEMP01.DBFを 削除したいのですが、正しい手順で削除するにはどうすればいいでしょうか? よろしくお願い致します。

  • Oracle8での表領域の開放について

    DWHで使用しているDB(Oracle8)についての質問です。 ユーザーオブジェクトを格納している非SYSTEM表領域が自動拡張の末がDisk容量を圧迫してきています。サーバーのDisk容量に余裕がなくデータファイルを追加することでの対策は打てません。 大容量のTABLEの作成や削除をしていたので実際に使用している容量は多くないはずなので、一度リフレッシュ(使っていない表領域を開放)したいのですが、Oracle8で可能でしょうか? 可能であれば手順についてもご教授いただきたく、宜しくお願い致します。

  • 表領域の拡張について

    表領域の拡張について教えてください。 以前、以下のようなSQL文で表領域(WEB_DATA)を作成しました。 -------- CREATE TABLESPACE WEB_DATA DATAFILE '/home1/oracle/app/oracle/oradata/orcl/WEB_DATA.dbf' SIZE 500M REUSE AUTOEXTEND ON NEXT 1M MAXSIZE 1000M EXTENT MANAGEMENT LOCAL AUTOALLOCATE; -------- 最近データ容量も増えており以下のように約800Mほどとなっております。 -------- -rw-r----- 1 oracle oinstall 806363136 11月 6日 08:18 WEB_DATA.dbf -------- よって表領域の拡張を考えております。 そこで、考えられる方法として以下の2つがあると思われますが、どちらを選択するほうが良いのでしょうか? (1)alter tablespace文の add datafile句 (2)alter database文の resize句 両者のメリット・デメリットがイマイチよく分かりません。 (パフォーマンス的にどちらが良いなどもあるのでしょうか?) また表領域のmazsizeの上限値は通常どれほどにしておくべきなのでしょうか? 環境は以下の通りです。 OS:Solaris8 DB:Oracle9i 以上、宜しくお願い致します。

  • 表領域の再編成

    こんにちわ。 いまORACLE10Gで,あるテーブルに20万件データを挿入し,耐久テストをした後で,データ削除したところ, 急にレスポンスが悪化したようです。 表領域の使用状況は, SYSAUX :96.55% SYSTEM :98.99% TEMP :99.89% UNDOTBS1:51.91% USERS :99.63% となっています。 このようなときは,表領域の再編成をすれば良いのでしょうか? ちなみに,TEMPを再編成しようとすると, 「選択した表領域は再編成できません。Oracleでは、SYSTEM、SYSAUX(10i以上)、一時、UNDO、オフラインまたは読取り専用の表領域の再編成はサポートしていません」というメッセージが表示され,再編成できません。 どうすれば,レスポンスが改善するでしょうか? 初歩的なことかもしれませんが,教えてください。 宜しくお願いします。

  • 新規表領域の作成について

    はじめて質問します。 現在Oracle9iで開発を行っているのですが下記のようなことができるかどうかをお教え下さい。 Oracle9i ServerがインストールされているPCとは別のPC上の共有フォルダ内に新規の表領域を作成したい。 具体的にはOracle ServerがインストールされているPCがSV1、 新規表領域を作成したい別のPCがCL2、CL2の共有フォルダがORA_DATA としてSV1とCL2はLANで繋がっておりSV1からCL2の共有フォルダは閲覧できる状態です。 この状態で CREATE TABLESPACE USERS2 DATAFILE '\\CL2\ORA_DATA\USERS02.DBF' SIZE 10M LOGGING ONLINE と実行すると ORA-01119: データベース・ファイル'\\CL2\ORA_DATA\USERS02.DBF'の作成中にエラーが発生しました。 ORA-27040: skgfrcre: 作成エラーが発生しました。ファイルを作成できません。 OSD-04002: ファイルをオープンできません とエラー表示され作成に失敗してしまいます。 ディスクの容量は50G以上空いており容量不足とは考えにくいです。 やはり'\\CL2\ORA_DATA\USERS02.DBF'といった書き方がマズイのでしょうか? それともOracleでは根本的にこういったことは許可されていないのでしょうか? もう何日も行き詰まっている状態ですのでどうかご助力下さい。

  • Oracleの一時表領域について

    毎々お世話になっております。 一時表領域が肥大化してきたため、オンラインで縮小処理をしました。 http://www.roy.hi-ho.ne.jp/montague/lilical-oracle.html TEMP01を使用していたため、TEMP02を作成しTEMP01をオフラインにしました。 そしてdropしようとすると失敗しました。エラーが出たらしいのですが、後輩が消してしまったため わかりません。またTEMP01の物理ファイルも削除してしまったようです。 今の一時表領域をみるとTEMP02がオンラインになっていました。正常に使用もされていましたが、 TEMP01が中途半端に残っています。TEMP01もオンラインになっていますが、サイズは0MBとなっています。TEMP01をオフラインにするSQLを入力するとオフラインになりましたというメッセージが出ます。しかしDROPしようとすると、使用できない旨のエラーがでます。 解決方法が分からなくて困っています。 バックアップファイルもないため困っています。 このような状況になった方はおられますでしょうか?お手数ですがご教授ください。

  • 表領域の作成について

    表領域を作成してインポートしたら下記のエラーが出力されて困っています。 表領域の作成の仕方が駄目でエラーが出力されてしまったのでしょうか。 下記のCREATE TABLESPACE文で表領域を作成しています。 ---------------------------------------------------------------------- CREATE TABLESPACE "T_DAT" BLOCKSIZE 8192 DATAFILE 'D:\oracle\oradata\ora92\DAT_01.DBF' SIZE 32767M, 'D:\oracle\oradata\ora92\DAT_02.DBF' SIZE 32767M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M SEGMENT SPACE MANAGEMENT AUTO; ---------------------------------------------------------------------- コマンドプロンプトでimpコマンドを実行したら、下記のエラーなどが出力されました。 ---------------------------------------------------------------------- IMP-00003: Oracleエラー1659が発生しました。 ORA-01659: nを超えるMINEXTENTSを表領域T_DATに割当てできません。 IMP-00003: Oracleエラー1658が発生しました。 ORA-01658: 表領域T_DATにセグメント用のINITIALエクステントを作成できません。 ---------------------------------------------------------------------- 何がいけないのかが正直わかりません。 申し訳ありませんがアドバイスいただけませんでしょうか。 宜しくお願いします。

  • 「ORA-12913: ディクショナリ管理表領域を作成できません」について

    AというサーバーのオラクルデータをダンプしてBというサーバーにデータ移行を 行っていますがうまくできません。 約1週間、調べて実行して失敗を繰り返しています。 ちゃんとオラクルを触るのは今回が初めてです。 以下の表領域のCREATE文はimpコマンドに「SHOW」オプションを「Y」にして実行した際に 出力されたものから抜き出しました。 CREATE TABLESPACE "DATA_A" BLOCKSIZE 8192 DATAFILE 'D:\oracle\oradata\...\DATA01.DBF' SIZE 5541M REUSE AUTOEXTEND ON NEXT 1048576 MAXSIZE 32767M, 'D:\oracle\oradata\...\DATA02.DBF' SIZE 6191M REUSE AUTOEXTEND ON NEXT 1048576 MAXSIZE 32767M EXTENT MANAGEMENT DICTIONARY DEFAULT NOCOMPRESS STORAGE ( INITIAL 524288 NEXT 524288 MINEXTENTS 8 MAXEXTENTS 2147483645 PCTINCREASE 50 ) ONLINE PERMANENT NOLOGGING; 上記のCREATE文を実行したら下記のエラーが発生して作成できませんでした。 「ORA-12913: ディクショナリ管理表領域を作成できません」 オラクルのバージョンは「9.2.0.1.0」です。 9.2から表領域を作成するSQLが変わったという記事を読みました。 どのように変わったのかがいまいちわかりません。 申し訳ありませんがご教授いただけませんでしょうか。 宜しくお願いします。

  • 表領域作成について

    こんにちは。 現在、Win2KのOracle9.2のDBに表領域を作成しようと考えています。 データファイルの指定方法で質問があります。 初期のデータファイルサイズを25MBにして、さらに自動拡張もしたい場合は どうしたらよいのでしょうか? マニュアルを読む限りでは、SIZEを指定すると、自動拡張できない。 みたいなことが書かれているのですが・・・ しかし、SIZEを指定しないでAUTOEXTENDをONにすると初期サイズが100MBになってしまうし・・・ このような場合はどのように指定したらよいのでしょうか? ご教授願います。