如何在线修改ORACLE 临时文件
目录
1.现场环境
2.问题描述
3.解决办法
4.总结一下
1.现场环境
ORACLE 11G 11.2.0.4+LINUX 7.9
2.问题描述
前面在线处理了数据文件,这个,又遇到临时文件也给人加到WINDOWS路径了
如下图:

一看,也是在WINDOWS上增加的临时文件
3.解决办法
既然前面可以在线使用RMAN直接修改数据文件,同样的方法,是否可以借用的?
同样的办法,数据文件能用,临时文件,可不行。
RMAN不能备份临时文件,也就用不到SWITCH TEMPFILE to copy这种命令。
那怎么办呢
其实,临时文件,可以有另外一种办法:
直接加一个文件,把原来的文件删除即可。
如下:
先加一个临时文件:
alter tablespace temp add tempfile ...

然后,直接删除前面的.

好了吗
查看一下:

结果原来这个文件还在。
什么情况。
看报警文件,也没有报什么错。
看看是否这个临时文件有人使用。

看来确实有人在用,虽然大小不大
立即杀掉这几个会话,
再删除,
但这个临时文件还在,
结果发现TEMP又有会话再用。
怎么办?
再建立一个临时表空间,并修改用户的默认临时表空间到新的临时表空间去。
create temporary tablespace tsp_temp datafile '/data/orcl/tsp_temp01.dbf' size 10m;
修改用户的默认临时表空间到这个新的临时表空间:
select 'alter user ' || username || ' temporary tablespace temp;' as alt FROM DBA_USERS WHERE TEMPORARY_TABLESPACE='TSP_TEMP';
之后,再去杀这几个会话,
再去删除对应的临时文件:

去确认一下:

那个文件已经被删除了。
当然,可以把用户的默认临时表空间修改回来。
select 'alter user ' || username || ' temporary tablespace temp;' as alt FROM DBA_USERS WHERE TEMPORARY_TABLESPACE='TSP_TEMP';

删除过度临时表空间
drop temporary tsp_temp;
到此,问题解决。
4.总结一下
在线修改临时文件路径,就是增加新的临时文件,删除原来的临时文件,如果这个时候有会话使用,需要借一个新的临时文件过度一下。
