0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Oracle的基礎(chǔ)知識(shí)介紹

科技綠洲 ? 來(lái)源:Java技術(shù)指北 ? 作者:Java技術(shù)指北 ? 2023-10-09 16:51 ? 次閱讀

1. Oracle整體架構(gòu)

Oracle整體架構(gòu)包含Oracle數(shù)據(jù)庫(kù)正常運(yùn)行的必需組件等。主要有實(shí)例(Instance),數(shù)據(jù)庫(kù)(Database)

1.1 實(shí)例(Instance)

數(shù)據(jù)庫(kù)實(shí)例是由服務(wù)器上的一組內(nèi)存結(jié)構(gòu)以及進(jìn)程組成。用來(lái)支撐、完成數(shù)據(jù)庫(kù)的正常運(yùn)行以及操作。

圖片

實(shí)例是可以獨(dú)立于數(shù)據(jù)庫(kù)存在的。其中實(shí)例包含了以下組件:

1.1.1 內(nèi)存

即服務(wù)器OS為當(dāng)前Instance分配的內(nèi)存區(qū)域。主要用來(lái)完成數(shù)據(jù)庫(kù)內(nèi)存的移動(dòng)和操作。內(nèi)存主要分為SGA(System Global Area) , PGA(Program or Process Global Area).

SGA是實(shí)例范圍內(nèi)共享的,包含共享池,數(shù)據(jù)緩沖,Redo緩沖等。共享池包含庫(kù)緩沖和字典緩沖等。

PGA為各個(gè)會(huì)話私有。

1.1.2 后臺(tái)進(jìn)程(Background Process)

實(shí)例創(chuàng)建和維護(hù)的一組后臺(tái)進(jìn)程,其作用是完成數(shù)據(jù)中的統(tǒng)一管理和監(jiān)控任務(wù)。進(jìn)程是共享的,不屬于某個(gè)或某些會(huì)話

1.1.3 服務(wù)進(jìn)程(Server Process)

實(shí)例為數(shù)據(jù)庫(kù)會(huì)話創(chuàng)建或分配,完成會(huì)話任務(wù)的Serve端服務(wù)進(jìn)程。其中在專用服務(wù)器模式和共享服務(wù)器模式下又有不同。

  • 專用服務(wù)器模式: 該模式下,用戶和數(shù)據(jù)庫(kù)服務(wù)器建立會(huì)話,Instance會(huì)為本次會(huì)話創(chuàng)建一個(gè)服務(wù)進(jìn)程,用以完成此會(huì)話任務(wù)。
  • 共享服務(wù)器模式下,Instance會(huì)維護(hù)一組服務(wù)進(jìn)程,Instance調(diào)度進(jìn)程會(huì)將會(huì)話放入共享任務(wù)的隊(duì)列中。該模式下所有的會(huì)話是共享一組服務(wù)進(jìn)程的,也是一種池化思想。

1.2 數(shù)據(jù)庫(kù)(DataBase)

數(shù)據(jù)庫(kù)是由服務(wù)器上的一組磁盤文件組成,存儲(chǔ)著數(shù)據(jù)庫(kù)相關(guān)的管理信息和用戶數(shù)據(jù),保證數(shù)據(jù)庫(kù)的正常運(yùn)轉(zhuǎn)和用戶數(shù)據(jù)的不丟失。數(shù)據(jù)庫(kù)及其文件可以獨(dú)立于Instance存在。

數(shù)據(jù)庫(kù)中包含了許多類型的文件,主要有參數(shù)文件(Parameter File)、控制文件(Control File)、數(shù)據(jù)文件(Data File)、回滾文件(Undo File)、臨時(shí)文件(Temp File)、重做日志文件(Redo Log File)、歸檔日志文件(Archive Log File)、警告日志文件(Alert Log File)、跟蹤文件(Trace File)等

圖片

下面是一個(gè)比較完整的Oracle架構(gòu)圖

圖片

2. Oracle內(nèi)存架構(gòu)

