• 締切済み

ORACLEのテーブルスペースについて

OS:AIX Ver.4.3 DB:ORACLE(Ver.8.1.6) でSQL*Loaderを実行していたのですが、 "エラーコード -2 STDERR 書込不可"? ↑ (ログを消してしまってはっきりは覚えてないのですが) というエラーログが出力され、その後、ロードする テーブルのTABLESPACEについて "ORA-01536: 表領域 TABLESPACEXXXに対して割り当てられた領域を使い果たしました。" というORACLEのエラーが発生し始めました。 その後、CREATEは上記ORACLEエラーにより実行不可、 その後のINSERTは途中までできていたのですが、途中から 同様のORALCEエラーにより実行不可、 という状態になっています。 (直前まで通常にデータの更新は行えていました) ちなみに該当するTABLESPACEに割り付けられたデータ ファイルにはまだ十分領域が空いています。 該当するTABLESPACEのデータファイルに対する割付領域を "ALTER TABLE ~" で拡大できたと思うのですが、 方法がはっきり分かりません。 どなたかご存知の方、また、このエラー自体の原因が 分かる方、いらっしゃったらお願いします。

みんなの回答

  • soakun
  • ベストアンサー率66% (6/9)
回答No.3

エクステント(EXTENT)が拡張できなくなったために出たエラーかもしれません。 CREATE TABLESPACE時に PCTINCREASE が指定していされていないとデフォルトでは通常の表を格納するのにあまり好ましくない値(50)が設定されているかもしれません。そのため、エクステントを拡張するたびに、前の拡張したエクステントの1.50倍(50%の場合)のエクステントを確保しようとすると思います。 一時的な解決方法は表領域に割り当てるファイルを追加することですが、PCTINCREASE等のパラメータの見なおしも、今後のことを考えると必要になるのではないでしょうか。 # 見なおした後は、できれば一旦表領域のデータを全て EXPORTしたあとで、 # パラメータをきちんと設定してから、IMPORTすると大丈夫だと思います。 マニュアルは SQLリファレンスの CREATE TABLESPACE文・ALTER TABLESPACE文・storage句の部分と管理者ガイドのストレージ部分・表領域の部分についてを参照してみてください。

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

Tablespaceで連続した空き領域を確保できなくて、"ORA-01536: ~"の エラーが発生した可能性はあります。 しかし修復する方法が今思いつきませんので、てっとり早い対策として "ALTER TABLESPACE"で表領域を拡張する方法を紹介します。 Windows系OSの例ですが、 "ALTER TABLESPACE 表領域名 ADD DATAFILE 'ファイル名' SIZE 拡張サイズM /" と、SQL*Plus等で入力してください。 ファイル名は、パス付きで入力します。 拡張サイズの後ろには、M(メガ)かK(キロ)を付けること。 (サンプル) 表領域 "USERS"を100M拡張します ALTER TABLESPACE "USERS" ADD DATAFILE 'D:\ORACLE\ORADATA\USERS100.DBF' SIZE 100M /

  • pussyfoot
  • ベストアンサー率28% (39/138)
回答No.1

表領域を安易に拡大する前に原因の追及を。 見かけ上表領域に空きがあっても連続した空き領域が無いと領域不足に陥る事があります。 詳しくはマニュアルをご覧ください。 無ければ、オラクルのサイトからダウンロードしてくる事をオススメします。

