临时表空间移动并清理

临时表空间迁移:
https://www.cnblogs.com/liang545621/p/7528936.html
将用户的表空间都变成新的
 
临时表空间清理,表空间还是原来的
 
 
用下面语句可查看当前临时表空间使用空间大小与正在占用临时表空间的sql语句:

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 表示无限的表空间)