技術情報

RSS

ORA-01653: 表???.???を拡張できません(???分、表領域???)。

ORA-01653エラーとはどのようなエラーか?

テーブルへのデータ追加・更新により、データを格納している表セグメントの空き領域が不足した場合、表セグメントは拡張されます。表セグメントを格納している表領域に、拡張分に対応した空きがない場合、ORA-01653エラーが発生します。

ORA-01653エラーのエラー出力例

SQL> INSERT INTO TEST VALUES (60000,60000,60000);
INSERT INTO TEST VALUES (60000,60000,60000)
            *
行1でエラーが発生しました。:
ORA-01653: 表SCOTT.TESTを拡張できません(8分、表領域USERS)。

エラーの数値、引数の意味は以下のとおりです。

    SCOTT                  スキーマ名
    TEST                  データを登録・更新しようとしたテーブル名
    8                  データブロック数
    USERS                  テーブルが格納されている表領域

ORA-01653の一般的な発生要因と対処

ORA-01653の発生要因は、表セグメントを格納している表領域に、拡張分に対応した空きがないことです。 このため、以下のいずれかの対処を行って、表領域のサイズを手動で拡張するか、または、自動での拡張を可能にします。
  • データファイルを追加して表領域のサイズを拡張する
  • データファイルを大きなサイズにリサイズし、表領域のサイズを拡張する
  • データファイル自動拡張設定を有効化して、自動での拡張を可能にする
データファイルの追加

以下のコマンドを実行して、データファイルを追加して表領域のサイズを拡張します。


ALTER TABLESPACE <表領域名> ADD DATAFILE '<データファイルのパス>' SIZE <サイズ>;

データファイルのリサイズ

以下のコマンドを実行して、データファイルのサイズを拡張して、表領域のサイズを拡張します。


alter database datafile '<データファイルのパス>' resize <サイズ>;

データファイル自動拡張設定を有効化

以下のコマンドを実行して、データファイルの自動拡張設定を有効化して、表領域の空き領域が不足した場合に、自動的にデータファイルが拡張できるようにします。

ALTER DATABASE DATAFILE '<データファイルのパス>' AUTOEXTEND ON;

ORA-01653に関するFAQ

ORA-01653発生時、ディスク領域不足で上記対処方法が不可能な場合は、どうすればよいのでしょうか?

ディスク領域が不足している場合、データファイルの追加・サイズ拡張という対処法がとれません。何らかの方法で空き領域を増やす必要があります。テーブルの不要データをTRUNCATEすることで、空き領域を増やすことが可能です。ただし、TRUNCATE処理はROLL BACKできませんので、作業前に十分な確認が必要になります。または、オンライン・セグメント縮小(Shrink Space)機能を使って、フラグメンテーションを解消し使用領域を縮小させることもできます。

キーワード

ORA-01653 ORA-01653 unable to extend table テーブル エクステント セグメント 自動拡張

  • 1つ古い記事

このページの上部へ

​ ​