oracle結構-邏輯結構

來源:互聯網
上載者:User
邏輯結構oracle的邏輯結構包括資料表空間(tablespace),段(segment),資料區塊(data block)以及模式對象(schema)。
    oracle資料庫在邏輯上是由多個資料表空間組成的,資料表空間在物理上包含一個或多個資料檔案。而資料檔案大小是塊大小的整數倍;資料表空間中儲存的對象叫段,比如資料區段,索引段,和回退段。段由區組成,區是磁碟分配的最小單位。段的增大是通過增加區的個數來實現的。每個區的大小是資料區塊大小的整數倍,區的大小可以不相同;資料區塊是資料庫中最小的I/O單位,同時也是記憶體資料緩衝區的單位,及資料檔案儲存空間單位。塊的大小由參數DB_BLOCK_SIZE設定,其值應設定為作業系統塊大小的整數倍。

一、資料表空間
1.什麼是資料表空間?

    資料表空間是資料庫中最大的邏輯單位,每一個資料表空間由一個或多個資料檔案組成,一個資料檔案只能與一個資料表空間相聯絡。每一個資料庫都有一個SYSTEM資料表空間,該資料表空間是在資料庫建立或資料庫安裝時自動建立的,用於儲存系統的資料字典表,程式系統單元,過程函數,包和觸發器等,也可用於儲存使用者資料表,索引對象。
    資料表空間具有線上(online)和離線(offline)屬性,可以將除SYSTEM和RBS以外的其他作何資料表空間置為離線。
    查詢資料表空間的檔案資訊:SELECT * FROM DBA_DATA_FILES。查詢資料表空間的空閑空間資訊:SELECT * FROM DBA_FREE_SPACE。若資料表空間的剩餘空間不夠,可以重新設定資料檔案的大小:ALTER DATABASE DATAFILE 'filenamespec' RESIZE 500m。查詢資料庫中的資料表空間資訊:SELECT * FROM DBA_TABLESPACE。

2.資料表空間的特性
a.限制使用者可以使用的磁碟空間大小
SQL>ALTER USER user1 QUOTA 100M ON tablespace1
b.設定為離線、線上、唯讀、讀寫
SQL>ALTER TABLESPACE tbs1 ONLINE;
SQL>ALTER TABLESPACE tbs1 OFFLIKE;
SQL>ALTER TABLESPACE tbs1 READ ONLY;
SQL>ALTER TABLESPACE tbs1 READ WRITE;
  注意,在資料表空間被設定為READ ONLY或OFFLINE之後,該資料表空間資料檔案的同步資訊將不能改變,從而會造成不同步。在資料表空間置為READ WRITE或ONLINE之後,使用命令ALTER SYSTEM SWITCH LOGFILE強制執行多次日誌切換後,系統自動保持所有資料檔案的同步。
  不能將SYSTEM資料表空間置為READ ONLY或OFFLINE。如果undo空間中已經建立了回退段,且該回退段的狀態為ONLINE,則undo資料表空間不能設定為READ ONLY或OFFLINE。
c.備份與恢複資料表空間
  Database Backup時,可以只備份一個獨立的資料表空間。資料表空間備份可以線上執備份也可以離線冷備份。
d.最佳化I/O效能,應將資料表空間中的各資料檔案放在不同的磁碟以平衡I/O。

3.暫存資料表空間
  暫存資料表空間用於為使用者排序的ORDER BY語句使用。建立資料庫時可以指定資料庫的預設暫存資料表空間。在建立使用者的時候可以指定使用者的預設暫存資料表空間。
SQL>CREATE USER fey IDENTIFIED BY 12345 TEMPORARY TABLESPACE temp;
  在oracle8i中,如果建立使用者時未指出使用者的暫存資料表空間,系統使用SYSTEM資料表空間作為該使用者的暫存資料表空間。而在oracle10g中,如果建立使用者時未指出使用者的暫存資料表空間,系統使用TEMP資料表空間作為該使用者的暫存資料表空間。

二、段
  資料庫的段可以分為四類:資料區段、索引段、回退段、臨時段。
1.資料區段
  資料區段是用於儲存資料的段,他儲存在資料資料表空間中。每一個表都有一個資料區段(聚簇除外),表的資料存放區在資料區段中,預設情況下段名與表名相同。以下語句查詢段的資訊:
SQL>SELECT SEGMENTNAME,TABLESPACE,NAME,BYTES,BLOCKS FROM USER_EXTENTS;

2.索引段
  索引段用於儲存索引,以下語句查詢索引資訊:
SQL>SELECT * FROM ALL_INDEXS
SQL>SELECT * FROM USER_INDEXS

3.回退段
  回退段用於儲存使用者資料修改之前的值,因而可以在特定條件下回退資料。回退段與事務是一對多的關係,一個事務只能使用一個回退段,而一個回退段可存放一個或多個事務的回退資料。
  在oracle8i及之前的版本中,管理回退段是項很複雜的工作,管理員需要根據每個事務的大小和事務數量來確定、計算回退段的數量及儲存參數,在oracle9i之後,oracle增加了undo資料表空間,由系統自動管理它。從此不再需要考慮對回退段的管理。參數undo_management決定資料庫使用的是回退段還是undo資料表空間,其值為auto表示使用undo資料表空間自動管理,manual表示手動管理回退段。

4.臨時段
  臨時段用於order by語句的排序以及一些匯總。

三、區
  區是磁碟空間分配的最小單位。磁碟按區劃分,每次至少分配一個區。區儲存於段中,它由連續的資料區塊組成。
  一個段中,最小的區的個數是由參數MINEXTENTS來確定。參數MAXEXTENTS決定一個資料區段中的區的最大個數。這些參數是可以線上動態修改的。
  區的分配過程中,每次至分配5個區,如果所剩的空閑空間不夠5個區,就會出現錯誤:ORA-01653。
  可以通過字典dba_tablespace查詢資料表空間中區的資訊。可以通過字典user_table查詢段中區的資訊。可以通過字典user_extents查詢區的分配狀況。

四、資料區塊
  資料區塊是資料中中最小的資料群組織單位與管理單位,是資料檔案磁碟儲存空間單位,也是資料庫I/O 的最小單位,資料區塊大小由DB_BLOCK_SIZE參數決定,不同的oracle版本DB_BLOCK_SIZE的預設值是不同的。
  9i以前的版本只能設定一種塊大小,在9i及10g中,可以設定多種塊大小,不同資料表空間可以指定不同的塊大小。

五、模式對象
  模式對象是一種應用,包括:表、視圖、聚簇、索引序列產生器、同義字、雜湊、程式單元、資料庫鏈等。模式對象以後在oracle schema專欄中詳細說明。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.