實體儲存體結構
您可以在作業系統層次檢視 Oracle 資料庫的實體資料庫結構。
-
實體儲存體結構簡介 RDBMS 的一個特性是邏輯資料結構 (例如表格、視觀表和實體儲存體結構 (例如檔案) 的索引) 的獨立性。
-
資料檔簡介:在作業系統層次,Oracle AI Database 會將資料儲存在稱為資料檔的結構中。每個 Oracle 資料庫 (不論是 CDB 或 PDB) 都必須至少有一個資料檔。
-
控制檔簡介 資料庫控制檔是僅與一個 CDB 關聯的小型二進位檔案。
-
線上重做日誌簡介:復原的最重要結構是線上重做日誌,由兩個或兩個以上的預先配置檔案組成,這些檔案會儲存資料庫的變更。線上重做日誌會記錄對資料檔的變更。
實體儲存體結構簡介
RDBMS 的一個特性是邏輯資料結構 (例如表格、視觀表和實體儲存體結構 (例如檔案) 的索引) 的獨立性。
因為實體與邏輯結構是分開的,所以您可以管理實體資料儲存體,而不會影響邏輯結構的存取。例如,重新命名資料庫檔案並不會重新命名其中儲存的表格。
Oracle 資料庫是一組將 Oracle 資料儲存在永久儲存體中的檔案。從 Oracle Database 21c 開始,唯一的支援架構是多雲端用戶容器資料庫 (CDB)。一個 CDB 包含一或多個 PDB。
本節討論當您發出 CREATE DATABASE 敘述句來建立 CDB 時所產生的資料庫檔案:
-
資料檔和暫存檔
資料檔是永久儲存中的實體檔案,由 Oracle AI Database 建立並包含表格和索引等資料結構。暫存檔是屬於暫時表格空間的資料檔。資料庫會以 Oracle 專有的格式寫入資料,其他程式無法讀取這些檔案。
當您在 PDB 內建立 PDB 時,該 PDB 會在構成 CDB 的整體資料檔集合中,擁有自己的一組資料檔。例如,您可以建立一個名為
mycdb的 CDB,然後在其中建立兩個 PDB:hrpdb和salespdb。在此情況下,mycdb會有自己的一組資料檔和暫存檔,如同hrpdb和salespdb一樣。 -
控制檔
控制檔是追蹤 CDB 實體元件的根檔案。PDB 沒有自己的個別控制檔。
-
線上重做日誌檔案
線上重做日誌是一組檔案,其中包含 CDB 內資料變更的記錄。PDB 沒有它們自己的個別線上重做日誌檔。
資料庫執行處理是一組記憶體結構,可用來管理 CDB 中的資料庫檔案。下圖顯示執行處理與其所管理檔案之間的關係。
圖 1:資料庫執行處理與資料庫檔案

