- TOP
- 技術情報
- Oracle DB Tips
- ORA-01653: 表???.???を拡張できません(???分、表領域???)。
KNOWLEDGE
コーソルの技術情報
KNOWLEDGE検索
コーソルでは経験豊かなエンジニアが、Oracle Databaseに関するお役立ち情報を発信しています。
データベースのチューニングや設定にお役立ていただけます。
コーソルの技術情報
KNOWLEDGE検索
コーソルでは経験豊かなエンジニアが、Oracle Databaseに関するお役立ち情報を発信しています。
データベースのチューニングや設定にお役立ていただけます。
Oracle DB Tips
テーブルへのデータ追加・更新により、データを格納している表セグメントの空き領域が不足した場合、表セグメントは拡張されます。表セグメントを格納している表領域に、拡張分に対応した空きがない場合、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の発生要因は、表セグメントを格納している表領域に、拡張分に対応した空きがないことです。
このため、以下のいずれかの対処を行って、表領域のサイズを手動で拡張するか、または、自動での拡張を可能にします。
以下のコマンドを実行して、データファイルを追加して表領域のサイズを拡張します。
ALTER TABLESPACE ADD DATAFILE '' SIZE ;
以下のコマンドを実行して、データファイルのサイズを拡張して、表領域のサイズを拡張します。
alter database datafile '' resize ;
以下のコマンドを実行して、データファイルの自動拡張設定を有効化して、表領域の空き領域が不足した場合に、自動的にデータファイルが拡張できるようにします。
ALTER DATABASE DATAFILE '' AUTOEXTEND ON;
ディスク領域が不足している場合、データファイルの追加・サイズ拡張という対処法がとれません。何らかの方法で空き領域を増やす必要があります。テーブルの不要データをTRUNCATEすることで、空き領域を増やすことが可能です。ただし、TRUNCATE処理はROLL BACKできませんので、作業前に十分な確認が必要になります。または、オンライン・セグメント縮小(Shrink Space)機能を使って、フラグメンテーションを解消し使用領域を縮小させることもできます。
ORA-01653 ORA-01653 unable to extend table テーブル エクステント セグメント 自動拡張