ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Oracle 数据库 临时表空间文件(TEMP01.DBF)太大, 替换的方式缩小

2022-06-29 19:31:53  阅读:184  来源: 互联网

标签:temp -- DBF tablespace TEMP01 sql Oracle alter se


建议在数据库于未使用时操作

 1 --查看临时表空间和其包含的文件
 2 select d.file_name, d.file_id, d.tablespace_name, d.bytes from dba_temp_files d;
 3 
 4 --创建新的临时表空间
 5 create temporary tablespace temp02 tempfile 'C:\ORACLE\ORADATA\ORACLE\temp03.dbf' size 512M;
 6 --把新建的临时表空间却换成数据库的默认临时表空间
 7 alter database default temporary tablespace temp02;
 8 --确认目前数据库的默认临时表空间
 9 select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';
10 
11 --在删除temp临时表空间之前,先把运行在temp临时表空间的sql语句kill掉,不然旧文件可能还会在使用中,或者在空载状态操作
12 --这样的sql语句多为排序的语句
13 select a.username,a.sid,a.serial#,a.tablespace,a.sql_text,'alter system kill session '''||a.sid||','||a.serial#||''';' "alter kill" from(
14 select se.username,se.sid,se.serial#,su.tablespace,s.sql_text
15 from v$sort_usage su,v$session se,v$sql s
16 where su.session_addr=se.saddr and s.hash_value=su.sqlhash and s.address=su.sqladdr -- and tablespace='TEMP'
17 group by se.username,se.sid,se.serial#,su.tablespace,s.sql_text
18 ) a
19 
20 -- (假如某一条运行的sql语句的SID为524,serial#为778)
21 --alter system kill session '524,778';
22 
23 --替换掉原来的大文件,然后再改回默认临时空间
24 alter database tempfile 'C:\ORACLE\ORADATA\ORACLE\TEMP01.DBF' drop;
25 alter tablespace temp add tempfile 'C:\ORACLE\ORADATA\ORACLE\TEMP01.DBF' size 1024M reuse autoextend on next 100M;
26 alter database default temporary tablespace temp;
27 
28 ---在删掉 新建的临时空间和文件  也可以不用改回去,直接删掉旧的,但是磁盘上的文件可能还在且无法删除!!!
29 drop tablespace temp including contents and datafiles;

 PS: 我直接删除旧临时空间和文件

drop tablespace temp including contents and datafiles;

结果文件在磁盘上任何操作都提示无权限.....(也可能重启后就能删了?)

sql删掉的文件不一定会删掉磁盘上的文件!

标签:temp,--,DBF,tablespace,TEMP01,sql,Oracle,alter,se
来源: https://www.cnblogs.com/lzpong/p/16424668.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有