Oracle暫存資料表空間的管理與受損恢複

來源:互聯網
上載者:User

Oracle 暫存資料表空間是Oracle資料庫的重要組成部分,儘管該部分並沒有cont體繫結構上得以展現,但其重要地位也是不容忽視的。尤其是對於大型的頻繁操作,如建立索引,排序等等都需要在暫存資料表空間完成來減少記憶體的開銷。當然對於查詢效能要求較高的應儘可能的避免在磁碟上完成這些操作。本文主要描述的是暫存資料表空間的管理與受損恢複。

一、暫存資料表空間的特性與注意事項

1.特性
使用者儲存臨時資料的資料表空間
臨時資料通常只在一個資料庫會話期間記憶體在的資料,分為兩種形式,排序資料和全域暫存資料表
臨時資料不會被寫入儲存永久對象的普通資料表空間內,而是儲存在暫存資料表空間的臨時段中
暫存資料表空間臨時性導致不需要備份該類型的資料表空間,RMAN也不支援對暫存資料表空間的備份
對於臨時資料的處理,不會產生重做,也不會產生撤銷資料
暫存資料表空間的資料檔案不能置為唯讀、不能重新命名
監時資料表空間的資料檔案的日誌方式總是NOLOGGING
使用暫存資料表空間的主要操作
CREATE INDEX,ALTER INDEX ...REBUILD,ORDER BY,GROUP BY,DISTINCT,UNION,INTERSECT,MINUS,SORT-MERGER,JOIN,ANALYZE

2.暫存資料表空間使用的注意事項
a. 每個使用者都有一個預設的暫存資料表空間,對於暫存資料表空間使用較高的系統,建議將暫存資料表空間資料檔案分布到不同的磁碟
b. 對於大型操作頻繁,(大型查詢,大型分類查詢,大型統計分析等),應指定單獨的暫存資料表空間,以方便管理
c. 分配使用者單獨暫存資料表空間,一般是針對大型產品資料庫,OLTP資料庫,資料庫倉庫
d. 對於小型產品不需要單獨制定暫存資料表空間,使用預設暫存資料表空間
e. 對於暫存資料表空間建議關閉自動擴充功能,避免過度擴充所致的空間壓力
關於暫存資料表空間的建立與管理請參考:Oracle 資料表空間與資料檔案

二、暫存資料表空間的管理
1. 查看預設的暫存資料表空間

SQL> select property_name,property_value from database_properties     
  2  where property_name like 'DEFAULT%';                             
                                                                       
PROPERTY_NAME                  PROPERTY_VALUE                         
------------------------------ --------------------------------       
DEFAULT_TEMP_TABLESPACE        TEMP                                   
DEFAULT_PERMANENT_TABLESPACE  USERS                                   
DEFAULT_TBS_TYPE              SMALLFILE 

2.查看暫存資料表空間的大小及位置

SQL> select s.name tbsname,t.name,(t.bytes/1024/1024) bytes,status                     
  2  from v$tablespace s,v$tempfile t                                                 
  3  where s.ts# = t.ts#;                                                             
                                                                                       
TBSNAME    NAME                                              BYTES  STATUS           
---------- --------------------------------------------- ----------  -------         
TEMP      /u01/app/oracle/oradata/orcl/temp01.dbf              30  ONLINE           
                                                                                       
SQL> select tablespace_name,file_name,bytes/1024/1024 Size_MB from dba_temp_files;     
                                                                                       
TABLESPACE FILE_NAME                                        SIZE_MB                   
---------- --------------------------------------------- ----------                   
TEMP      /u01/app/oracle/oradata/orcl/temp01.dbf              30                   
                                                                                       
SQL> select tablespace_name,logging,allocation_type                                   
  2  from dba_tablespaces where tablespace_name='TEMP';                               
                                                                                       
TABLESPACE LOGGING  ALLOCATIO                                                         
---------- --------- ---------                                                         
TEMP      NOLOGGING UNIFORM                                                           

3. 暫存資料表檔案大小和已使用空間

SELECT t1."Tablespace" "Tablespace",                                                       
      t1."Total (G)" "Total (G)",                                                         
      nvl(t2."Used (G)", 0) "Used(G)",                                                   
      t1."Total (G)" - nvl(t2."Used (G)", 0) "Free (G)"                                   
FROM  (SELECT tablespace_name "Tablespace",                                               
              to_char((SUM(bytes / 1024 / 1024 / 1024)), '99,999,990.900') "Total (G)"   
        FROM  dba_temp_files                                                             
        GROUP  BY tablespace_name                                                         
        UNION                                                                             
        SELECT tablespace_name "Tablespace",                                               
              to_char((SUM(bytes / 1024 / 1024 / 1024)), '99,999,990.900') "Total (G)"   
        FROM  dba_data_files                                                             
        WHERE  tablespace_name LIKE 'TEMP%'                                               
        GROUP  BY tablespace_name) t1,                                                     
      (SELECT tablespace, round(SUM(blocks) * 8 / 1024 /1024) "Used (G)"                       
        FROM  v$sort_usage                                                               
        GROUP  BY tablespace) t2                                                           
WHERE  t1."Tablespace" = t2.tablespace(+);                                                 
                                                                                           
                                                                                           
Tablespace                    Total (G)          Used(G)  Free (G)                       
------------------------------ --------------- ---------- ----------                       
GOEX_TEMP                              31.999          1    30.999                       
FIX_TEMP                                0.098          0      .098                       
TEMP                                    0.195          0      .195

  • 1
  • 2
  • 3
  • 下一頁

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.