在ORACLE的机制中,表空间的重建涉及到online和offline的操作,重建TEMP表空间的基本思路就是
创建一个新的表空间和数据文件,替换掉系统默认的表空间TEMPSEG
重建完毕后再切换回来,实现代码如下:
#创建表空间temp1用于暂时的替代使用
create temporary tablespace temp1 tempfile 'I:\ORACLE\ORADATA\OPERA\TEMPSEG02.DBF' size 512m reuse autoextend on NEXT 104857600 MAXSIZE 1900M;
#将系统的默认表空间设置为temp1
alter database default temporary tablespace temp1;
#删除系统默认表空间TEMPSEG,同时删除数据文件
drop tablespace TEMPSEG including contents and datafiles;
#重新创建TEMPSEG表空间以及数据文件
create temporary tablespace TEMPSEG TEMPFILE 'I:\ORACLE\ORADATA\OPERA\TEMPSEG01.DBF'
SIZE 1024M REUSE AUTOEXTEND ON NEXT 104857600 MAXSIZE 1900M;
#将表空间切换回默认的TEMPSEG
alter database default temporary tablespace TEMPSEG ;
#删除掉第一步创建的临时表空间
drop tablespace temp1 including contents and datafiles;
#如需要添加表空间使用以下指令
ALTER TABLESPACE TEMPSEG ADD TEMPFILE 'I:\ORACLE\ORADATA\OPERA\TEMPSEG01.DBF'
SIZE 1024M REUSE AUTOEXTEND ON NEXT 104857600 MAXSIZE 1900M;