Oracle暫存資料表空間過大解決方案

來源:互聯網
上載者:User

Oracle暫存資料表空間過大解決方案

解決Oracle暫存資料表空間過大有兩種方法,方法一增加暫存資料表空間的大小,方法二重建暫存資料表空間,解決暫存資料表空間過大的問題。

方案一:增加暫存資料表空間的大小
--1.暫存資料表空間的使用方式
SELECT D.tablespace_name,
      SPACE "SUM_SPACE(M)",     
      blocks "SUM_BLOCKS",     
      used_space "USED_SPACE(M)",     
      Round(Nvl(used_space, 0) / SPACE * 100, 2) "USED_RATE(%)",     
      SPACE - used_space "FREE_SPACE(M)"
  FROM (SELECT tablespace_name,             
              Round(SUM(bytes) / (1024 * 1024), 2) SPACE,             
              SUM(blocks) BLOCKS       
          FROM dba_temp_files       
        GROUP BY tablespace_name) D,     
      (SELECT tablespace,             
              Round(SUM(blocks * 8192) / (1024 * 1024), 2) USED_SPACE       
          FROM v$sort_usage       
        GROUP BY tablespace) F
 WHERE D.tablespace_name = F.tablespace(+)     
  AND D.tablespace_name like 'TEMP%';

--查看暫存資料表空間的總大小和最大擴充大小(能看到資料檔案)
select file_name,
      tablespace_name,
      bytes / 1024 / 1024 MB,
      autoextensible,
      maxbytes / 1024 / 1024 MAX_MB
  from dba_temp_files;

--增加暫存資料表空間的大小
alter tablespace temp1 add tempfile '/data/prod/proddata/temp013.dbf' size 4G;
alter tablespace temp2 add tempfile '/data/prod/proddata/temp024.dbf' size 4G;

--方案二:重建暫存資料表空間,解決暫存資料表空間過大的問題。

--0.查看目前預設的暫存資料表空間
select *
  from database_properties
 where property_name = 'DEFAULT_TEMP_TABLESPACE';

--1.建立中轉暫存資料表空間
create temporary tablespace temp3 tempfile '/data/prod/proddata/temp31.dbf' size 4G tablespace group temp;
create temporary tablespace temp4 tempfile '/data/prod/proddata/temp41.dbf' size 4G tablespace group temp;

--2.刪除原暫存資料表空間組中的暫存資料表空間
--2.1從預設暫存資料表空間組temp中移除temp1和temp2;
ALTER TABLESPACE temp1 TABLESPACE GROUP '';
ALTER TABLESPACE temp2 TABLESPACE GROUP '';

--2.2刪除暫存資料表空間temp1和temp2
drop tablespace temp1 including contents and datafiles;
drop tablespace temp2 including contents and datafiles;

--2.3如果刪除資料表空間的時候,hang住的話,可以使用下列語句,先把運行在temp暫存資料表空間的sql語句kill掉,這樣的sql語句多為排序的語句
Select se.username,
      se.sid,
      se.serial#,
      su.extents,
      su.blocks * to_number(rtrim(p.value)) as Space,
      tablespace,
      segtype,
      sql_text
  from v$sort_usage su, v$parameter p, v$session se, v$sql s
 where p.name = 'db_block_size'
  and su.session_addr = se.saddr
  and s.hash_value = su.sqlhash
  and s.address = su.sqladdr
 order by se.username, se.sid;

--2.4 kill相關進程
alter system kill session '584,23181';
alter system kill session '196,64972';
alter system kill session '262,19832';
alter system kill session '324,40273';
alter system kill session '326,38967';
alter system kill session '1266,54596';
 
or
--重啟DB
--關閉應用-->關閉監聽-->shutdown immediate
--startup-->啟動監聽-->執行以下操作後開啟應用

--2.5 建立暫存資料表空間,並加入暫存資料表空間組temp
create temporary tablespace temp1 tempfile '/data/prod/proddata/temp11.dbf' size 4G tablespace group temp;
create temporary tablespace temp2 tempfile '/data/prod/proddata/temp21.dbf' size 4G tablespace group temp;

--2.6 給暫存資料表空間組temp的成員temp1,temp2,temp3,temp4 各增加一個成員。
alter tablespace temp1 add tempfile '/data/prod/proddata/temp12.dbf' size 4G;
alter tablespace temp2 add tempfile '/data/prod/proddata/temp22.dbf' size 4G;
alter tablespace temp3 add tempfile '/data/prod/proddata/temp32.dbf' size 4G;
alter tablespace temp4 add tempfile '/data/prod/proddata/temp42.dbf' size 4G;

--2.7查看暫存資料表空間組temp
select * from dba_tablespace_groups;

--3 暫存資料表空間組仍然使用99.98%,
--3.1為每個暫存資料表空間添加4G空間
alter tablespace temp1 add tempfile '/data/prod/proddata/temp13.dbf' size 4G;
alter tablespace temp2 add tempfile '/data/prod/proddata/temp23.dbf' size 4G;
alter tablespace temp3 add tempfile '/data/prod/proddata/temp33.dbf' size 4G;
alter tablespace temp4 add tempfile '/data/prod/proddata/temp43.dbf' size 4G;

https://www.bkjia.com/topicnews.aspx?tid=12

本文永久更新連結地址:https://www.bkjia.com/Linux/2018-03/151245.htm

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.