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

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

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

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

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

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

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

1.1 實例(Instance)

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

圖片

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

1.1.1 內(nèi)存

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

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

PGA為各個會話私有。

1.1.2 后臺進程(Background Process)

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

1.1.3 服務(wù)進程(Server Process)

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

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

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

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

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

圖片

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

圖片

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

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

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

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

圖片

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

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

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

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

服務(wù)進程存儲數(shù)據(jù)以及控制信息,以及完成相關(guān)任務(wù)的內(nèi)存區(qū)域。相對于其他區(qū)域來說,該區(qū)域為私有區(qū)域。程序全局區(qū)域分為包含Stack Space、HashArea、UGA等。

圖片

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

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

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

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

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

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

圖片

3.1 Block

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

圖片

block 示意圖

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

3.2 Extent(區(qū)間)

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

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

3.3 Segment(段)

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

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

3.4 TableSpace(表空間)

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

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

    關(guān)注

    12

    文章

    8843

    瀏覽量

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

    關(guān)注

    8

    文章

    2942

    瀏覽量

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

    關(guān)注

    7

    文章

    3734

    瀏覽量

    64171
  • Oracle
    +關(guān)注

    關(guān)注

    2

    文章

    285

    瀏覽量

    35075
收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

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

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

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

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

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

    MatLab基礎(chǔ)知識介紹

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

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

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

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

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

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

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

    GSM基礎(chǔ)知識介紹

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

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

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

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

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

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

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

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

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

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

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

    FPGA基礎(chǔ)知識介紹

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