ORA-01630 一時セグメントで最大エクステント
ORA-01630 一時セグメントで最大エクステント
0.更新履歴
1.エラー内容
SVRMGR> desc TEST_TBL;
列名 NULL? 型
------------------ -------- ----
TEST_ID NOT NULL VARCHAR2(256)
FILED01 DATE
SVRMGR> create index CHANGE_TEST_ID on TEST_TBL(TEST_ID);
create index CHANGE_TEST_ID on TEST_TBL(TEST_ID)
*
ORA-01630: 一時セグメントで最大エクステント:110に達しました(表領域USR)。
SVRMGR>
|
2.原因
- インデックスを作ろうとしたが,そのインデックスを格納するUSRという表領域(テーブルスペース)に問題がある。
- サイズが足りなくなったら,110回まで拡張できるようになっていたが,すでに110回まで拡張してしまったので,エラーとなっている.
- これは,次のSQL文で確認できた.
SVRMGR> select INITIAL_EXTENT,NEXT_EXTENT,MIN_EXTENTS,MAX_EXTENTS,PCT_INCREASE
2> from dba_tablespaces
3> where tablespace_name = 'USR';
INITIAL_EX NEXT_EXTEN MIN_EXTENT MAX_EXTENT PCT_INCREA
---------- ---------- ---------- ---------- ----------
65536 131072 1 110 0
1行選択されました。
SVRMGR>
|
3.対処
- まず,何度も拡張されているのに容量不足ということは,増え方が足りないので,
INITIAL_EXTENTとNEXT_EXTENTの値を増やしてみる.
SVRMGR> alter tablespace USR default storage(initial 1M NEXT 10M);
文が処理されました。
SVRMGR>
|
SVRMGR> alter tablespace chadt01 default storage(MAXEXTENTS 250);
文が処理されました。
SVRMGR>
|
SVRMGR> select INITIAL_EXTENT,NEXT_EXTENT,MIN_EXTENTS,MAX_EXTENTS,PCT_INCREASE
2> from dba_tablespaces
3> where tablespace_name = 'USR';
INITIAL_EX NEXT_EXTEN MIN_EXTENT MAX_EXTENT PCT_INCREA
---------- ---------- ---------- ---------- ----------
1048576 10485760 1 250 0
1行選択されました。
SVRMGR>
|
4.その他
なお,増やせばいいというものではなく,ディスク上の他のテーブルスペースと物理ディスクの空き領域等を考慮してあげなければいけない.