開発環境のDBサーバーの容量が100%になってしまいました。
過去に数度HDD領域を拡張してもすぐに100%になるので原因を調べることにしました。
すると、ORACLEの一時表が32GB+11GBとかなり肥大化している……
なので一時表を削除することにしました。
一時表の削除
でORACLEのシステム情報から一時表の格納先を削除します。
alter database tempfile '【ファイル格納場所】/temp01.dbf' drop;
SQL実行しても物理的データは残っているので、物理的にtemp01.dbfを削除します。
ローカル管理の再作成
次にローカル管理を調べます。
select tablespace_name,extent_management from dba_tablespaces;
extent_management の値がLOCALかそれ以外によって再作成方法が異なります。
extent_managementがLOCALの再作成
ALTER TABLESPACE TEMP
ADD tempfile '【ファイル格納場所】/temp01.dbf'
SIZE 100M
extent_managementの値がLOCAL以外の再作成
ALTER TABLESPACE my_tablespace
ADD DATAFILE '【ファイル格納場所】/temp01.dbf'
SIZE 10M
REUSE
AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED;
で再作成します。
これでとりあえず動くので大丈夫かな…?