內(nèi)存架構(gòu)主要是說(shuō)Oracle實(shí)例內(nèi)存管理和使用相關(guān)的邏輯設(shè)計(jì)與實(shí)現(xiàn)等。這里我們概略地說(shuō)一下SGA和PGA,讓大家有一個(gè)粗略的概念。

2.1 SGA(System Global Area)系統(tǒng)全局區(qū)

數(shù)據(jù)庫(kù)實(shí)例啟動(dòng)時(shí)創(chuàng)建的一個(gè)共享內(nèi)存區(qū)域。主要由共享池、數(shù)據(jù)緩沖、重做日志緩沖等諸多區(qū)域組成。

圖片

共享池是數(shù)據(jù)庫(kù)實(shí)例中最重要、最復(fù)雜的共享內(nèi)存區(qū)域,里面存儲(chǔ)著數(shù)據(jù)庫(kù)最重要的結(jié)構(gòu)和信息。

數(shù)據(jù)緩沖做為用戶數(shù)據(jù)的緩存區(qū),在系統(tǒng)共享內(nèi)存中暫存數(shù)據(jù)庫(kù)的數(shù)據(jù)塊,其實(shí)這塊的設(shè)計(jì)是為了提高數(shù)據(jù)庫(kù)的讀寫性能。

重做日志緩沖作為日志數(shù)據(jù)的緩沖區(qū),在系統(tǒng)共享內(nèi)存中暫存數(shù)據(jù)庫(kù)重做日志數(shù)據(jù),可提高日志數(shù)據(jù)的讀寫性能。

2.2 PGA (Program Global Area) 程序全局區(qū)

服務(wù)進(jìn)程存儲(chǔ)數(shù)據(jù)以及控制信息,以及完成相關(guān)任務(wù)的內(nèi)存區(qū)域。相對(duì)于其他區(qū)域來(lái)說(shuō),該區(qū)域?yàn)樗接袇^(qū)域。程序全局區(qū)域分為包含Stack Space、HashArea、UGA等。

圖片

  • 共享服務(wù)器模式下,多個(gè)客戶端用戶共享服務(wù)進(jìn)程,UGA被挪到了Large pool,PGA中只有stack space、hash area、bitmap merge area等。
  • 專用服務(wù)器模式下,PGA包括 SQL工作區(qū),Session memory,Private SQL Area 等

會(huì)話區(qū)(User Global Area UGA),為會(huì)話分配的內(nèi)存區(qū)域,用于存儲(chǔ)各種會(huì)話變量,例如會(huì)話登錄信息以及會(huì)話需要的其他各種信息等。

SQL 工作區(qū)是為服務(wù)進(jìn)程進(jìn)行各種內(nèi)存操作分配的PGA私有內(nèi)存。比如Sort Area(排序區(qū))用于數(shù)據(jù)排序功能(ORDER BY , GROUP BY 等)

3. Oracle存儲(chǔ)架構(gòu)

Oracle數(shù)據(jù)庫(kù)最終還是使用磁盤作為存儲(chǔ)媒介,針對(duì)Oracle數(shù)據(jù)庫(kù)的存儲(chǔ)組織、分配、管理等,我們介紹一下(塊)block、(區(qū)間)extent、(段)segment、(表空間)tableSpace.

下圖為個(gè)存儲(chǔ)單元的關(guān)系示意圖。

圖片

3.1 Block

Block是Oracle數(shù)據(jù)庫(kù)讀寫的最小單元,Block size是系統(tǒng)層面塊大小整數(shù)倍。2KB、4KB.....

圖片

block 示意圖

  • Header中包含塊的一些通用信息,block的地址,segment類型等
  • Table dictionary 記錄了這個(gè)塊里面含有那些rows
  • Row dictionary 包含了rows(數(shù)據(jù)行)的一些信息

3.2 Extent(區(qū)間)

