真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Oracle數(shù)據(jù)庫(kù)體系結(jié)構(gòu)(一):存儲(chǔ)結(jié)構(gòu)

目錄

  • 為什么要學(xué)習(xí)體系結(jié)構(gòu)?
  • 體系結(jié)構(gòu)的定義
  • Oracle 物理結(jié)構(gòu)
  • Oracle 邏輯結(jié)構(gòu)
  • 總結(jié)

為什么要學(xué)習(xí)體系結(jié)構(gòu)?

之前的文章有講解到 MySQL 、MongoDB 數(shù)據(jù)庫(kù),這些數(shù)據(jù)庫(kù)我們安裝好了就能拿來(lái)用,比如直接可以做一些:增、刪、改、查 等操作。但是 Oracle 的體系錯(cuò)綜復(fù)雜,如果不了解當(dāng)中的結(jié)構(gòu),那么在生產(chǎn)環(huán)境中出現(xiàn)一些問(wèn)題,都不知道是哪個(gè)環(huán)節(jié)有問(wèn)題,所以需要了解Oracle的結(jié)構(gòu),這樣會(huì)更加利于了解它,認(rèn)識(shí)它,如果有問(wèn)題就會(huì)及時(shí)知道問(wèn)題是出現(xiàn)在那一塊,就可以及時(shí)解決它!

創(chuàng)新互聯(lián)建站于2013年創(chuàng)立,先為中站等服務(wù)建站,中站等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為中站企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。


  • > Oracle 安裝點(diǎn)擊:Oracle 12C 安裝 與 啟動(dòng)
  • > MySQL 數(shù)據(jù)庫(kù):MySQL 高可用部署
  • > MongoDB 分片:MongoDB 分片原理 與 部署

Oracle 數(shù)據(jù)庫(kù) 體系結(jié)構(gòu)(一):存儲(chǔ)結(jié)構(gòu)

體系結(jié)構(gòu)的定義

它的定義就是數(shù)據(jù)庫(kù)的組成、工作過(guò)程與原理,以及數(shù)據(jù)在數(shù)據(jù)庫(kù)中的組織與管理機(jī)制。

Oracle 數(shù)據(jù)庫(kù) 體系結(jié)構(gòu)(一):存儲(chǔ)結(jié)構(gòu)

  • Oracle服務(wù)器提供開(kāi)放、全面和綜合的信息管理,它由Oracle實(shí)例與Oracle數(shù)據(jù)庫(kù)組成。
  • Oracle實(shí)例:是后臺(tái)進(jìn)程和內(nèi)存結(jié)構(gòu)的集合
  • Oracle數(shù)據(jù)庫(kù):數(shù)據(jù)庫(kù)是數(shù)據(jù)的一個(gè)集合,該集合可以被視為一個(gè)邏輯單元。

Oracle 數(shù)據(jù)庫(kù) 體系結(jié)構(gòu)(一):存儲(chǔ)結(jié)構(gòu)

Oracle實(shí)例:

  • > Oracle實(shí)例作用 --1·分配內(nèi)存,也就是系統(tǒng)全局區(qū)(SGA)
  • > Oracle實(shí)例作用 --2·啟動(dòng)后臺(tái)進(jìn)程

Oracle 數(shù)據(jù)庫(kù) 體系結(jié)構(gòu)(一):存儲(chǔ)結(jié)構(gòu)

Oracle數(shù)據(jù)庫(kù):

  • Oracle數(shù)據(jù)庫(kù):由操作系統(tǒng)文件組成,這些文件為數(shù)據(jù)庫(kù)信息提供實(shí)際物理存儲(chǔ)區(qū)。
  • Oracle數(shù)據(jù)庫(kù):包括邏輯結(jié)構(gòu)和物理結(jié)構(gòu)。

Oracle 數(shù)據(jù)庫(kù) 體系結(jié)構(gòu)(一):存儲(chǔ)結(jié)構(gòu)


Oracle 物理結(jié)構(gòu)

  • Oracle 的存儲(chǔ)結(jié)構(gòu)分為:物理結(jié)構(gòu)和邏輯結(jié)構(gòu)!這兩種結(jié)構(gòu)相互獨(dú)立又相互聯(lián)系。意思是,邏輯結(jié)構(gòu)還是得建立在物理結(jié)構(gòu)之上,相輔相成!
  • Oracle數(shù)據(jù)庫(kù)邏輯上由一個(gè)或多個(gè)表空間組成,每個(gè)表空間在物理上由一個(gè)或多個(gè)數(shù)據(jù)文件組成,而每個(gè)數(shù)據(jù)文件是有數(shù)據(jù)塊構(gòu)成的。所以,邏輯上數(shù)據(jù)存放在表空間中,而物理上存儲(chǔ)在表空間所對(duì)應(yīng)的數(shù)據(jù)文件中。

