Oracle資料庫和範例


Oracle資料庫是Oracle公司開發和銷售的一種物件關聯式資料庫管理系統。 Oracle資料庫通常被稱為Oracle RDBMS或簡稱為Oracle。

資料庫和範例

Oracle資料庫伺服器由一個資料庫和至少一個資料庫範例組成。 資料庫是一組儲存資料的檔案,而資料庫範例是一組管理資料庫檔案的記憶體結構。 另外,資料庫由後台行程群組成。

一個資料庫和一個範例是緊密相連的,因此術語 - Oracle資料庫 通常用來指代範例和資料庫。

下圖說明了Oracle資料庫伺服器體系結構:

在這種體系結構中,Oracle資料庫伺服器包括兩個主要部分:檔案(Oracle資料庫)和記憶體(Oracle範例)。

1. Oracle資料庫

Oracle資料庫的一個基本任務是儲存資料。以下部分簡要地介紹Oracle資料庫的物理和邏輯儲存結構。

1.1. 物理儲存結構

物理儲存結構是儲存資料的純檔案。當執行一個CREATE DATABASE語句來建立一個新的資料庫時,將建立下列檔案:

  • 資料檔案:資料檔案包含真實資料,例如銷售訂單和客戶。邏輯資料庫結構(如表和索引)的資料被物理儲存在資料檔案中。
  • 控制檔案:每個Oracle資料庫都有一個包含後設資料的控制檔案。後設資料描述資料庫的物理結構,包括資料庫名稱和資料檔案的位置。
  • 聯機重做紀錄檔檔案:每個Oracle資料庫都有一個聯機重做紀錄檔,其中包含兩個或多個聯機重做紀錄檔檔案。聯機重做紀錄檔由重做條目組成,記錄對資料所做的所有更改。

除這些檔案外,Oracle資料庫還包括其他重要檔案,如引數檔案,網路檔案,備份檔案以及用於備份和恢復的歸檔重做紀錄檔檔案。

1.2. 邏輯儲存結構

Oracle資料庫使用邏輯儲存結構對磁碟空間使用情況進行精細控制。以下是Oracle資料庫中的邏輯儲存結構:

  • 資料塊(Data blocks):資料塊對應於磁碟上的位元組數。Oracle將資料儲存在資料塊中。資料塊也被稱為邏輯塊,Oracle塊或頁。
  • 範圍(Extents):範圍是用於儲存特定型別資訊的邏輯連續資料塊的具體數量。
  • 段(Segments):段是分配用於儲存使用者物件(例如表或索引)的一組範圍。
  • 表空間(Tablespaces):資料庫被分成稱為表空間的邏輯儲存單元。 表空間是段的邏輯容器。 每個表空間至少包含一個資料檔案。

下圖說明了表空間中的段,範圍和資料塊:

下圖顯示了邏輯和物理儲存結構之間的關係:

2. Oracle範例

Oracle範例是用戶端應用程式(使用者)和資料庫之間的介面。Oracle範例由三個主要部分組成:系統全域性區(SGA),程式全域性區(PGA)和後台進程。如下圖所示 -

SGA是範例啟動時分配的共用記憶體結構,關閉時釋放。 SGA是一組包含一個資料庫範例的資料和控制資訊的共用記憶體結構。

不同於所有進程都可用的SGA,PGA是對談開始時為每個對談分配的私有記憶體區,當對談結束時釋放。

主要的Oracle資料庫的後台進程

以下是Oracle範例的主要後台進程:

  • PMON 是調節所有其他進程的進程監視器。PMON清理異常連線的資料庫連線,並自動向偵聽器進程註冊資料庫範例。PMON是Oracle資料庫中最活躍的一個進程。
  • SMON 是執行系統級清理操作的系統監視進程。它有兩個主要職責,包括在發生故障的情況下自動恢復範例,例如斷電和清理臨時檔案。
  • DBWn 是資料庫編寫器。Oracle在記憶體中執行每個操作而不是磁碟。因為在記憶體中的處理速度比在磁碟上快。DBWn進程從磁碟讀取資料並將其寫回到磁碟。 一個Oracle範例有許多資料庫編寫器,如:DBW0DBW1DBW2等等。
  • CKPT 是檢查點過程。 在Oracle中,磁碟上的資料稱為塊,記憶體中的資料稱為緩衝區。 當該塊寫入緩衝區並更改時,緩衝區變髒,需要將其寫入磁碟。CKPT進程使用檢查點資訊更新控制和資料檔案頭,並向髒盤寫入臟緩衝區的信號。 請注意,Oracle 12c允許全面和增量檢查點。
  • LGWR 是紀錄檔寫入過程,是可恢復架構的關鍵。 在資料庫中發生的每一個變化都被寫出到一個名為redo紀錄檔檔案中用於恢復目的。 而這些變化是由LGWR進程編寫和記錄的。 LGWR進程首先將更改寫入記憶體,然後將磁碟寫入重做紀錄檔,然後將其用於恢復。
  • ARCn 是歸檔進程,它將重做紀錄檔的內容複製到歸檔重做紀錄檔檔案。存檔程式進程可以有多個進程,如:ARC0ARC1ARC3,允許存檔程式寫入多個目標,如D:驅動器,E:驅動器或其他儲存。
  • MMON 是收集效能指標的可管理性監控流程。
  • MMAN 是自動管理Oracle資料庫記憶體的記憶體管理器。
  • LREG 是監聽器註冊過程,它使用Oracle Net Listener 在資料庫範例和排程程式進程上註冊資訊。