• 締切済み

oracle SYSTEM01.DBF が大きい

現在、oracleのSYSTEM01.DBFが大きいくなっていています。 13Gです。 SYSTEM01.DBFの縮小する方法がわかりません。 教えて下さい。 Webで調べましたがよくわからなくて・・・。 宜しくお願いします。 わがままとなりますが、なるべく、わかりやすく。

  • Oracle
  • 回答数4
  • ありがとう数6

みんなの回答

  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.4

こんにちわ。 1点訂正です。 LONG 型データを含まないテーブルの表領域移動をするコマンドに 間違えがありました。 以下のように訂正します。 誤:SQL> Alter table テーブル名 move <新表領域名>; 正:SQL> Alter table テーブル名 move tablespace <新表領域名>;

GONBEBW
質問者

お礼

ご回答、ありがとうございます。

  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.3

こんにちわ。 > Oracleは9iです。 > テーブルをdropしてインポートすると言う事を頻繁に・・・ Oracle9i でしたか。 11g であれば、標準監査のログ (SYS.AUD$) が肥大化している可能性 もあったのですが、9i だと違いそうですね。 そうすると、テストで使ってるテーブルがSYSTEM 表領域を使っている 可能性が高いと思います。 SYSTEM 表領域の中を確認して、テスト用のテーブル/索引があった場合は 別の表領域に移動させてはどうでしょう? 因みに、テーブル/索引は以下の方法で表領域の移動が可能です。 テーブルの移動: SQL> Alter table テーブル名 move <新表領域名>; 索引の移動: SQL> Alter index 索引名 rebuild tablespace <新表領域名>; 但し、テーブルの表領域移動を行う際には3点程注意点があります。 1) SYSTEM 系のテーブル (SYS.AUD$ 等) は表領域の移動が   サポートされていない可能性があります。 2) Alter table コマンドで表領域の移動ができるのは   LONG 列を含まないテーブルに限られます。   LONG 列を含むテーブルは、exp, 別表領域にテーブル作成,   ignore=y を指定してimp の手順で行って下さい。 3) テーブルを移動すると、移動したテーブルに定義されている   索引の状態がUNUSABLE になります。   索引の状態を元に戻すには、索引のRebuild が必要となります。   ですので、表領域の移動はテーブルを先に行って下さい。

GONBEBW
質問者

お礼

ご回答、ありがとうございます。

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.2

> Oracleは9iです。 > ちなみに、テスト環境なのでテーブルをdropしてインポートすると言う事を頻繁に行っています。 これはテストテーブルをSYSTEM表領域に作成しているということでしょうか? だとするとデータファイルが断片化してしまい縮小は難しくなると思います。 http://d.hatena.ne.jp/yohei-a/20100417/1271482051 を参考にしてData Pump で dumpデータを exportし、DBの再作成。USERS表領域等を作成。 表領域を指定してインポート。 後は定期的にデータポンプでもexp,impでもいいのでデータの再構成を行なってdatafileのresizeをすればいいかと思います。

GONBEBW
質問者

お礼

ご回答、ありがとうございます。

  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.1

こんにちわ。 > SYSTEM01.DBFの縮小する方法がわかりません。 例えば、'/opt/oracle/oradata/orcl/system01.dbf' を5GB まで 縮小させるには、以下のコマンドを実行します。 SQL> alter database datafile    '/opt/oracle/oradata/orcl/system01.dbf' resize 5120m; 但し、データファイルの5GB より後ろの領域が使われていると 縮小には失敗します。 データファイルが拡張していると言う事は、何かのセグメントが 大量に領域を使用しているんだと思います。 先ずは、何が領域を大量に使用しているか確認した方が良いですね。 手順は、こんな感じです。 1) SQL> select file_id, file_name from dba_datafiles;   上のSQL でSYSTEM01.DBF のfile_id を調べる。 2) SQL> select tablespace_name, block_size from dba_tablespaces;   上のSQL でSYSTEM 表領域 (SYSTEM01.DBF を使用している表領域) の   ブロックサイズを調べる。 3) SQL> select segment_type, segment_name, max(block_id)      where file_id = <1) で確認したfile_id> and       block_id > 655360 order by 3 desc;   上のSQL で5GB より後ろの領域を使っているセグメントを調べる。   ※ block_size が8KB の場合を想定しています。    5120 × 1024 ÷ 8 = 655360 それと、使用しているOracle のバージョンを教えて下さい。

GONBEBW
質問者

お礼

ご回答、ありがとうございます。 No.3を確認します。

GONBEBW
質問者

補足

Oracleは9iです。 ちなみに、テスト環境なのでテーブルをdropしてインポートすると言う事を頻繁に行っています。