関連するQ&A

  • Oracleエラー(権限の関係?)

    <環境>マシン:IBM RX6000 OS:AIX Ver.4.3 DB:ORACLE(Ver.8.1.6) 上記環境で、急にCREATEができなくなりました。 (1)ORA-01536: 表領域 TABLESPACE1に対して割り当てられた領域を使い果たしました。 というエラーが出たのですが、 空き領域を整理し、データファイルを新しく割り付けた後も同様のエラーが 発生しました。 それまでの処理は、 2)AユーザからテーブルデータEXPORT後BユーザへIMPORT ※※補足※※ Aユーザのロール:CONNECT、DBA Bユーザのロール:CONNECT、RESOURCE だったのですが、この状態だとBにIMPORTできない ため、 IMPORT前にBにDBAロールを追加、IMPORT後に削除 3)SQL*Loader実行すると、 エラーコード-2 STDERRに関する何かのエラーが出、 (↑ログが残っていないため詳細不明) その後、再度SQL*Loaderを実行しても、 (1)のエラーが発生して処理終了 4)Bユーザに関して、TABLESPACE1に関しても、その他 のTABLESPACE(TABLESPACE2)に関しても、CREATE不可 INSERTも件数が多いと途中で(1)のエラー発生 ※※補足※※ Aユーザに関しては、TABLESPACE2にはCREATE可能 (TABLESPACE1はテスト未) 最終的には、BユーザにDBAロールを追加して、 実行可能になったのですが、元々はDBAロールを持たせずに 処理できていたので、原因が分かりません。 EXPORT&IMPORT時に「権限をIMPORTするか?>Yes」を選択 したことや、DBAロールを追加&削除したことが影響するので しょうか? ただ、最近Oracleサーバの調子が悪かったため、その影響も あるかもしれません。 全く原因が分かりませんので、心当たりのある方、 よろしくお願いします。

  • Oracle9iのTEMPORARYファイルのバックアップについて

    初めて質問をさせていただきます。ひでと申します。 今回、Oracle8iのバックアップ環境をOracle9iに改修を行っているのですが、TEMPORARYファイルの扱いで困っています。 Oracle8iではTEMPORARYファイルを下記のコマンドでバックアップ用に待機させる事が出来るのですが、 alter TABLESPACE TEMPORARY begin backup; Oracle9iでは上記コマンドを実行すると下記のエラーが発生します。 --- ORA-03217: TEMPORARY TABLESPACEの変更用オプションが無効です。 原因: 一時表領域の変更に、無効なオプションが指定されました。 処置: 有効なオプション(ADD TEMPFILE、TEMPFILE ONLINE、TEMPFILE OFFLINE)のうちいずれかを指定してください。 --- 調べた所によるとTEMPRARYファイルは「バックアップをする必要なファイル。もしくはバックアップ不可能なファイル」に位置づけられているようなんですが、Oracle9iでバックアップに必要でないと言う確証が持てません。 どなたかご教授頂ければ幸いです。 以上、よろしくお願いいたします。

  • Oracleテーブル作成について

    Oracle初心者です。 表領域 TEST_TABLESPACEがあるとします。 (サイズは、1024Mと仮定) (1)この表領域に一つのテーブル TEST_TABLEを作成します。 (サイズは、INITIAL 512M NEXT 512M) ここで質問なのですが、例えば上記でテーブルの NEXTを600Mとかにすると、データが512M以上入って NEXTのサイズが拡張された場合、エラーが発生するのか それとも、最大の512Mが拡張され、1024M分のデータが 入らない限り、エラーが発生しないのか? 教えていただけますか? (2)テーブル作成のDDL内でSTORAGE句指定しない場合、 INITIALとかNEXTは、どう設定されますか? 長々と申し訳ないですが、よろしくお願いいたします。

  • rawデバイスの表領域を他のrawデバイスに移動させたい

    rawデバイスに表領域を作成しているのですが、負荷分散のため、他のrawデバイスに移したいと考えています。 rawデバイスでない場合はalter tablespaceでできそうなのですが、rawデバイスだとこの方法は使えなさそうです。 新しくcreate tablespaceする以外に何か方法はないでしょうか? Oracleのバージョンは9.2.0.4です。 よろしくお願いします。

  • 一時表領域について

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

  • オラクルのSQLについて

    オラクルのSQLについて質問です。 開発環境はVB6.0です。 引継ぎをまかされたのですがオラクルは操作したことがないので困っています。 Set Ora = dbOra.CreateSql("begin EMPCRMI(:KA, :ROOM, :YMD, DATA1, :DATA2, :DATA3, :DATA4, :RET) ; end;", 0&) のEMPCRMIの部分が何なのかがわかりません>< 検索をかけてもVB構文ないで検索をかけてもヒットしません。 DATAの拡張を行うためにDATA5.DATA6と増やして実行したらエラーが起きました。 データベースのテーブルでは拡張領域は確保してあるので何が原因なのかわからないでいます、、、 お知恵をお貸しください。

  • UNDO表領域の拡張について

    Oracle9iにてUNDO表領域を自動拡張ではないため手動にて拡張(512M→1024M)しようとしております。 UNDO表領域:/oradata/undotbs01.dbf 表領域をオフライン(alter tablespace '/oradata/undotbs01.dbf' offline;)にすることなく以下のSQL文のみで拡張することは可能でしょうか? SQL> alter database datafile '/oradata/undotbs01.dbf' resize 1024M; ご教授の程、宜しくお願い致します。

  • オラクルユーザのパスワード変更

    お世話になっています。 ALTER USER [ユーザ名] IDENTIFIED BY [パスワード] を使用して、ユーザのパスワードを変更したいのですが、パスワードを数字で始めると ORA-00988:パスワードが指定されていないか、または無効です。 となってしまいます。 例>ALTER USER USER1 IDENTIFIED BY 0ABC→エラー パスワードを英字で始めて、その後に数字をつけるぶんには問題なく変更できるのですが、数字で始めるとエラーになってしまいます。 これはオラクルの仕様なのでしょうか?? それともSQLの組み方がまずいのでしょうか?? それともオラクルの設定が間違ってる?? どなたがわかる方がいらっしゃいましたら、ご教授をお願いします。

  • オフラインリカバリが必要な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を 削除したいのですが、正しい手順で削除するにはどうすればいいでしょうか? よろしくお願い致します。

  • ORACLE init.oraの設定

    ORACLEのパラメータを変更するために、init.oraの設定を行いたいのですが、以下のコマンドをSQLPLUSで実行するのですがエラーになってしまいます。 どのようにしたら実行できるのでしょうか? 教えてください。 SQL> startup pfile=E:\oracle\admi ORA-01031: 権限が不足しています。 使用環境    ORACLE VERは9.2.0.1.0    OS   XP 宜しくお願いします。