儲存結構之資料檔案和表空間

2021-08-27 01:55:21 字數 1709 閱讀 8179

oracle儲存結構,可分物理結構和邏輯結構。後者是為方便管理前者而生。oracle把資料邏輯地存放在表空間裡,物理地存放在資料檔案裡。

有兩個檢視,我們可能會常用到:

dba_data_files:描述資料檔案的資訊

dba_tablespaces:描述表空間的資訊

這裡先談三個問題。

表空間的型別?

1)永久性表空間,如:system,sysaux,user等

sysaux用於存放非核心功能的資料,如oem

檢視存放了哪些非核心功能的資料:

select occupant_name,occupant_desc,schema_name

from v$sysaux_occupants;

2)臨時表空間

用於排序,建立索引

oracle建議,為每個使用者建立乙個臨時表空間;

10g引入臨時表空間組

3)undo表空間

雖有多個undo表空間,但任一時點,只有乙個undo表空間被啟用。

不同型別的表空間會產生不同的寫入方式和時機點

永久性表空間

dbwn寫入有兩種方式多個時機點

方式一:

lru機制:

lru list:儲存最近被訪問的資料塊;

dirty list:被修改但尚未寫入資料檔案的資料塊;

時機點:

1)dirty buffer達到閥值時

2)沒有free buffer時(server process在lru list裡找不到足夠多的free buffer)

3)每3秒,dbwn會去檢查dirty list,如果dirty list未到域值,就去讀lru list,將dirty buffer移到dirty list;如果dirty list已滿,則寫入資料檔案。

方式二:

檢查點事件:

時機點:

1)log switch時,要求做檢查點,即:把dirty buffer flush到資料檔案。也即:dbwn將dirty buffer從lru list中移到dirty list,然後把dirty list中的dirty block flush到資料檔案。

2)表空間下線或熱備時,

3)drop乙個物件時,

4)關閉資料庫時

表空間組成?

段:占用儲存空間的資料庫物件,如:emp表又叫emp段。可跨越資料檔案,但不能跨越表空間。

區:連續分配的空間。不能跨越資料檔案。注意:這裡的連續可能會帶來空間碎片

塊:1)乙個資料庫中允許不同塊大小,主要用於可傳輸表空間

2)通常,資料庫中5種不同塊大小:預設和非預設。在特殊情況,還存有非標準(不是2的冪)。注意:system表空間總是使用預設塊大小,乙個表空間中所有塊的大小都相同。

3)塊組成:

塊開銷:塊頭,表目錄,行目錄(指標表:指向每條記錄)

空閒空間

資料空間

4)塊頭:資料塊位址,資料塊型別,事務表(itl)

itl:行級鎖和讀一致性的實現基礎,每條記錄含:uba(undo block address),事務號,scn號

一致性讀:oracle對每次使用者查詢都要記錄查詢開始的scn號,用於和資料塊中的scn號比較,如果資料塊中的scn號大於查詢scn,oracle就會利用uba資訊構造cr塊,然後再比較cr塊中的scn號和查詢scn,如果仍然大於查詢scn,則還需要繼續構造,直到cr塊中的scn小於或等於查詢scn,若還是找不到,就會報ora-01555錯誤了。

儲存結構之資料檔案和表空間

oracle儲存結構,可分物理結構和邏輯結構。後者是為方便管理前者而生。oracle把資料邏輯地存放在表空間裡,物理地存放在資料檔案裡。有兩個檢視,我們可能會常用到 dba data files 描述資料檔案的資訊 dba tablespaces 描述表空間的資訊 這裡先談三個問題。表空間的型別?1...

表空間和資料檔案

authot yeexun date 發表於 2010年12月26日 10 09 00 address jau 17 304 管理表空間和資料檔案 介紹表空間是資料庫的邏輯組成部分,從物理上講,資料庫資料存放在資料檔案中,從邏輯上講,資料庫則是存放在表空間中,表空間由乙個或是多個資料檔案組成。資料庫...

oracle表空間和資料檔案

size medium 表空間是資料庫的邏輯組成部分,在物理上講,資料庫資料存放在資料檔案中,從邏輯上講,資料庫則是存放在表空間中,表空間由乙個或者多個資料檔案組成,表空間由段構成,而段又由區構成,而區又由塊構成。表空間從邏輯上組織資料庫的資料,資料庫邏輯上是由乙個或者多個表空間組成,表空間有以下作...