関連するQ&A

  • Oracleの.ora/.dbfファイルついて

    手元にOracleが入ったサーバーがあったのですが、故障して動かなくなってしまいました。なんとかオラクルのフォルダは取り出すことが出来ました。データを復元したいと思っております。 フォルダの中身を見たところ、「XXXXX.ora」や「XXXXX.dbf」というファイルが残っておりました。 最終的にはCSVなどに戻したいところですが、まずはOracleに取り込みたいと思っております。ちなみに元のテーブル名、構成などは不明です。 Oracleは11gです。 インポートする方法や中身を表示させる方法などがあればお教え頂ければと思います。

  • dbfファイル

    DBFファイルの情報をOracle 10gのテーブルにリンク したいのですが、どのようにするのでしょうか? サーバー環境:Windows Server 2003 クライアント環境:WindowXP Pro

  • .dbfファイルの急増

    質問があります。 webサイトの運用をしている会社に勤務しています。 管理しているサイトのDBに使っているoracleで、つい一昨日あたりから急に、archiveの下の.dbfファイルが1時間に数回、それも100M単位のものが作成されてしまうという現象に見舞われています。一晩でdiskfullになってしまいます。設計者が離職してしまい、誰も対処できなく困っています。なにかお知恵があればご教授ください。お願いします。

  • Oracle9i 大規模システム

    大規模なシステムWEBシステム(データ件数が6000万件・使用ユーザ3000人)を 構築することになったのですがデータベースの構成でこまっていることが ありまして質問させていただきました。使用するのはOracle9iなのですが オラクル特に9iには詳しくなく・・・(T_T) HPのUNIXを2台用意して別々のインスタンスを使用して分散させる構成に ハードの担当が出してきたのですが どうもそれだとプログラマとしては 使いにくいと思いまして。というのもコネクションを2つに張って SQLを発行しなくてはならないからです。こういった場合は 2つのオラクルで1つのインスタンスとしてみるような構成ができないのでしょうか?2台のオラクルで構成できるベストな構成とはどういったものとなるのでしょうか?

  • VB .NETとOracleを使用したシステム構築

    お世話になります。 現在、VB5とOracle8.0.6で稼動しているシステムがあるのですが、このシステムをVB.NETを使用してWEB化したいと考えております。 質問なのですが、 VB5+Oracle8.0.6のシステムをVB.NETでWEB化する場合、 どういう環境が必要なのでしょうか? また、注意点などありましたら、是非教えてください。 言葉足らずだとは思いますが、何卒、よろしくお願いします。 環境 クライアント  Windows XP Pro SP1  IE6.0 WEBサーバ  Windows2000 Server  IIS 5.0 DBサーバ  Oracle 8.0.6

  • Oracle(オラクル)のアップグレードの注意点

    <現在の環境>  [Server]   OS:Windows 2000 Server   Oracle:8i(8.1.6)  [Client]   OS:Win98・2000・XP    ↓↓↓ <アップグレード後の環境>  [Server]   OS:Windows 2003 Server   Oracle:10g(10.2.0)  [Client]   OS:Win2000・XP ※98は10gClientに対応していないため  上記の<現在の環境>にて、VB6で作成したアプリケーション(exeファイル)とAccessを使用したシステムを構築・運用しております。  <アップグレード後の環境>のようにOracleのバージョンを8iから10gにアップグレードしたいと考え、障害などについて調査をしている段階です。  OracleのヘルプやWebなどを参考にしたり、実際にデータを8iからExport→10gへImportして動作させたりして調査しています。  しかし、実際に行ったことの有識者にアドバイスをいただけたらと思いこちらへ質問させていただきました。  何か参考になるサイトや、実際に行った方の注意点を教えていただけたらと思います。よろしくお願いします。

  • ORACLEについて

    ORACLEでDBを構築しようと思っているのですが、 ORACLE8とORACLE8iとはどう違うのですか? 今手元にその二つのソフトがあるのですがどちらを使えばよいかわかりません。ちなみにwebサーバーでシステムを行おうと計画をしています。 よろしくおねがいします。

  • オラクル アプリケーション サーバーが時々不安定になります。

    オラクルDB10gとオラクル アプリケーション サーバー10gを1筐体のサーバーで使用しています。OS Windows2003,メモリ2G強,ディスク容量は十分にあります。Javaで構築したシステムですが、時々Web接続できなくなります。その際、オラクル アプリケーション サーバーを停止し、再起動を行えば復旧するのですが、オラクルに問い合わせしても今のところ原因不明です。サーバーは 24時間稼動です。

  • ASP(VBScript)+Oracleについて

    こんにちわ。 現在、とある案件で初めてWebシステムの開発に携わる 者です。 ASPとOracle(8.1.7)について全くの初心者なので、 VBScriptとOracleを使用したWebシステムの開発に参考になるようなサイトを探しています。 検索エンジンでもいろいろと探していたのですが、入門 向けの良いサイトがなかなか見つからないので、知って おられる方がいましたら、よろしくお願いします。

  • Oracleクライアントの共存方法について

    パソコンにOracle Client10gとOracle Client11gを インストールしたいのですが、注意点はありますか?? Oracle Client10g⇒Aシステム Oracle Client11g⇒Bシステム 2つのシステムを同時に起動することもあります。