有时候一不小心,忘记给temp空间设置上限,很容易把临时表空间撑爆,怎么样替换临时表空间呢?
如下脚本。
--替换默认临时表空间
select PROPERTY_NAME,PROPERTY_VALUE from DATABASE_PROPERTIES where PROPERTY_NAME='DEFAULT_TEMP_TABLESPACE';
查看下数据库默认的临时表空间是什么。
--创建中转临时表空间
CREATE TEMPORARY TABLESPACE TEMP_SWITCH TEMPFILE '/opt/oracle/oradata/EIN1/TEMP_SWITCH01.dbf' SIZE 32M AUTOEXTEND ON NEXT 32M MAXSIZE 4096M ;
--切换默认表空间
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP_SWITCH;
--删除原来表空间
drop tablespace TEMP including contents and datafiles;
--重新创立原来的临时表空间
CREATE TEMPORARY TABLESPACE TEMP TEMPFILE '/opt/oracle/oradata/ein1/TEMP01.dbf' SIZE 32M AUTOEXTEND ON NEXT 32M MAXSIZE 4096M ;
--切换回原来的默认表空间
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP;
--删除中转临时表空间
drop tablespace TEMP_SWITCH including contents and datafiles;
--查看现在的情况
select PROPERTY_NAME,PROPERTY_VALUE from DATABASE_PROPERTIES where PROPERTY_NAME='DEFAULT_TEMP_TABLESPACE';
注意:有人可能会觉得为什么还要切换回去,因为数据库还有一个参数,是给每个用户配置一个临时表空间,如果更换了临时表空间,会有些麻烦,所以干脆别更换临时表空间的名字。
转载于:https://blog.51cto.com/gundam/1059197