區(qū)間是關(guān)于存儲(chǔ)空間的一個(gè)邏輯單位,由多個(gè)連續(xù)的塊組成,也是Oracle存儲(chǔ)空間分配的最小單元,若某個(gè)數(shù)據(jù)庫(kù)對(duì)象需要存儲(chǔ)空間時(shí),Oracle至少要為其分配一個(gè)區(qū)間。

  • 區(qū)間在段(Segment)被創(chuàng)建或段空間擴(kuò)展時(shí)被分配。
  • 當(dāng)段被清除(drop)時(shí),區(qū)間所占用的存儲(chǔ)空間會(huì)被釋放,會(huì)被系統(tǒng)中其他對(duì)象所使用

3.3 Segment(段)

段是由一組區(qū)間組成,包含了表空間內(nèi)特定邏輯存儲(chǔ)結(jié)構(gòu)的所有數(shù)據(jù)。針對(duì)每個(gè)表,Oracle分配一個(gè)或者多個(gè)區(qū)間形成該表的數(shù)據(jù)段(data segment),對(duì)于每一個(gè)索引,Oracle分配一個(gè)或者給多個(gè)區(qū)間組成索引段(index segment).

  • 非分區(qū)表和非分區(qū)索引分別對(duì)應(yīng)一個(gè)段,分區(qū)表和分區(qū)索引的每個(gè)分區(qū)或子分區(qū)對(duì)應(yīng)一個(gè)段。
  • 段是存儲(chǔ)數(shù)據(jù)庫(kù)對(duì)象數(shù)據(jù)的實(shí)體,是存放數(shù)據(jù)的真正邏輯結(jié)構(gòu)和單元。
  • 段可分為數(shù)據(jù)段(Data segment)、索引段(Index segment)、臨時(shí)段(Temporary segment)、回滾段(Rollback segment)等。

3.4 TableSpace(表空間)

