サーバー Oracle 備忘録 SQL

【ORACLE】一時表入れ替えメモ

2013年2月22日

開発環境の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;

で再作成します。

これでとりあえず動くので大丈夫かな…?

-サーバー, Oracle, 備忘録, SQL
-, , ,