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

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 389|回复: 0
打印 上一主题 下一主题

[原创] oracle 11g在线修改临时表空间的文件路径

[复制链接]
跳转到指定楼层
楼主
发表于 2025-11-15 15:29:47 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
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.总结一下
   在线修改临时文件路径,就是增加新的临时文件,删除原来的临时文件,如果这个时候有会话使用,需要借一个新的临时文件过度一下。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2026-4-17 20:58 , Processed in 0.207359 second(s), 22 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表