• ベストアンサー

Oracleのsystem表領域について

ORACLE初心者です。 system表領域がいっぱいになる現象が発生しました。(使用率98%) 原因調査を依頼されましたが、system表領域がどのような要素で 構成され、増えていくのか分かりません。 (環境) Windows2000Server Oracle 8.1.6 WorkGroupServer ユーザのデフォルト表領域はちゃんと指定しているとの事です。 何か情報がありましたら、教えていただきたくお願いします。

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

  • ベストアンサー
  • cse_ri
  • ベストアンサー率29% (74/253)
回答No.2

SQL*PLUSを起動し、一般ユーザが使用しているユーザIDで ログインしてください。 そして、 select table_name,tablespace_name from user_tables; を実行します。 テーブル名と表領域名が表示されますので、表領域systemを 占有しているテーブル名がわかるかと思います。

kouchans
質問者

お礼

本コマンドは、SYSTEM表領域に作成されているテーブルが一覧表示されるのですね。なるほど また、別ルートで下記のSQLを入手しました。 select username, default_tablespace from dba_users ; ユーザのデフォルト表領域が表示されます。私が見ている環境では、聞いていた ユーザは、ちゃんと用意した表領域をデフォルトとしていますが、それ以外の ユーザは、すべてSYSTEMをデフォルト表領域としていました。 (ただ、インストール時にもいっぱいユーザがいたので、実際どれが容量を 増やしている要因なのかは、これから調べなければなりませんが・・・) cse_riさん 回答ありがとうございました。 いきなり、Oracleを面倒見る事になってしまい、聞きまくり状態ですが、 早く理解できるように、SQLとか勉強しなければ!!

その他の回答 (1)

  • MarrowG
  • ベストアンサー率53% (41/76)
回答No.1

Oracleに限りませんがSYSTEM表領域はそのDBサーバーで管理されているデータベースやテーブル等の管理情報を保持しています。 具体的には、DBサーバーにあるデータベース名の一覧、各データベースに含まれるテーブル一覧、ユーザーアクセス権限などです。 多くのデータベースやテーブルを定義すればするほどSYSTEM表領域は消費されていきます。 SYSTEM表自体もデータベース、テーブルとして定義されていますので、データベース管理者権限にて各テーブルの定義を見ればおおよそのデータ量見積りはできると思います。 事前にこのDBサーバーでどの程度のデータベース数、テーブル数、ユーザー数で使用するのかが分かればSYSTEM表領域をどの程度確保すべきかはある程度見積もることが出来ます。 Oracleの導入マニュアルやデータベース管理者マニュアル等に指針(計算式?)が載っていたはずなので、確認してみてください。

kouchans
質問者

お礼

回答ありがとうございます。 色々と見てみましたが、実際の容量が280MB位になっていたので、 質問ではユーザのデフォルト領域設定がちゃんとされている。。。 と書きましたが、どうも あやしい感じがして来ました。

関連するQ&A

  • 表領域拡張の必要性

    Windows2003サーバ上でORACLE10g リリース2を使っています。 ORACLEのインストールは、ほぼデフォルト設定にしてあります。 ORACLEのエンタープライズマネージャで表領域を見ると SYSAUX  サイズが550Mで使用量が540M、セグメント領域の管理=自動 SYSTEM  サイズが560Mで使用量が555M、セグメント領域の管理=手動 となっていました。 オーバーフローしないか心配なのですが、セグメント領域を拡張する必要はあるのでしょうか?。 ちなみにテーブルの表領域はUSERS で残りも60%以上あります。 よろしくお願いいたします。

  • 表領域の違うEXPORT IMPORT

    現在ORACLE8iでSYSTEMという表領域で、データを保持しています。 このデータを異なるオラクルサーバの、例えばAAAという表領域にimportさせたいです。 http://www.geocities.jp/principal_focuses/tech/ora/ora_tech/ora_tech_031.html 等もみたのですが、少しわかりづらかったです・・・。 一番効率よく、EXPORT及びIMPORT出来る方法はありますでしょうか。 ちなみに、AAAの領域には既にテーブルがCREATEされている状態です。

  • 表領域の再編成

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

  • Oracle9i 大規模システム

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

  • 一時表領域について

    システム運用開始前の性能試験で、自動拡張に設定していない一時表領域の容量を超えるOracleのエラー(ORA-1652だったような)が出たため、SQLの修正を行っている最中です。 パフォーマンスチューニングやデータベース容量の設定などには詳しくないため、一時表領域を自動拡張に設定すべきかこのまま自動拡張にしないままにしておくべきかどうかの判断はつかないので、とりあえずそのままにして、一時表領域が容量を超えないようなSQLに修正しようとしています。 ただ、一時表領域のため、容量の見積が出来ず、実際にシステムを動かして確認するしかありません。 自社の環境でもOracleのエラーを再現させることが出来たのですが、一時表領域のサイズが小さくなりません。 これは、エラーのせいなのでしょうか? また、一時表領域を小さく(0バイト)にしたり、いったん削除して再作成したりは出来ないのでしょうか? ALTER TABLESPACE、DROP TABLESPACE 共に実行できませんでした。 ちなみに、この一時表領域は、TEMPORARYタイプでユーザのデフォルトの一時表領域になっています。

  • oracle9iでの表領域名変更について

    Oracle9iでの表領域名の変更方法について教えていただけませんでしょうか。 通常のデータを格納している表領域です。(一時やsystemではありません) 宜しくお願いします。

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

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

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

    はじめて質問します。 現在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初心者です。 当方、Oracleの管理の担当になる予定で、分からないなりにですが打合せに参加しております。 そこで「表領域不足でエラーになった事がある」という事を聞きました。 Oracleユーザーなら皆経験するような事かもしれないですがそこでSQL*Plusなどを立ち上げて視覚的に確認するのではなく、メールやメッセージで管理者に知らせるような方法、もしくは他の方法で皆さんは行っているのではないかと思ったので質問させて頂きました。 どうかご教授下さいませ。 宜しくお願いいたします。

  • ORACLE の export/import ユーティリティのユーザ単位のimport のときは・・?

    oracle7にある表、view,indexなどをoracle8に持っていこうとしています。 ユーザ単位で表やindexをexport し oracle8 に持っていったのですが、元々はindexと表 が別々の表領域にあったのが、すべて同じ表領域になってしまいます。 ユーザ単位でのexportの場合は表領域の情報は格納されないそうですが、 このような場合、一番効率よく、元々の情報(アイテムごとの表領域にもどす) の形にimport するにはどのようにすればいいのですか? ちなみにFULLでのEXPORT/IMPORTは使わないでする方法を探しています。