Oracle 數(shù)據(jù)庫(kù) 體系結(jié)構(gòu)(一):存儲(chǔ)結(jié)構(gòu)

物理結(jié)構(gòu)主要包含以下幾部分:
主要文件:

  • 數(shù)據(jù)文件
  • 重做日志文件
  • 控制文件

其他文件:

  • 參數(shù)文件
  • 歸檔日志文件
  • .......等

  • 數(shù)據(jù)文件:主要用來(lái)存放數(shù)據(jù)
  • 重做日志文件:存放對(duì)數(shù)據(jù)的改變。至少兩組,Oracle以循環(huán)方式來(lái)使用它們
  • 控制文件:存放數(shù)據(jù)庫(kù)的基本信息,告訴數(shù)據(jù)庫(kù)到×××到數(shù)據(jù)文件和重做日志文件等。對(duì)數(shù)據(jù)庫(kù)的成功啟動(dòng)和正常運(yùn)行是很重要的。
  • 參數(shù)文件:?jiǎn)?dòng)實(shí)例時(shí)需要讀取參數(shù)文件,找到相關(guān)得配置好啟動(dòng)實(shí)例!
  • 歸檔日志文件:可以保留所有重做歷史記錄,當(dāng)數(shù)據(jù)庫(kù)出現(xiàn)介質(zhì)失敗時(shí),使用數(shù)據(jù)文件備份,歸檔日志和重做日志可以完全恢復(fù)數(shù)據(jù)庫(kù)。(沒(méi)辦法就是這么強(qiáng)大 0.0)

Oracle 邏輯結(jié)構(gòu)

Oracle 在邏輯上將保存的數(shù)據(jù)劃分為一個(gè)個(gè)小單元來(lái)進(jìn)行存儲(chǔ)和維護(hù),更高一級(jí)的邏輯存儲(chǔ)結(jié)構(gòu)都是由這些基本的小單元組成的。

邏輯結(jié)構(gòu)的類型(大--->小):

表空間(tablespace)----> 段(segment) ----> 區(qū)(extent) ----> 塊(block)

Oracle 數(shù)據(jù)庫(kù) 體系結(jié)構(gòu)(一):存儲(chǔ)結(jié)構(gòu)

1·表空間:

  • 最高級(jí)的邏輯存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)庫(kù)是由多個(gè)表空間組成的。在創(chuàng)建數(shù)據(jù)庫(kù)的時(shí)候會(huì)創(chuàng)建一些默認(rèn)的表空間,列如 SYSTEM、SYSAUX 等默認(rèn)表空間。
  • 通過(guò)使用表空間,Oracle將所有相關(guān)的邏輯結(jié)構(gòu)和對(duì)象組合在一起。

2·段:

  • 段是構(gòu)成表空間的邏輯存儲(chǔ)結(jié)構(gòu),段是由一組區(qū)組成,這些區(qū)可以是連續(xù)的,也可是不連續(xù)的。
  • 當(dāng)用戶在數(shù)據(jù)庫(kù)中創(chuàng)建各種具有實(shí)際存儲(chǔ)結(jié)構(gòu)的對(duì)象時(shí)(保存有數(shù)據(jù)的對(duì)象),比如表、索引等,Oracle將為這些對(duì)象創(chuàng)建“段”。 一般一個(gè)對(duì)象只擁有一個(gè)段。
  • 不同類型的數(shù)據(jù)庫(kù)對(duì)象擁有不同類型的段。

3·區(qū):

  • 區(qū)為段分配空間,它由連續(xù)的數(shù)據(jù)塊組成,它是oracle在進(jìn)行存儲(chǔ)空間的分配和回收的最小單位。
  • 區(qū)不能跨數(shù)據(jù)文件存在,只能存在一個(gè)數(shù)據(jù)段中。
  • 當(dāng)段中的所有空間使用完時(shí),系統(tǒng)將會(huì)為該段重新分配一個(gè)區(qū)。
  • Oracle為對(duì)象創(chuàng)建 ‘段’時(shí),并為數(shù)據(jù)段分配一個(gè)‘初始區(qū)’。后續(xù)區(qū)的分配方式,則根據(jù)表的空間管理辦法不同,而采用不同的分配方式。

