プロが教えるわが家の防犯対策術!

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 ~" で拡大できたと思うのですが、
方法がはっきり分かりません。

どなたかご存知の方、また、このエラー自体の原因が
分かる方、いらっしゃったらお願いします。

A 回答 (3件)

表領域を安易に拡大する前に原因の追及を。


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

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
/
    • good
    • 0

エクステント(EXTENT)が拡張できなくなったために出たエラーかもしれません。


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

マニュアルは SQLリファレンスの CREATE TABLESPACE文・ALTER TABLESPACE文・storage句の部分と管理者ガイドのストレージ部分・表領域の部分についてを参照してみてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す