Oracle數(shù)據(jù)庫(kù)中最大的存儲(chǔ)空間相關(guān)的邏輯概念和容器,存儲(chǔ)系統(tǒng)和用戶數(shù)據(jù)的段都是在表空間中分配的。表空間是共享資源,不同用戶或段可以存儲(chǔ)在同一個(gè)表空間,也可以存儲(chǔ)在不同的表空間中。

  • Oracle將數(shù)據(jù)邏輯存儲(chǔ)在表空間中,物理存儲(chǔ)則在與表空間對(duì)應(yīng)關(guān)聯(lián)的數(shù)據(jù)文件中。
  • Oracle數(shù)據(jù)庫(kù)有一個(gè)或者多個(gè)表空間的邏輯存儲(chǔ)單元組成,這些表空間共同存儲(chǔ)所有的數(shù)據(jù)。
  • Oracle中的每一個(gè)表空間有一個(gè)或者多個(gè)數(shù)據(jù)文件(data file)組成,這些數(shù)據(jù)文件與運(yùn)行Oracle的系統(tǒng)的屋里存儲(chǔ)結(jié)構(gòu)相匹配。
  • 表空間分為數(shù)據(jù)表空間(Data Tablespace)、臨時(shí)表空間(Temporary Tablespace)、回滾表空間(Undo Tablespace)。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    8958

    瀏覽量

    85082
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    2966

    瀏覽量

    73812
  • 數(shù)據(jù)庫(kù)
    +關(guān)注

    關(guān)注

    7

    文章

    3752

    瀏覽量

    64233
  • Oracle
    +關(guān)注

    關(guān)注

    2

    文章

    286

    瀏覽量

    35086
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    電感基礎(chǔ)知識(shí) 圖文介紹

    `電感基礎(chǔ)知識(shí) 圖文介紹`
    發(fā)表于 08-16 19:34

    IGBT的介紹和應(yīng)用基礎(chǔ)知識(shí)

    IGBT的介紹和應(yīng)用,基礎(chǔ)知識(shí)
    發(fā)表于 06-24 22:42

    電阻的基礎(chǔ)知識(shí)介紹

    電阻基礎(chǔ)知識(shí)介紹
    發(fā)表于 02-26 06:17

    介紹關(guān)于編程的基礎(chǔ)知識(shí)

    關(guān)注、星標(biāo)公眾號(hào),不錯(cuò)過(guò)精彩內(nèi)容作者:strongerHuang對(duì)于軟件工程師來(lái)說(shuō),代碼升級(jí)(或程序更新)算是必備基礎(chǔ)知識(shí)。下面將介紹關(guān)于編程的基礎(chǔ)知識(shí),以及結(jié)合STM32官方提供的De...
    發(fā)表于 07-27 08:13

    MatLab基礎(chǔ)知識(shí)介紹

    MatLab學(xué)習(xí)筆記(一)綱要:界面介紹幫助系統(tǒng)基礎(chǔ)知識(shí)基本數(shù)據(jù)類型一.界面介紹 (基于 MATLAB R2018a)  MATLAB的工作界面形式簡(jiǎn)潔,主要由標(biāo)題欄、功能區(qū)、工具欄、當(dāng)前目錄窗口
    發(fā)表于 08-17 07:08

    介紹PLC的原理及基礎(chǔ)知識(shí)

    在自動(dòng)化控制領(lǐng)域,PLC應(yīng)用十分廣泛,這里開(kāi)始介紹PLC的原理及基礎(chǔ)知識(shí)。
    發(fā)表于 09-09 09:07

    1602液晶基礎(chǔ)知識(shí)介紹

    一、1602液晶基礎(chǔ)知識(shí)介紹1、1602液晶的硬件接口介紹2、1602液晶的讀寫時(shí)序介紹3、1602液晶的指令介紹4、簡(jiǎn)單實(shí)例二、1602液
    發(fā)表于 11-22 07:08

    數(shù)控機(jī)床的基礎(chǔ)知識(shí)介紹

    數(shù)控機(jī)床的基礎(chǔ)知識(shí)介紹內(nèi)容有:
    發(fā)表于 12-30 23:59 ?30次下載
    數(shù)控機(jī)床的<b class='flag-5'>基礎(chǔ)知識(shí)</b><b class='flag-5'>介紹</b>

    GSM基礎(chǔ)知識(shí)介紹

    GSM基礎(chǔ)知識(shí)介紹
    發(fā)表于 07-29 17:18 ?75次下載
    GSM<b class='flag-5'>基礎(chǔ)知識(shí)</b>的<b class='flag-5'>介紹</b>

    arm內(nèi)核基礎(chǔ)知識(shí)介紹

    arm內(nèi)核基礎(chǔ)知識(shí)介紹,有需要的朋友下來(lái)看看。
    發(fā)表于 01-08 14:44 ?12次下載

    后視鏡設(shè)計(jì)基礎(chǔ)知識(shí)介紹

    后視鏡設(shè)計(jì)基礎(chǔ)知識(shí)介紹,感興趣的小伙伴們可以看看我的上傳的資源,有分享更多。
    發(fā)表于 08-12 15:00 ?23次下載

    Oracle數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)

    Oracle數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)(現(xiàn)代電源技術(shù)課程總結(jié))-該文檔為Oracle數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)講解文檔,是一份還算不錯(cuò)的參考文檔,感興趣的可以下載看看,,,,,,,,,,,
    發(fā)表于 09-28 10:33 ?5次下載
    <b class='flag-5'>Oracle</b>數(shù)據(jù)庫(kù)<b class='flag-5'>基礎(chǔ)知識(shí)</b>

    Oracle數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)講解

    Oracle數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)講解(肇慶理士電源技術(shù)有限公司圖片)-該文檔為Oracle數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)講解文檔,是一份不錯(cuò)的參考文檔,感興趣的可以看看,,,,,,,,,
    發(fā)表于 09-28 13:39 ?10次下載
    <b class='flag-5'>Oracle</b>數(shù)據(jù)庫(kù)<b class='flag-5'>基礎(chǔ)知識(shí)</b>講解

    全面介紹PCIe總線的基礎(chǔ)知識(shí)

    全面介紹PCIe總線的基礎(chǔ)知識(shí)
    發(fā)表于 12-14 11:49 ?0次下載

    FPGA基礎(chǔ)知識(shí)介紹

    電子發(fā)燒友網(wǎng)站提供《FPGA基礎(chǔ)知識(shí)介紹.pdf》資料免費(fèi)下載
    發(fā)表于 02-23 09:45 ?29次下載