-
儲存資料庫檔案的機制有幾種機制可用來配置和管理這些檔案的儲存體。
-
Oracle Managed Files 和 User-Managed Files Oracle Managed Files 是一個檔案命名策略,可讓您指定資料庫物件的作業,而非檔案名稱。例如,您可以建立一個表格空間,而不需要指定其資料檔的名稱。
-
Oracle Automatic Storage Management (Oracle ASM) Oracle ASM 是適用於 Oracle AI Database 檔案的高效能、易於管理的儲存解決方案。Oracle ASM 是磁碟區管理程式,並提供專門用於資料庫的檔案系統。
-
Oracle 永久記憶體檔案庫 (PMEM 檔案庫) PMEM 是可位元組定位的永久記憶體。Oracle 永久記憶體檔案存放區 (PMEM 檔案存放區) 可以儲存資料檔、線上重做日誌檔以及控制檔。
另請參閱:
-
Oracle AI Database Administrator's Guide,瞭解如何建立資料庫
-
Oracle AI Database SQL Language Reference,瞭解
CREATE DATABASE語意和語法
儲存資料庫檔案的機制
有幾種機制可用來配置和管理這些檔案的儲存體。
機制包括:
-
作業系統檔案系統
大多數 Oracle 資料庫都會將檔案儲存在檔案系統中,這是儲存和擷取資料的結構。
檔案系統可讓儲存體空間以標準且一致的方式用於應用程式資料。每個檔案都有一個名稱,並顯示為應用程式 (例如 Oracle AI Database) 的連續位址空間。資料庫可以建立、讀取、寫入、調整大小以及刪除檔案。
檔案系統通常建立在邏輯磁碟區之上,由稱為邏輯磁碟區管理程式 (LVM) 的軟體套裝程式所建構。LVM 可讓多個實體磁碟的片段結合成顯示為單一連續的位址空間。
-
集群檔案系統
叢集檔案系統是分散式檔案系統,它是伺服器的叢集,可協作為其用戶端提供一致性和高效能。在 Oracle RAC 環境中,叢集檔案系統會將共用儲存體顯示為叢集環境中許多電腦共用的檔案系統。使用叢集檔案系統時,叢集中的電腦失敗並不會使檔案系統無法使用。不過,在作業系統檔案系統中,如果透過 NFS 或其他方式共用檔案電腦失敗,則無法使用檔案系統。
-
Oracle 永久記憶體檔案庫 (PMEM 檔案庫)
PMEM Filestore 是設計用來將資料庫檔案儲存在「永久記憶體 (PMEM)」中,這是位元組可定位的永久記憶體。您可以使用
CREATE PMEM FILESTORE指令建立檔案存放區。在 Linux 作業系統層次,檔案存放區會將資料儲存在掛載於fsdax模式的大型 ext4 檔案系統中。PMEM 檔案存放區在 Linux 上以原生檔案系統的形式出現在 Oracle AI Database 上。注意:與 POSIX 相容的檔案系統不同,PMEM Filestore 無法由多個 Oracle 資料庫共用。
-
Oracle Automatic Storage Management (Oracle ASM)
Oracle ASM 包含一個專門用於 Oracle AI Database 的檔案系統。
資料庫可以使用先前儲存體機制的組合。例如,資料庫可以將伺服器參數檔儲存在傳統檔案系統中、將資料庫檔案儲存在 PMEM Filestore 中,然後將重做日誌檔存檔至叢集檔案系統。
另請參閱:
-
Oracle AI Database Administrator's Guide 透過查詢資料庫檢視來檢視資料庫儲存結構
Oracle Managed Files 和使用者管理的檔案
Oracle Managed Files 是一個檔案命名策略,可讓您指定資料庫物件的作業,而非檔案名稱。例如,您可以建立一個表格空間,而不需要指定其資料檔的名稱。
Oracle Managed Files 可讓管理員不需要直接管理資料庫中的作業系統檔案。Oracle ASM 需要 Oracle Managed Files。
注意:此功能不會影響建立或命名管理檔案 (例如追蹤檔、稽核檔及警示日誌)。
使用使用者管理的檔案,您可以直接管理資料庫中的作業系統檔案。您可以決定檔案結構和命名。例如,當您建立表格空間時,會設定表格空間資料檔的名稱與路徑。
透過初始化參數,您可以為特定類型的檔案指定檔案系統目錄。Oracle Managed Files 功能可確保資料庫會建立唯一的檔案,並在不再需要時將其刪除。資料庫會在內部使用標準檔案系統介面,為儲存在快速復原區域中的資料檔和暫存檔、控制檔以及復原相關檔案建立和刪除檔案。
Oracle Managed Files 不排除現有的功能。您可以在手動管理舊檔案時建立新檔案。因此,資料庫可以混用 Oracle Managed Files 與使用者管理的檔案。
另請參閱:
-
Oracle AI Database Administrator's Guide,瞭解如何使用 Oracle Managed Files
Oracle Automatic Storage Management (Oracle ASM)
Oracle ASM 是適用於 Oracle AI Database 檔案的高效能、易於管理的儲存解決方案。Oracle ASM 是磁碟區管理程式,並提供專門用於資料庫的檔案系統。
Oracle ASM 與傳統的檔案系統和儲存體管理程式相比,提供了多項優點,包括:
-
簡化儲存相關作業,例如建立及配置資料庫,以及管理磁碟空間
-
將資料分散到各個實體磁碟,以消除熱點並提供一致的磁碟效能
-
儲存組態變更後自動重新平衡資料
若要使用 Oracle ASM,您可以使用分割與鏡射的偏好設定,為 Oracle AI Database 配置分割的磁碟。Oracle ASM 負責管理磁碟空間、將 I/O 負載分散到所有的可用資源以最佳化效能,您不需進行手動 I/O 調整。例如,您可以增加資料庫的磁碟大小,或將資料庫的部分移至新裝置,而不需要關閉資料庫。
-
Oracle ASM 儲存體元件:Oracle AI Database 可以將資料檔儲存為 Oracle ASM 磁碟群組中的 Oracle ASM 檔案。在磁碟群組中,Oracle ASM 會公開資料庫檔案的檔案系統介面。
-
Oracle ASM 執行處理:Oracle ASM 執行處理是管理 Oracle ASM 磁碟的特殊 Oracle 執行處理。
Oracle ASM 儲存體元件
Oracle AI Database 可以將資料檔儲存為 Oracle ASM 磁碟群組中的 Oracle ASM 檔案。在磁碟群組中,Oracle ASM 會公開資料庫檔案的檔案系統介面。
下圖顯示使用 Oracle ASM 之資料庫中的儲存體元件之間的關係。此圖說明 Oracle ASM 檔案與資料檔之間的關係,雖然 Oracle ASM 可以儲存其他類型的檔案。群眾的註腳表示法代表一對多關係。
圖 2:Oracle ASM 元件

