ORACLE邏輯結構

2021-08-30 10:19:47 字數 2156 閱讀 1983

[img]

1、 表空間(tablespace)

表空間是資料庫中的基本邏輯結構,一系列資料檔案的集合。乙個表空間可以包含多個資料檔案,但是乙個資料檔案只能屬於乙個表空間。

2、 段(segment)

段是物件在資料庫中占用的空間,雖然段和資料庫物件是一一對應的,但段是從資料庫儲存的角度來看的。乙個段只能屬於乙個表空間,當然乙個表空間可以有多個段。

表空間和資料檔案是物理儲存上的一對多的關係,表空間和段是邏輯儲存上的一對多的關係,段不直接和資料檔案發生關係。乙個段可以屬於多個資料檔案,關於段可以指定擴充套件到哪個資料檔案上面。

段基本可以分為以下四種

資料段(data segment)

索引段(index segment)

回滾段(rollback segment)

臨時段(temporary segment)

3、區間(extent)

關於extent的翻譯有多種解釋,有的譯作擴充套件,有的譯作盤區,我這裡通常譯為區間。在乙個段中可以存在多個區間,區間是為資料一次性預留的乙個較大的儲存空間,直到那個區間被用滿,資料庫會繼續申請乙個新的預留儲存空間,即新的區間,一直到段的最大區間數(max extent)或沒有可用的磁碟空間可以申請。 在oracle8i以上版本,理論上乙個段可以無窮個區間,但是多個區間對oracle卻是有效能影響的,oracle建議把資料分布在盡量少的區間上,以減少oracle的管理與磁頭的移動。

4、oracle資料塊(block)

oracle最基本的儲存單位,他是os資料塊的整數倍。oracle的操作都是以塊為基本單位,乙個區間可以包含多個塊(如果區間大小不是塊大小的整數倍,oracle實際也擴充套件到塊的整數倍)。

5、基本表空間介紹

a. 系統表空間

主要存放資料字典和內部系統表基表

檢視資料資料字典的sql

select * from dict

檢視內部系統表的sql

select * from v$fixed_view_definition

dba對系統的系統表中的資料字典必須有乙個很深刻的了解,他們必須準備一些基礎的sql語句,通過這些sql可以立即了解系統的狀況和資料庫的狀態,這些基本的sql包括

系統的剩餘空間

系統的sga

狀態系統的等待

使用者的許可權

當前的使用者鎖

緩衝區的使用狀況等

在成為dba 的道路上我們不建議你過分的依賴於oem/quest 等優秀的資料庫管理工具,因為他們不利於你對資料資料字典的理解,sql語句可以完成幾乎全部的資料庫管理工作。

大量的讀少量的寫是該錶空間的乙個顯著的特點。

b. 臨時表空間.

臨時表空間顧名思義是用來存放臨時資料的,例如排序操作的臨時空間,他的空間會在下次系統啟動的時候全部被釋放。

c. 回滾段表空間

i. 回滾段在系統中的作用

當資料庫進行更新插入刪除等操作的時候,新的資料被更新到原來的資料檔案,而舊的資料(before image)就被放到回滾段中,如果資料需要回滾,那麼可以從回滾段將資料再複製到資料檔案中。來完成資料的回滾。在系統恢復的時候, 回滾段可以用來回滾沒有被commit 的資料,解決系統的一至性。

回滾段在什麼情況下都是大量的寫,一般是少量讀,因此建議把回滾段單獨出來放在乙個單獨的裝置(如單獨的磁碟或raid),以減少磁碟的io爭用。

ii. 回滾段的工作方式

乙個回滾表空間可以被劃分成多個回滾段.

乙個回滾段可以儲存多個會話的資料.

回滾段是乙個圓形的資料模型

假設回滾段由4 個區間組成,他們的使用順序就是區間1à區間2à區間3à區間4à區間1。也就是說,區間是可以迴圈使用的,當區間4到區間1的時候,區間1裡面的會話還沒有結束, 區間4用完後就不能再用區間1,這時系統必須分配區間5,來繼續為其他會話服務服務。

我們分析乙個update 語句的完成

①. 使用者提交乙個update 語句

②. server process 檢查記憶體緩衝.

如果沒有該資料塊的緩衝,則從磁碟讀入

i. 如果沒有記憶體的有效空間,dbwr被啟動將未寫入磁碟的髒緩衝寫入磁碟

ii. 如果有有效空間,則讀入

③. 在緩衝內更新資料

i. 申請乙個回滾段入口,將舊資料寫如回滾段

ii. 加鎖並更新資料

iii. 並在同時將修改記錄在redo log buffer中

Oracle邏輯結構

oracle的邏輯結構包括表空間 tablespace 段 segment 資料塊 data block 以及模式物件 schema 一 表空間 1.什麼是表空間?查詢表空間的檔案資訊 select from dba data files。查詢表空間的空閒空間資訊 select from dba f...

oracle邏輯結構

對於我們在資料庫裡新建資料庫 database 在資料庫中建立多個表空間 tablespace 在每個表空間內建表。例如我們可以分配多個使用者,在user1使用者下建立table1,table2,user2下建立table3,table4,user1 user2就等於不同的表空間,table1 ta...

Oracle邏輯儲存結構

一 資料塊 data blocks 資料塊是oracle 資料庫邏輯儲存結構中的最小單位,也是執行資料庫輸入輸出的最小儲存單位。通常 oracle 資料塊是作業系統塊的整數倍。資料塊的標準大小被寫入到初始化引數 db block size 中,oracle 允許在同乙個資料庫中存在不同大小的資料塊,...