4·塊:

  • 是最小的邏輯存儲(chǔ)結(jié)構(gòu),Oracle在進(jìn)行輸出輸入時(shí)都是以塊為單位進(jìn)行。
  • 塊的大小是在創(chuàng)建數(shù)據(jù)庫(kù)的時(shí)候決定的,之后不能修改。當(dāng)然,oracle同時(shí)也支持不同的表空間擁有不同的數(shù)據(jù)塊尺寸。

Oracle 數(shù)據(jù)庫(kù) 體系結(jié)構(gòu)(一):存儲(chǔ)結(jié)構(gòu)


常見(jiàn)表空間:

  • 數(shù)據(jù)表空間:用于存儲(chǔ)用戶數(shù)據(jù)的普通表空間。
  • 系統(tǒng)表空間:默認(rèn)的表空間,用于保存數(shù)據(jù)字典(一組保存數(shù)據(jù)庫(kù)自身信息的內(nèi)部系統(tǒng)表和視圖,及用于Oracle內(nèi)部使用的其他一些對(duì)象),保存所有的PL/SQL程序的源代碼和解析代碼,包括存儲(chǔ)過(guò)程和函數(shù)、包、數(shù)據(jù)庫(kù)觸發(fā)器等,保存數(shù)據(jù)庫(kù)對(duì)象(表、視圖、序列)的定義。
  • 回滾表空間:用于存放回滾段,每個(gè)實(shí)例最多只能使用一個(gè)撤銷表空間
  • 臨時(shí)表空間:存儲(chǔ)SQL執(zhí)行過(guò)程中產(chǎn)生的臨時(shí)數(shù)據(jù)

不同類型的段:

  • 數(shù)據(jù)段:保存表中的記錄
  • 索引段:索引中的索引條目
  • 臨時(shí)段:在執(zhí)行查詢等操作時(shí),Oracle可能會(huì)需要使用到一些臨時(shí)存儲(chǔ)空間,用于臨時(shí)保存解析過(guò)的查詢語(yǔ)句以及在排序過(guò)程中產(chǎn)生的臨時(shí)數(shù)據(jù)。
  • 回滾段:保存回滾數(shù)據(jù)。

回收未使用的區(qū):
SQL>alter table table_name deallocate unused;

塊頭部信息區(qū):

  • 塊頭:包含塊的一般屬性信息 如塊的物理地址、塊所屬的段的類型
  • 表目錄:如果塊中存儲(chǔ)的數(shù)據(jù)是表數(shù)據(jù), 則在表目錄中保存塊中所包含的表的相關(guān)信息
  • 行目錄:行記錄的相關(guān)信息 如ROWID
  • 塊的存儲(chǔ)區(qū):主要包含空閑空間和已經(jīng)使用的空間。Oracle主要是通過(guò)下面的兩個(gè)參數(shù)對(duì)這部分空間進(jìn)行管理的
  • PCTFREE參數(shù):指定塊中必須保留的最小空閑空間比例。當(dāng)塊中的空閑存儲(chǔ)空間減少到PCTFREE所設(shè)置的比例后,Oracle將塊標(biāo)記為不可用狀態(tài),新的數(shù)據(jù)行將不能被加入到這個(gè)塊。
  • PCTUSED參數(shù):制定一個(gè)百分比,當(dāng)塊中已經(jīng)使用的存儲(chǔ)空間降低到這個(gè)百分比只下時(shí),這個(gè)塊才被重新標(biāo)記為可用狀態(tài)。

  • 請(qǐng)注意:以上兩個(gè)參數(shù)既可以在表空間級(jí)別進(jìn)行設(shè)置,也可以在段級(jí)別進(jìn)行設(shè)置。段級(jí)別的設(shè)置優(yōu)先級(jí)更高。

總結(jié):

  • Oracle體系結(jié)構(gòu)主要分為:實(shí)例和數(shù)據(jù)庫(kù)。
  • 實(shí)例:由系統(tǒng)全局區(qū)(SGA)與后臺(tái)進(jìn)程組成。
  • 數(shù)據(jù)庫(kù):分為物理結(jié)構(gòu)與邏輯結(jié)構(gòu)。
  • 物理結(jié)構(gòu):主要文件與其他文件組成。
  • 主要文件包括:數(shù)據(jù)文件、控制文件、重做日志文件。
  • 其他文件包括:參數(shù)文件、歸檔日志文件
  • 邏輯結(jié)構(gòu)的類型(大--->小):表空間(tablespace)----> 段(segment) ----> 區(qū)(extent) ----> 塊(block)

文章名稱:Oracle數(shù)據(jù)庫(kù)體系結(jié)構(gòu)(一):存儲(chǔ)結(jié)構(gòu)
轉(zhuǎn)載源于:http://weahome.cn/article/gjjgsh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部