圖 14-2 說明下列 Oracle ASM 概念:
-
Oracle ASM 磁碟
Oracle ASM 磁碟是已啟動設定至 Oracle ASM 磁碟群組的儲存裝置。Oracle ASM 磁碟可以是實體磁碟或分割區、儲存體陣列中的「邏輯單位號碼 (LUN)」、「邏輯磁碟區」或網路連接的檔案。
資料庫執行時,可以從磁碟群組新增或刪除 Oracle ASM 磁碟。當您將磁碟新增至磁碟群組時,您可以指派磁碟名稱,或自動指定 Oracle ASM 磁碟名稱給磁碟。
-
Oracle ASM 磁碟群組
Oracle ASM 磁碟群組是一個以邏輯單位形式管理的 Oracle ASM 磁碟集合。磁碟群組中的資料結構是獨立的,而且會使用磁碟群組中的某些磁碟空間。
在磁碟群組中,Oracle ASM 會公開 Oracle 資料庫檔案的檔案系統介面。儲存在磁碟群組中的檔案內容會平均分配或分割,以消除熱點並提供一致的磁碟效能。
-
Oracle ASM 檔案
Oracle ASM 檔案是儲存在 Oracle ASM 磁碟群組中的檔案。Oracle AI Database 與 Oracle ASM 進行檔案通訊。資料庫可以將資料檔、控制檔、線上重做日誌檔,以及其他類型的檔案儲存為 Oracle ASM 檔案。當資料庫要求時,Oracle ASM 會建立一個 Oracle ASM 檔案,並指派一個以加號 (
+) 為開頭的名稱,後面接著一個磁碟群組名稱,如+DISK1。注意:Oracle ASM 檔案可以與其他儲存體管理選項 (例如第三方檔案系統) 共存。此功能可簡化 Oracle ASM 與預先存在之環境的整合。
-
Oracle ASM 擴充區塊
Oracle ASM 擴充區塊是 Oracle ASM 檔案的一個區段。一個 Oracle ASM 檔案則是由一或多個檔案擴充區塊所組成。每個 Oracle ASM 擴充區塊是由特定磁碟上的一或多個配置單位所組成。
-
Oracle ASM 配置單位
Oracle ASM 配置單位是磁碟群組內的基本配置單位。配置單位是 Oracle ASM 配置的最小連續磁碟空間。一或多個配置單位會形成 Oracle ASM 擴充區塊。
另請參閱:Oracle Automatic Storage Management Administrator's Guide,瞭解有關 Oracle ASM 的詳細資訊
Oracle ASM 執行環境
Oracle ASM 執行處理是管理 Oracle ASM 磁碟的特殊 Oracle 執行處理。
Oracle ASM 與資料庫執行處理都需要共用 Oracle ASM 磁碟群組中磁碟的存取權。Oracle ASM 執行處理會管理磁碟群組的描述資料,並提供檔案配置資訊給資料庫執行處理。資料庫執行處理會直接將 I/O 導向 Oracle ASM 磁碟,而不需要透過 Oracle ASM 執行處理。
Oracle ASM 執行處理的建立方式與資料庫執行處理使用的技術相同。例如,Oracle ASM 執行處理有一個系統全域區域 (SGA) 和類似於資料庫執行處理的背景處理作業。不過,Oracle ASM 執行處理無法掛載資料庫,而且執行的工作比資料庫執行處理少。圖 14-3 顯示具有一個 Oracle ASM 執行處理和兩個資料庫執行處理的單一節點組態,每個執行處理與不同的單一執行處理資料庫相關聯。Oracle ASM 執行處理會管理描述資料,並為儲存兩個資料庫資料的 Oracle ASM 檔案提供空間配置。一個 Oracle ASM 磁碟群組有四個 Oracle ASM 磁碟,另一個磁碟有兩個磁碟。兩個資料庫執行處理都可以存取磁碟群組。
圖 3:Oracle ASM 執行處理與資料庫執行處理

另請參閱:Oracle Automatic Storage Management Administrator's Guide 以進一步瞭解 Oracle ASM
Oracle 永久記憶體檔案庫 (PMEM 檔案庫)
PMEM 是位元組可定址的永久記憶體。Oracle 永久記憶體檔案存放區 (PMEM 檔案存放區) 可以儲存資料檔、線上重做日誌檔以及控制檔。
查詢可以從 PMEM 直接讀取位元組,而不需要先將區塊移轉至資料庫緩衝區快取。此高效能機制可避免資料備援和不必要的 I/O。注意: PMEM 檔案存放區無法儲存追蹤檔、稽核檔或伺服器參數檔。PMEM 支援的檔案類型與 Oracle ASM 的類型類似。
-
直接對應的緩衝區快取:在傳統的儲存金字塔中,PMEM 位於 DRAM (非永久) 和 Flash (永久性) 之間。
-
PMEM 檔案存放區的檔案系統介面 PMEM 檔案存放區會在使用者空間 (FUSE) 中實行稱為「檔案系統」的協定。
-
PMEM 檔案存放區的使用者介面:若要建立 PMEM 檔案存放區,請使用
CREATE PMEM FILESTORE命令。
直接對應的緩衝區快取
在傳統的儲存金字塔中,PMEM 位於 DRAM (非永久) 和 Flash (非揮發性) 之間。
圖 4:儲存金字塔

資料庫緩衝區快取位於 DRAM 中。Oracle 處理作業會對 PMEM 檔案存放區中對應至資料庫緩衝區快取的區塊擁有可直接位元組調整的存取。當您將資料檔放置在 PMEM 檔案存放區時,系統會自動呼叫對應機制。
Oracle AI Database 使用內部演算法來決定是否將資料區塊從 PMEM 檔案存放區移轉至 DRAM。移轉的典型原因包括 DML 修改、讀取一致性,以及快速存取熱門資料區塊。
另請參閱:「 DRAM 與 PMEM 緩衝區」
PMEM 檔案存放區的檔案系統介面
PMEM 檔案存放區會在使用者空間 (FUSE) 中實行名為 Filesystem 的協定。
FUSE 讓無權限的作業系統使用者 (例如 Oracle AI Database 軟體擁有者) 能夠建立及管理檔案系統及其中的目錄與檔案。例如,您可以使用 cp、rm 和 ls 等指令。
典型的檔案系統使用原始儲存體作為後備存放區,而 PMEM 檔案存放區則是從 PMEM DAX 檔案系統中的原生作業系統檔案取得儲存體。這個檔案稱為備份檔,在作業系統中是以檔案形式顯示。PMEM Filestore 會細分備份檔案中的儲存體,並將其呈現為本機檔案系統。
另請參閱:
- Oracle AI Database Administrator's Guide,瞭解 PMEM 影片庫的詳細資訊
PMEM 檔案存放區的使用者介面
若要建立 PMEM 檔案存放區,請使用 CREATE PMEM FILESTORE 命令。
PMEM 檔案存放區會在建立後自動掛載。PMEM 檔案存放區會顯示在指定的掛載點之下,就像是原生檔案系統一樣。
PMEM_FILESTORE 初始化參數指定當資料庫執行處理啟動時,會自動掛載的 PMEM 檔案存放區。此參數設為一組排序的字串。參數值清單中的第一個字串是掛載 PMEM Filestore 的目錄。第二個字串是備份檔案。
V$PMEM_FILESTORE 顯示有關 PMEM 檔案存放區的描述資料。例如,您可以檢視掛載點的目錄路徑、備份檔案的檔案路徑,以及檔案存放區大小。
另請參閱:Oracle AI Database Administrator's Guide,瞭解如何建立和管理 PMEM 檔案存放區
資料檔總覽
在作業系統層次,Oracle AI Database 會將資料儲存在稱為資料檔的結構中。每個 Oracle 資料庫 (不論是 CDB 或 PDB) 都必須至少有一個資料檔。
-
資料檔的使用 Oracle AI Database 會將表格空間資料實際儲存在資料檔中。
-
永久與暫時資料檔:永久表格空間包含永久綱要物件。永久表格空間中的物件會儲存在資料檔中。
-
線上和離線資料檔:每個資料檔都是線上 (可用) 或離線 (無法使用)。
-
資料檔結構:Oracle AI Database 會為表格空間建立資料檔,方法是配置指定的磁碟空間大小加上資料檔標頭的負荷。執行 Oracle AI Database 的作業系統會先清除檔案中的舊資訊與授權,再將其配置給資料庫。
資料檔的使用
Oracle AI Database 實際將表格空間資料儲存在資料檔中。
每個未分割的綱要物件和物件的每個分割區都儲存在其本身的區段中,而此區段僅屬於一個表格空間。例如,非分割表格的資料儲存在單一區段中,而單一區段則是儲存在同一個表格空間中。表格空間與資料檔極為相關,但有很重要的差異:
-
每個表格空間都是由一或多個符合執行 Oracle AI Database 之作業系統的資料檔所組成。
-
資料庫的資料會集體儲存於資料庫每個表格空間中的資料檔。
-
區段可以跨一或多個資料檔,但不能跨多個表格空間。
-
CDB 必須有
SYSTEM和SYSAUX表格空間。CDB 內的每個 PDB 都有它自己的SYSTEM和SYSAUX表格空間。Oracle AI Database 會在建立資料庫時,自動為SYSTEM表格空間配置任何資料庫的第一個資料檔。SYSTEM表格空間包含資料說明,這是一組包含資料庫描述資料的表格。通常,資料庫也會有一個還原表格空間和一個暫時表格空間 (通常稱為TEMP)。
下圖顯示表格空間、資料檔以及區段之間的關係。
圖 5:資料檔與表格空間

另請參閱:
永久與暫時資料檔
永久表格空間包含永久綱要物件。永久表格空間中的物件會儲存在資料檔中。
暫時表格空間只包含階段作業期間的綱要物件。本機管理的暫時表格空間含有暫存檔案 (暫存檔),這些暫存檔是專門用來將資料儲存於雜湊、排序以及其他作業的特殊檔案。當記憶體中的空間不足時,暫存檔也會儲存結果集資料。
暫存檔與永久資料檔類似,但有下列例外:
-
永久資料庫物件 (例如表格) 絕對不會儲存在暫存檔中。
-
暫存檔一律會設為
NOLOGGING模式,這表示它們從未產生重做。媒體復原無法辨識暫存檔。 -
您無法將暫存檔設為唯讀。
-
您無法使用
ALTERDATABASE敘述句建立暫存檔。 -
當您建立或調整暫存檔的大小時,不一定會保證指定檔案大小的磁碟空間配置。在 Linux 與 UNIX 等檔案系統上,暫存檔會建立為稀疏檔案。在此情況下,系統會在建立或重新調整檔案大小時配置磁碟區塊,但會在第一次存取區塊時配置這些區塊。
注意:稀疏檔案可建立及調整快速暫存檔的大小;不過,當稍後存取暫存檔時,磁碟可能會耗盡空間。
-
暫時檔案資訊會顯示在資料說明視觀表
DBA_TEMP_FILES和動態效能視觀表V$TEMPFILE中,但不會顯示在DBA_DATA_FILES或V$DATAFILE視觀表中。
另請參閱:
-
「暫存表格空間」
-
Oracle AI Database Administrator's Guide,瞭解如何管理暫存檔
線上和離線資料檔
每個資料檔皆為線上 (可用) 或離線 (無法使用)。
您可以將個別資料檔或暫存檔離線或讓它們上線,以變更其可用性。資料庫必須先讓離線資料檔上線,才能存取這些資料檔。
您可能會因為許多原因而離線取得資料檔,包括執行離線備份或區塊損毀。如果資料庫無法寫入資料檔,則資料庫會自動將該資料檔設為離線。
與資料檔一樣,表格空間本身就是離線或線上。當您在線上表格空間中將資料檔離線時,表格空間本身會維持在線上狀態。如果表格空間本身離線,您可以將表格空間的所有資料檔暫時無法使用。
從 Oracle Database 12c 開始,您可以在資料庫開啟並存取檔案時,使用 ALTER DATABASE MOVE DATAFILE 敘述句將線上資料檔從一個實體檔案移至另一個實體檔案。您可以使用此技術來達成下列目標:
-
將表格空間從一種儲存體移至另一種儲存體
-
將不常存取的資料檔搬移至較低成本的儲存體
-
將表格空間設為唯讀,並將其資料檔移到寫入儲存體,例如寫入一次讀取多 (WORM) 磁碟機
-
將資料庫移至 Oracle ASM
另請參閱:
-
Oracle AI Database Administrator's Guide,瞭解如何更改資料檔可用性
-
Oracle AI Database Administrator's Guide,瞭解如何移動線上資料檔
-
Oracle AI Database SQL Language Reference,瞭解
ALTER DATABASE . . . MOVE DATAFILE
資料檔結構
Oracle AI Database 會為表格空間建立資料檔,方法是配置指定的磁碟空間大小加上資料檔標頭的負荷。執行 Oracle AI Database 的作業系統會先清除檔案中的舊資訊與授權,再將其配置給資料庫。
資料檔標頭包含資料檔的相關描述資料,例如資料檔的大小與 checkpoint SCN 。每個標頭都包含一個絕對檔案編號,可唯一識別資料庫內的資料檔,以及一個相對檔案編號 (可唯一識別表格空間內的資料檔)。
Oracle AI Database 首次建立資料檔時,配置的磁碟空間會格式化,但不會包含使用者資料。不過,資料庫會保留空間,以便保留未來關聯表格空間區段的資料。當資料在表格空間中成長時,Oracle AI Database 會使用資料檔中的可用空間來配置區段的擴充區塊。
下圖說明資料檔中不同類型的空間。您可以使用擴充區塊,這表示它們包含區段資料或自由,這表示它們可以重複使用。一段時間後,更新和刪除表格空間內的物件可以建立空白空間的口袋,讓新資料無法單獨重複使用。此類型的空白空間稱為分散的可用空間。
圖 6:資料檔中的空間

另請參閱:Oracle AI Database Administrator's Guide,瞭解如何檢視資料檔資訊
控制檔總覽
資料庫控制檔是小型的二進位檔案,僅與一個 CDB 相關聯。
每個 CDB 都有一個唯一的控制檔,但允許多個相同的複本。PDB 沒有個別的控制檔。
-
使用控制檔:Oracle AI Database 會使用控制檔來尋找資料庫檔案,以及管理一般資料庫的狀態。
-
多個控制檔 Oracle AI Database 可讓多個相同的控制檔同時開啟並寫入同一個資料庫。透過在不同的磁碟上多工化控制檔,資料庫就可以達到備援的目的,進而避免發生單點失敗。
-
控制檔結構資料庫的相關資訊儲存在控制檔的不同區段中。每個區段都是關於資料庫層面的記錄集合。
控制檔的使用
Oracle AI Database 使用控制檔來尋找資料庫檔案,並管理一般資料庫的狀態。
控制檔包含下列資訊:
-
資料庫名稱和資料庫唯一 ID (DBID)
-
建立資料庫時戳
-
關於資料檔、線上重做日誌檔,以及存檔重做日誌檔的資訊
-
表格空間資訊
-
備份 RMAN
控制檔可作為下列用途:
-
該檔案包含開啟資料庫所需之資料檔、線上重做日誌檔等等的相關資訊。
控制檔會追蹤對資料庫的結構性變更。例如,當管理員新增、重新命名或刪除資料檔或線上重做日誌檔時,資料庫會更新控制檔以反映此變更。
-
它包含未開啟資料庫時必須存取的描述資料。
例如,控制檔包含復原資料庫所需的資訊,包括檢查點。檢查點指示重做串流中的 SCN ,此時將需要執行處理復原才能開始。檢查點 SCN 之前的每個已確認變更都會保證儲存在資料檔的磁碟上。檢查點處理作業至少每三秒鐘會在控制檔中記錄線上重做日誌中檢查點位置的相關資訊。
在資料庫使用期間,Oracle AI Database 會持續讀取和寫入控制檔,而且每當資料庫開啟時都必須可供寫入。例如,復原資料庫涉及從控制檔讀取資料庫中包含之所有資料檔的名稱。其他作業 (例如新增資料檔),則更新控制檔中儲存的資訊。
另請參閱:
-
「執行處理復原簡介」
-
Oracle AI Database Administrator's Guide,瞭解如何管理控制檔
多個控制檔
Oracle AI Database 可讓多個相同的控制檔同時開啟,並寫入同一個資料庫。透過在不同的磁碟上多工化控制檔,資料庫就可以達到備援的目的,進而避免發生單點失敗。注意:Oracle 建議您在不同的磁碟上維護多個控制檔複本。
如果控制檔變成無法使用,則資料庫執行處理會在嘗試存取損毀的控制檔時失敗。當有其他目前的控制檔複本時,您可以重新掛載資料庫並開啟該資料庫,而不需要媒體復原。不過,如果遺失資料庫的所有控制檔,資料庫執行處理就會失敗,而且需要進行媒體復原。如果因為目前的複本無法使用,而必須使用控制檔的舊版備份,媒體復原就無法直接執行。
另請參閱:
-
Oracle AI Database Administrator's Guide,瞭解如何維護多個控制檔
-
Oracle AI Database Backup and Recovery User's Guide,瞭解如何備份和還原控制檔
控制檔結構
關於資料庫的資訊儲存在控制檔的不同區段中。每個區段都是一組關於資料庫層面的記錄。
例如,控制檔中的一個區段會追蹤資料檔並包含一組記錄,每個資料檔各有一個記錄。每個區段都儲存在多個邏輯控制檔區塊中。記錄可以跨區段內的區塊。
控制檔包含下列類型的記錄:
-
循環重複使用記錄
循環重複使用記錄包含可視需要覆寫的非重要資訊。當所有可用的記錄槽位都已滿時,資料庫會展開控制檔以容納新記錄,或覆寫最舊的記錄。範例包括存檔重做日誌檔與 RMAN 備份的相關記錄。
-
非循環重複使用記錄
非循環重複使用記錄包含不常變更且無法覆寫的重要資訊。資訊的範例包括表格空間、資料檔、線上重做日誌檔,以及重做繫線。除非將對應的物件從表格空間刪除,否則 Oracle AI Database 絕對不會重複使用這些記錄。
您可以查詢動態效能視觀表 (亦稱為 V$ 視觀表),以檢視儲存在控制檔中的資訊。例如,您可以查詢 V$DATABASE 以取得資料庫名稱和 DBID。不過,只有資料庫能夠修改控制檔中的資訊。
讀取和寫入控制檔區塊與讀取和寫入資料區塊不同。對於控制檔,Oracle AI Database 會直接從磁碟讀取和寫入程式整體區域 (PGA)。每個處理作業都會為控制檔區塊配置特定數量的 PGA 記憶體。
另請參閱:
-
Oracle AI Database Reference,瞭解
V$CONTROLFILE_RECORD_SECTION檢視 -
Oracle AI Database Reference,瞭解
CONTROL_FILE_RECORD_KEEP_TIME初始化參數
線上重做日誌總覽
要復原的最重要結構是線上重做日誌,它是由兩個或兩個以上的預先配置檔案所組成,用來在發生變更時儲存資料庫的變更。線上重做日誌會記錄對資料檔的變更。
-
使用線上重做日誌:資料庫會維護線上重做日誌檔,以防止資料遺失。尤其是在執行處理失敗後,線上重做日誌檔可讓 Oracle AI Database 復原尚未寫入資料檔的已確認資料。
-
Oracle AI Database 如何寫入線上重做日誌:資料庫執行處理的線上重做日誌稱為重做繫線。
-
線上重做日誌的結構「線上重做」日誌檔包含重做記錄。
使用線上重做日誌
資料庫會維護線上重做日誌檔來防止資料遺失。尤其是在執行處理失敗後,線上重做日誌檔可讓 Oracle AI Database 復原尚未寫入資料檔的已確認資料。
伺服器處理作業會將每一筆交易同步地寫入重做日誌緩衝區,LGWR 處理作業接著會寫入至線上重做日誌。線上重做日誌的內容包括未確認的交易,以及綱要與物件管理敘述句。
當資料庫對還原區段進行變更時,資料庫也會將這些變更寫入線上重做日誌。因此,線上重做日誌一律會包含永久物件的還原資料。您可以設定資料庫將暫時物件的所有還原資料儲存在暫時的還原區段中,這樣可以節省空間並提升效能,或者讓資料庫將永久和暫時還原資料儲存在線上重做日誌中。
Oracle AI Database 僅使用線上重做日誌進行復原。不過,管理員可以在 Oracle LogMiner 公用程式中透過 SQL 介面查詢線上重做日誌檔。重做日誌檔是一些有用的資料庫活動歷史資訊來源。
另請參閱:
-
「執行處理復原簡介」
-
「暫時還原區段」
-
「處理作業架構」可瞭解 Oracle 處理作業
-
Oracle AI Database Reference,瞭解
TEMP_UNDO_ENABLED初始化參數
Oracle AI Database 如何寫入線上重做日誌
資料庫執行處理的線上重做日誌稱為重做繫線。
在單一執行處理組態中,只有一個執行處理會存取資料庫,因此只會顯示一個重做繫線。不過,在 Oracle Real Application Clusters (Oracle RAC) 組態中,多個執行處理會同時存取資料庫,每個執行處理都有自己的重做繫線。每個執行處理的個別重做繫線可避免競爭單一組的線上重做日誌檔。
線上重做日誌是由兩個或兩個以上的線上重做日誌檔所組成。Oracle AI Database 至少需要兩個檔案,以保證在清除或封存其他檔案時,一律可以寫入一個檔案。
-
線上重做日誌切換:Oracle AI Database 一次只使用一個線上重做日誌檔來儲存從重做日誌緩衝區寫入的記錄。
-
線上重做日誌檔的多個複本 Oracle AI Database 可在個別位置自動維護兩個或兩個以上的相同線上重做日誌複本。
-
存檔重做日誌檔:存檔重做日誌檔是線上重做日誌群組中填滿成員的複本。
另請參閱:Oracle Real Application Clusters Administration and Deployment Guide,瞭解 Oracle RAC 中的線上重做日誌群組
線上重做日誌切換
Oracle AI Database 一次只使用一個線上重做日誌檔,用於儲存從重做日誌緩衝區寫入的記錄。
日誌寫入器處理作業 (LGWR) 處理作業主動寫入的線上重做日誌檔稱為目前的線上重做日誌檔。
當資料庫停止寫入一個線上重做日誌檔並開始寫入另一個線上重做日誌檔時,就會發生日誌切換。一般而言,當目前的線上重做日誌檔已滿且必須繼續寫入時,就會發生切換。不過,您可以設定定期發生日誌切換,不管目前的線上重做日誌檔是否已填滿,然後手動強制進行日誌切換。
日誌寫入器以循環方式寫入線上重做日誌檔。當日誌寫入器填入最後一個可用的線上重做日誌檔時,處理作業會寫入第一個日誌檔,並重新啟動週期。圖 14-7 說明重做日誌的循環寫入。
圖 7:線上重做日誌檔的重複使用

圖 14-7 中的數字顯示 LGWR 寫入每個線上重做日誌檔的順序。當日誌切換和日誌寫入器開始寫入時,資料庫會指派一個新的日誌序號給每個檔案。當資料庫重複使用線上重做日誌檔時,此檔案會接收下一個可用的日誌序號。
視存檔模式而定,已填入的線上重做日誌檔可以重複使用:
-
如果停用存檔功能,這表示資料庫處於
NOARCHIVELOG模式,則當資料庫寫入器 (DBW) 檢查其記錄的變更被磁碟的檢查點 (寫入) 之後,就可以使用填滿的線上重做日誌檔。 -
如果啟用存檔功能 (這表示資料庫處於 ARCHIVELOG 模式 ),則在將變更寫入資料檔並存檔檔案之後,即可對日誌寫入器使用已填滿的線上重做日誌檔。
在某些情況下,記錄寫入器可能會阻止重複使用現有的線上重做日誌檔。執行處理復原需要有作用中線上重做日誌檔,執行處理復原不需要有非作用中線上重做日誌檔。此外,有可能正在清除線上重做日誌檔。
另請參閱:
-
「背景處理作業簡介」
-
Oracle AI Database Administrator's Guide,瞭解如何管理線上重做日誌
線上重做日誌檔的多個複本
Oracle AI Database 可在不同位置自動維護兩個或兩個以上的相同線上重做日誌複本。
線上重做日誌群組是由線上重做日誌檔與其冗餘複本所組成。每個相同的複本都是線上重做日誌群組的成員。每個群組都是由數字所定義,例如群組 1、群組 2 等等。
維護線上重做日誌群組的多個成員,可避免重做日誌的遺失。理想的方式是,成員的位置應該位於不同的磁碟上,因此某個磁碟的失敗並不會造成整個線上重做日誌的遺失。
在圖 14-8 中,A_LOG1 和 B_LOG1 是群組 1 的相同成員,而 A_LOG2 和 B_LOG2 是群組 2 的相同成員。群組中的每個成員的大小必須相同。LGWR 會並行寫入群組 1 (成員 A_LOG1 和 B_LOG1),然後同時寫入群組 2 (成員 A_LOG2 和 B_LOG2),接著寫入群組 1,依此類推。LGWR 一律不會同時寫入至不同群組的成員。
圖 8:多份線上重做日誌檔複本

備註:Oracle 建議您多工處理線上重做日誌。如果需要復原,遺失的日誌檔可能會災難性。當您對線上重做日誌進行多工處理時,資料庫必須增加其所執行之 I/O 的數量。視您的系統而定,此額外 I/O 可能會影響整體資料庫效能。
另請參閱:
-
Oracle AI Database Administrator's Guide,瞭解如何維護多個線上重做日誌檔複本
-
Oracle Data Guard Concepts and Administration,瞭解 Data Guard 組態成員之間自動傳輸重做資料
存檔的重做日誌檔
存檔重做日誌檔是線上重做日誌群組中已滿成員的複本。
存檔重做日誌檔不會被視為資料庫的一部分。而是由資料庫建立並寫入使用者指定位置的線上重做日誌檔,複本就是離線複本。
存檔重做日誌檔是備份與復原策略的重要部分。您可以使用存檔重做日誌檔來執行下列作業:
-
復原資料庫備份
-
更新待命資料庫
-
使用 Oracle LogMiner 公用程式取得資料庫歷史記錄的相關資訊
產生存檔重做日誌檔的作業稱為存檔。此為自動或手動作業。只有在資料庫處於 ARCHIVELOG 模式時才有可能。
存檔重做日誌檔包含重做項目與線上重做日誌群組之相同成員的日誌序號。在線上重做日誌檔的多個複本中,檔案 A_LOG1 和 B_LOG1 是群組 1 的相同成員。如果資料庫處於 ARCHIVELOG 模式,且已啟用自動存檔功能,則存檔器處理作業 (ARCn) 會將其中一個檔案存檔。如果 A_LOG1 已損毀,則程序可以封存 B_LOG1。存檔重做日誌包含從您啟用存檔功能開始,所存在之每個重做日誌群組的複本。
另請參閱:
-
Oracle AI Database Utilities 將瞭解 Oracle LogMiner
-
Oracle AI Database Administrator's Guide,瞭解如何管理存檔重做日誌
-
Oracle Data Guard Concepts and Administration,瞭解如何設定待命重做日誌存檔
線上重做日誌的結構
線上重做日誌檔包含重做記錄。
重做記錄是由一組變更向量所組成,每個向量都描述了對資料區塊所做的變更。例如,更新 employees 表格中的薪資會產生一個重做記錄,描述表格之資料區段區塊的變更、還原區段資料區塊,以及還原區段的交易表格。
重做記錄包含變更的所有相關描述資料,包括:
-
變更的 SCN 和時戳
-
產生變更之交易的交易 ID
-
確認交易時的 SCN 和時戳 (如果已確認)
-
進行變更的作業類型
-
已修改資料區段的名稱和類型
另請參閱:「資料區塊概要」