重庆思庄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