人生100年時代わくわくワークアズライフ

自分のアタマで考えて働きたい。生きたい。さらには誰かに少しでも貢献したい。

OracleDB表領域の拡張コマンド(TEMP表領域の場合も追加)

こんにちは。人生100年時代”わくわく”ライフプランニングコーチのアフロ(@afroriansym567)です。

 

ITシステム導入コンサルタントとして、Oracle Databaseと関わりございますので、備忘の為、書いておきます。

 

 

https://d1f5hsy4d47upe.cloudfront.net/ba/ba65a0bcf13fcf622338c377de48e925_t.jpeg

 

表領域拡張手順

Oracleをデータベースに利用しているシステム運用をしていて、「ORA-01653: 表XXXを拡張できません」というエラーに出会ったことはありますでしょうか。

 

その場合は、表領域不足のエラーですので、対象となるDBファイルの容量を拡張する必要があります。

 

1.データファイル一覧と配置場所を確認する

 

system権限でDB接続したのち、表領域のDBFファイルの名称と場所一覧を確認するSQLコマンド

 

  • select FILE_NAME from dba_data_files  where TABLESPACE_NAME = 'tablespace_name';
    ⇒ 実行結果:   D:/oradata/TESTDB/datafile/TESTDB01.DBF
                                D:/oradata/TESTDB/datafile/TESTDB02.DBF
            ・
            ・
            ・

 

2.表領域の拡張コマンド

 

拡張コマンド例(※TESTDB02表領域を1000Mにするコマンド)

 

  • ALTER DATABASE DATAFILE 'D:/oradata/TESTDB/datafile/TESTDB02.DBF' RESIZE 1000M; 

 

TEMP表領域の拡張コマンドは異なるので注意

ERPパッケージシステムなど、何がしかのソフトウェアを運用しているとします。

 

その場合、稀に普段行っているシステム処理がエラーとなる事象が発生することがあります。

 

エラーの内容を見ると、「ORA-01652: 一時セグメントを拡張できません」という記述が見られる場合は、TEMP表領域を拡張するコマンドで解決する可能性が高いです。

 

1.TEMP表領域のDBFファイルを確認


system権限でDB接続したのち、TEMP表領域のDBFファイルの場所と名称を確認するSQLコマンド

 

  • select NAME,BYTES,status from v$tempfile;
    ⇒ 実行結果: D:/oradata/TESTDB/datafile/TEMP.DBF

 

2.TEMP表領域の拡張コマンド

 

拡張コマンド例(※TEMP表領域を3000Mにするコマンド)

 

  • ALTER DATABASE TEMPFILE 'D:/oradata/TESTDB/datafile/TEMP.DBF' RESIZE 3000M;


他のDBFファイル拡張のように、「ALTER DATABASE DATAFILE」ではない点に注意です。

 

表領域自動拡張のコマンド

TESTDB02.DBFの表領域がいっぱいになった場合、自動で100Mを拡張するコマンドは以下の通りです。尚、最大サイズは無制限とした場合の例です。

  • ALTER DATABASE DATAFILE 'D:/oradata/TESTDB/datafile/TESTDB02.DBF' RESIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED; 

 ソフトウェアによっては、DBFファイルの上限を決めて、上限を超えれば2ファイル目を作成するなど管理している例はありますので、管理方法に則って対応する必要はあります。

 

尚、TEMP表領域の自動拡張の場合は、例によってALTER DATABASE DATAFILE ではなく、TEMPFILEであることに注意です。

 

  • ALTER DATABASE TEMPFILE 'D:/oradata/TESTDB/datafile/TEMP.DBF' RESIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;  

 

自動拡張とした場合の注意点として、DBをインストールしたディスクの容量はウォッチするべきではあります。

 

言い換えると、ディスク容量の何パーセントかになればアラートを出すなど仕組みづくりは必須だと思われます。

 

もしそうしなければ、ディスク容量を追加するのか、サーバー自体をリプレースするのかなどの対策が事前に検討できなくなってしまうからです。

 

最近だとクラウド環境上で、ディスク容量の拡大などは昔ほど大変ではなくなったので技術的には大した話ではないかもしれません。

 

また、ディスク容量もデフォルトで膨大なボリュームになっていることも考えると懸念するほどのことでもないと感じられるのも無理はありません。

 

しかし、お金がかかることは稟議など時間がかかるプロセスを経ないといけないことが多いので仕組みづくりを検討することはベターかと思います。

 

アラート出す仕組みなどは別途記事とします。

 

 

以上。