経緯
一時表領域の肥大化により、Oracleのディスク領域が圧迫されていた際に、一時表領域を縮小した方法です。
筆者の環境
- Azure Virtual Machines
- Oracle Linux Server release 7.4
- Oracle Database 12c Standard Edition Release 12.2.0.1.0
ファイルサイズの確認
一時表領域のファイルサイズを確認します。PDBを利用している前提で、PDB名をPDB1とします。
ls -la /u01/app/oracle/oradata/cdb1/temp01.dbf
ls -la /u01/app/oracle/oradata/cdb1/pdb1/temp01.dbf
一時表領域の縮小
CDB側の一時表領域を縮小します。
$ sqlplus / as sysdba
SQL> select * from dba_temp_free_space;
SQL> alter tablespace TEMP shrink space;
SQL> select * from dba_temp_free_space;
PDB側の一時表領域を縮小します。
$ sqlplus / as sysdba
SQL> alter session set container=PDB1;
SQL> select * from dba_temp_free_space;
SQL> alter tablespace TEMP shrink space;
SQL> select * from dba_temp_free_space;
以上で、一時表領域のファイルサイズが縮小されました。