临时表空间移动并清理
Posted penny-pan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了临时表空间移动并清理相关的知识,希望对你有一定的参考价值。
select sess.SID, segtype, blocks * 8 / 1000 "MB", sql_text
from v$sort_usage sort, v$session sess, v$sql sql
where sort.SESSION_ADDR = sess.SADDR
and sql.ADDRESS = sess.SQL_ADDRESS
order by blocks desc;
下面语句查询临时表空间的空闲程度:
select ‘the ‘ || name || ‘ temp tablespaces ‘ || tablespace_name ||
‘ idle ‘ ||
round(100 - (s.tot_used_blocks / s.total_blocks) * 100, 3) ||
‘% at ‘ || to_char(sysdate, ‘yyyymmddhh24miss‘)
from (select d.tablespace_name tablespace_name,
nvl(sum(used_blocks), 0) tot_used_blocks,
sum(blocks) total_blocks
from v$sort_segment v, dba_temp_files d
where d.tablespace_name = v.tablespace_name(+)
group by d.tablespace_name) s,
v$database;
chown -R oracle:oinstall /data/oracle
SELECT PROPERTY_NAME, PROPERTY_VALUE FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME=‘DEFAULT_TEMP_TABLESPACE‘; 查看默认的临时表空间temp
select TABLESPACE_NAME,AUTOEXTENSIBLE,MAXBYTES/1024/1024 "maxsize(MB)",FILE_NAME from dba_temp_files; 查看临时表空间文件
create temporary tablespace TEMP2 TEMPFILE ‘/data/oradata/orcl/temp_01.dbf‘ SIZE 1G REUSE AUTOEXTEND ON NEXT 512M MAXSIZE UNLIMITED; --创建中转临时表空间
alter database default temporary tablespace TEMP2; --改变缺省临时表空间 为刚刚创建的新临时表空间temp2
SELECT PROPERTY_NAME, PROPERTY_VALUE FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME=‘DEFAULT_TEMP_TABLESPACE‘; 再次查看默认的临时表空间
SELECT USERNAME, TEMPORARY_TABLESPACE FROM DBA_USERS; 查看用户使用的临时表空间
drop tablespace TEMP including contents and datafiles;--删除原来临时表空间包括物理文件
删除TEMP是会卡住,等两天再删除
(注:create temporary tablespace TEMP2 TEMPFILE ‘/temp_01.dbf‘ SIZE 1G REUSE AUTOEXTEND ON NEXT 512M MAXSIZE UNLIMITED;
size 1G是文件的大小,
REUSE表示文件是否被重用.
AUTOEXTEND ON NEXT 512M 设置表空间自动扩展,每次512M
MAXSIZE UNLIMITED 表示无限的表空间)
以上是关于临时表空间移动并清理的主要内容,如果未能解决你的问题,请参考以下文章