重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛

标题: oracle 11g在线修改临时表空间的文件路径 [打印本页]

作者: 郑全    时间: 2025-11-15 15:29
标题: oracle 11g在线修改临时表空间的文件路径
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.总结一下
   在线修改临时文件路径,就是增加新的临时文件,删除原来的临时文件,如果这个时候有会话使用,需要借一个新的临时文件过度一下。







欢迎光临 重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2