如何清理oracle 10g服务器中的临时表空间,请提供linux平台的步骤

Ana*_*dav -1 oracle oracle10g

我想清理Temp其具有数据文件表空间 temp01.dbftemp02.dbf,所以请给我建议,我应该放下 temp01.dbf文件或者删除临时表空间.Temp表空间的数据文件如下

33G     temp01.dbf
1.5G    temp02.dbf
Run Code Online (Sandbox Code Playgroud)

anu*_*pks 8

  1. 创建临时表空间温度

       CREATE TEMPORARY TABLESPACE TEMP2 TEMPFILE  ‘/u01/app/oradata/temp01.dbf? SIZE 2000M ; 
    
    Run Code Online (Sandbox Code Playgroud)
  2. 移动默认数据库临时表空间

       ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp2;
    
    Run Code Online (Sandbox Code Playgroud)
  3. 确保没有会话正在使用您的Old Temp表空间

       a.  Find Session Number from V$SORT_USAGE: 
      SELECT USERNAME, SESSION_NUM, SESSION_ADDR FROM V$SORT_USAGE; 
    
       b.  Find Session ID from V$SESSION:
    
      If the resultset contains any rows then your next step will be to find the SID from the V$SESSION view. You can find session id by using SESSION_NUM or SESSION_ADDR from previous resultset.
    
      SELECT SID, SERIAL#, STATUS FROM V$SESSION WHERE SERIAL#=SESSION_NUM;
      OR
      SELECT SID, SERIAL#, STATUS FROM V$SESSION WHERE SADDR=SESSION_ADDR; 
    
       c.  Kill Session:
    
       Now kill the session with IMMEDIATE.
    
        ALTER SYSTEM KILL 'SID,SERIAL#' IMMEDIATE; 
    
    Run Code Online (Sandbox Code Playgroud)
  4. 删除临时表空间

       DROP TABLESPACE temp INCLUDING CONTENTS AND DATAFILES;
    
    Run Code Online (Sandbox Code Playgroud)
  5. 重新创建表空间温度

       CREATE TEMPORARY TABLESPACE TEMP TEMPFILE '/u01/app/temp/temp01.dbf? SIZE 2000M;
    
    Run Code Online (Sandbox Code Playgroud)

6将Tablespace Temp移回新临时表空间

       ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp;
Run Code Online (Sandbox Code Playgroud)
  1. 删除临时表空间temp

      DROP TABLESPACE temp2 INCLUDING CONTENTS AND DATAFILES;
    
    Run Code Online (Sandbox Code Playgroud)