ITスキル

【OracleXE】ORA-01653エラー。

夜間バッチでORA-01653

OracleXEで構築したデータベースで、株価の分析をしたりなどして遊んでいたのですが
ある日のこと、夜間バッチがOracleエラーを吐いて落ちていました。

エラーコードはORA-01653。バッチログのメッセージには以下のように書かれていました。

ORA-01653:unable to extend table XXX by 1024 in tablespace YYY

日本語でいうと

ORA-01653:表XXXを拡張できません(1024分、表領域YYY)

なんらかの理由により表領域YYYの拡張に失敗したときに出るエラーです。
エラーが出たのはSYSTEM表領域でした、サイズ600MBのうち599MBが使用済みとなっていました。

エラーの原因となったのは通常のユーザテーブルへのデータINASERT。
まあ一般ユーザにSYSTEM表領域を割り当てるのはいかがなものかという感じですが、
個人的なデータベースですので。

で、600MBのデータファイルというのがSYSTEM表領域の初期設定なのでしょうね。
とりあえずディスクの容量的にはまったく問題なかったので、SYSTEMユーザでSQL plusを起動して

ALTER DATABASE DATAFILE '所在/system.dbf' RESIZE 2G

として、2ギガに拡張しておきました。これでひとまず大丈夫かな?
データファイルの所在はDBA_DATA_FILESから確認できます。

SELECT FILE_NAME||'('||TABLESPACE_NAME||')' AS "データファイル"
,ROUND(BYTES/1024/1024) AS SIZE_MB
,ROUND(BYTES/1024/1024/1024) AS SIZE_GB
FROM DBA_DATA_FILES

データファイル SIZE_MB SIZE_GB
/oracle/oradata/XE/users.dbf(USERS) 100 0
/oracle/oradata/XE/sysaux.dbf(SYSAUX) 760 1
/oracle/oradata/XE/undotbs1.dbf(UNDOTBS1) 900 1
/oracle/oradata/XE/system.dbf(SYSTEM) 2048 2

仕事で出ると結構ビビる

遊びのDBだったので大丈夫でしたが、業務で見るとけっこう焦るエラーです。
幸いあまり出くわしたことがない。表領域に関するエラーだと、「一次表領域のエラー」が経験的には多かったですかね。

COMMENT

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください