Oracle AI Database 執行處理
本章說明 Oracle 資料庫執行處理的本質、與執行處理關聯的參數和診斷檔案,以及在執行處理建立和開啟和關閉資料庫時發生的狀況。
注意:在本章中,「資料庫」一詞是指多雲端用戶容器資料庫 (CDB),除非另有說明。
-
Oracle AI Database 執行處理簡介:資料庫執行處理是一組管理資料庫檔案的記憶體結構。
-
啟動和關閉資料庫執行處理簡介:資料庫執行處理提供使用者存取資料庫的權限。執行處理與資料庫可處於各種狀態。
-
檢查點簡介 檢查點是一種在一致的資料庫關閉、執行處理復原以及一般 Oracle AI Database 作業中的重要機制。
-
執行處理復原是將線上重做日誌中的記錄套用至資料檔,以重新建構在最近檢查點之後所做的變更。
-
參數檔簡介:若要啟動資料庫執行處理,Oracle AI Database 必須讀取伺服器參數檔 (建議使用) 或文字初始化參數檔 (舊有實行)。這些檔案包含組態參數清單。
-
診斷檔案簡介 Oracle AI Database 包含錯誤診斷基礎架構,可防止、偵測、診斷及解決資料庫問題。問題包括程式碼錯誤、描述資料損毀以及客戶資料損毀等嚴重錯誤。
Oracle AI Database 執行處理簡介
資料庫執行處理是一組管理資料庫檔案的記憶體結構。
在實體層次上,CDB 是由 CREATE DATABASE 敘述句所建立的一組磁碟檔案。一個 CDB 包含一或多個使用者建立的 PDB。一個 PDB 會在屬於 CDB 的完整資料檔集中包含自己的一組資料檔。資料庫執行處理會管理與 CDB 及其 PDB 相關的資料,並為其使用者提供服務。
每個執行中的 CDB 至少會與一個 Oracle 資料庫執行處理相關聯。因為執行處理存在於記憶體中,而資料庫 (在最窄的辭彙中) 是磁碟上的一組檔案,所以執行處理可以不存在資料庫,而資料庫也必須沒有執行處理。
-
資料庫執行處理結構啟動執行處理時,Oracle AI Database 會配置稱為系統整體區域 (SGA) 的記憶體區域,並啟動一或多個背景處理作業。
-
資料庫執行處理組態 Oracle AI Database 是以單一執行處理組態或 Oracle Real Application Clusters (Oracle RAC) 組態執行。這些組態互斥。
-
讀取 / 寫入和唯讀執行處理:每個資料庫執行處理都是讀取 / 寫入或唯讀的。
-
資料庫執行處理的持續時間:資料庫執行處理會在使用
STARTUP命令建立時開始,並在資料庫執行處理終止時結束。 -
識別資料庫執行處理:單一主機上可以有多個資料庫執行處理。因此,您必須有指定要存取之執行處理的方法。
資料庫執行處理結構
啟動執行處理時,Oracle AI Database 會配置稱為系統整體區域 (SGA) 的記憶體區域,並啟動一或多個背景處理作業。
SGA 有多種用途,包括:
-
維護多個處理作業與繫線並行存取的內部資料結構
-
快取從磁碟讀取的資料區塊
-
先緩衝處理重做資料,再將它寫入線上重做日誌檔
-
儲存 SQL 執行計畫
在單一電腦上執行的 Oracle 處理作業會共用 SGA。Oracle 處理作業與 SGA 的關聯方式會根據作業系統而有所不同。
資料庫執行處理也包含背景處理作業與伺服器處理作業。每個處理作業都有自己的專用記憶體,視為執行處理的一部分。伺服器處理作業終止時,執行處理會繼續運作。
下圖顯示 Oracle 資料庫執行處理的主要元件。
圖 1:資料庫執行處理

另請參閱:
資料庫執行處理設定
Oracle AI Database 是以單一執行處理組態或 Oracle Real Application Clusters (Oracle RAC) 組態執行。這些組態互斥。
在單一執行處理組態中,資料庫與資料庫執行處理之間存在一對一關係。在 Oracle RAC 中,資料庫和資料庫執行處理之間存在一對多關係。
下圖顯示可能的資料庫執行處理組態。
圖 2:資料庫執行處理組態

無論是在單一執行處理或 Oracle RAC 組態中,資料庫執行處理一次只會與一個資料庫相關聯。您可以啟動一個資料庫執行處理,以及使用掛載 (將執行處理與執行處理建立關聯) 一個資料庫,但不能同時掛載兩個資料庫與同一個執行處理。注意:除非另有說明,否則本章討論單一執行處理資料庫組態。
多個執行處理可以同時在同一部電腦上執行,每個執行處理都可以存取自己的資料庫。例如,電腦可以代管兩個不同的資料庫:prod1 和 prod2。一個資料庫執行處理管理 prod1,另一個執行處理則管理 prod2。
另請參閱:Oracle Real Application Clusters Administration and Deployment Guide,瞭解 Oracle RAC 的特定資訊
讀取 / 寫入和唯讀執行處理
每個資料庫執行處理都是唯讀 / 寫入或唯讀的。
讀取 / 寫入資料庫執行處理 (預設值) 可以處理 DML 並支援從從屬端應用程式的直接連線。相反地,唯讀資料庫執行處理可以處理查詢,但不支援修改 DML (UPDATE、DELETE、INSERT 和 MERGE) 或直接從屬端連線。
注意:除非本手冊另有說明,否則所有對資料庫執行處理的參照都是讀取 / 寫入執行處理。
在舊版中,所有資料庫執行處理 (除非它們存取待命資料庫) 都是讀取 / 寫入。從 Oracle Database 12c 版本 2 (12.2) 開始,唯讀和讀取 / 寫入執行處理可以共存於單一資料庫中。此組態對於同時查詢和修改資料的平行 SQL 敘述句非常有用,因為讀取 / 寫入執行處理和唯讀執行處理都可以在讀取 / 寫入執行處理修改時查詢。
與讀取 / 寫入執行處理不同,唯讀執行處理具有下列特性:
-
只能開啟已由讀取 / 寫入執行處理開啟的資料庫
-
停用許多背景處理作業,包括不需要的檢查點和存檔器處理作業
-
可在沒有線上重做日誌的情況下掛載停用的重做繫線或繫線
若要將執行處理指定為唯讀,請將 INSTANCE_MODE 初始化參數設為 READ_ONLY。參數的預設值為 READ_WRITE。
另請參閱:
-
「背景處理作業簡介」可進一步瞭解檢查點和存檔器背景處理作業
-
「線上重做日誌總覽」
-
Oracle AI Database Reference,瞭解有關
INSTANCE_MODE初始化參數的詳細資訊
資料庫執行處理的持續時間
資料庫執行處理會在使用 STARTUP 命令建立時開始,並在資料庫執行處理終止時結束。
在此期間,資料庫執行處理本身只能與一個資料庫建立關聯。此外,執行處理只能掛載一次資料庫,只需將其關閉一次,然後只開啟一次。資料庫關閉或關閉之後,您必須啟動不同的執行處理來掛載和開啟此資料庫。
下表說明嘗試重新開啟先前關閉之資料庫的資料庫執行處理。
表格 1 執行處理的持續時間
| 對帳單 | 說明 |
|---|---|
|
STARTUP 命令會建立掛載並開啟資料庫的執行處理。 |
|
此查詢顯示啟動目前執行處理的時間。 |
|
執行處理會關閉資料庫並關閉,結束此執行處理的存留時間。 |
|
STARTUP 命令會建立新的執行處理並掛載並開啟資料庫。 |
|
此查詢顯示啟動目前執行處理的時間。不同的啟動時間顯示此執行處理與關閉資料庫的執行處理不同。 |
資料庫執行處理的識別
多個資料庫執行處理可以位於單一主機上。因此,您必須有指定要存取之執行處理的方法。Oracle 最佳彈性架構 (OFA) 規則是一組建立的組態準則,旨在確保有組織完善的 Oracle 安裝。本節中的範例假設 OFA 架構。
本節包含下列主題:
-
Oracle 基本目錄:Oracle 基本目錄儲存 Oracle 產品的二進位檔。
-
Oracle 本位目錄:Oracle 本位目錄是 Oracle 資料庫的軟體位置。
-
Oracle 系統 ID (SID) :系統 ID (SID) 是特定主機上 Oracle 資料庫執行處理的唯一名稱。另請參閱:Oracle AI Database Installation Guide for Linux,瞭解 OFA 的簡介
Oracle 基本目錄
Oracle 基本目錄儲存 Oracle 產品的二進位檔。
「Oracle 基本目錄」是 Oracle AI Database 安裝擁有者的資料庫本位目錄。主機上可以安裝許多 Oracle AI Database,以及許多 Oracle AI Database 軟體安裝擁有者。
下列範例顯示作業系統使用者帳戶 oracle 的 Oracle 基本目錄:
/u01/app/oracle
在前面的路徑中,/u01/ 是掛載點,/u01/app/ 是應用程式軟體的子樹狀結構。
另請參閱:Oracle AI Database Installation Guide for Linux,以取得 Oracle 基本目錄的簡介
Oracle 本位目錄
Oracle 本位目錄是 Oracle 資料庫的軟體位置。
您必須為每一個新的 Oracle AI Database 軟體安裝指定一個新的 Oracle 本位目錄。從 Oracle Database 21c 開始,Oracle 本位目錄是唯讀的。Oracle 本位目錄會儲存靜態檔案 (例如二進位檔)。
依照預設,Oracle 本位目錄是 Oracle 基本目錄 (ORACLE_BASE) 目錄樹狀結構中的子系。您可以在單一 Oracle 基本目錄的不同 Oracle 本位目錄中,在同一個主機上安裝此版本或舊版的資料庫軟體一次以上。不同版本且由不同使用者帳戶擁有的多個資料庫可以並行共存。
下列範例顯示三個不同 Oracle 本位目錄的完整路徑名稱,全都位於 /u01/app/oracle/ 的相同 Oracle 基本目錄中:
/u01/app/oracle/product/19.3.0/dbhome_1
/u01/app/oracle/product/19.3.0/dbhome_2
/u01/app/oracle/product/20.1.0/dbhome_1
Oracle 基本目錄 (/u01/app/oracle/) 後面的路徑名稱部分包括產品版本號碼 (例如 19.3.0) 和 Oracle 本位目錄相對目錄 (例如 dbhome_1)。/u01/app/oracle/product/19.3.0/ 目錄包含兩個個別的 Oracle 本位目錄:dbhome_1 和 dbhome_2。
Oracle 基本目錄本位目錄 (ORACLE_BASE_HOME) 目錄 (位於 ORACLE_BASE/homes/home_name) 會儲存 Oracle 本位目錄特定的動態檔案。Oracle 基本目錄組態目錄 (ORACLE_BASE_CONFIG) 是 Oracle 基本目錄中所有 Oracle 本位目錄共用的目錄,用來儲存執行處理特定的動態檔案。
在下列範例中,第一個路徑是 Oracle 本位目錄,第二個路徑是此 Oracle 本位目錄的 Oracle 基本目錄本位目錄:
/u01/app/oracle/product/20.1.0/dbhome_1
/u01/app/oracle/homes/dbhome_1
另請參閱:Oracle AI Database Installation Guide for Linux,瞭解 Oracle 本位目錄的簡介
Oracle 系統 ID (SID)
系統 ID (SID) 是特定主機上 Oracle 資料庫執行處理的唯一名稱。
在 UNIX 和 Linux 上,Oracle AI Database 會使用 SID 和 Oracle 本位目錄值來建立共用記憶體的金鑰。此外,Oracle AI Database 預設會使用 SID 來尋找初始化參數檔,該檔案會尋找資料庫控制檔等相關檔案。
在大多數平台上,ORACLE_SID 環境變數會設定 SID,而 ORACLE_HOME 變數則會設定 Oracle 本位目錄。連線至資料庫執行處理時,從屬端可以在 Oracle Net 連線中指定 SID,或是使用網路服務名稱。Oracle AI Database 會將網路服務名稱轉換為 ORACLE_HOME 和 ORACLE_SID。
執行處理特定的檔案會個別儲存在 Oracle 基本目錄中。名稱包含 SID 的檔案位於 Oracle 基本組態目錄 (ORACLE_BASE_CONFIG) 的 dbs 子目錄中。因此,您可以使用現有 Oracle 本位目錄中的軟體來建立資料庫,然後使用位於新 Oracle 本位目錄中的軟體來啟動此資料庫的執行處理。
另請參閱:
-
「服務名稱」
-
Oracle AI Database Administrator's Guide,瞭解如何指定 Oracle SID
資料庫執行處理啟動與關閉總覽
資料庫執行處理可讓使用者存取資料庫。執行處理與資料庫可處於各種狀態。
-
執行處理與資料庫啟動簡介:一般而言,您可以手動啟動執行處理,然後掛載並開啟資料庫,讓使用者可以使用該資料庫。您可以使用 SQL*Plus
STARTUP命令、Oracle Enterprise Manager (Enterprise Manager) 或 SRVCTL 公用程式來執行這些步驟。 -
資料庫和執行處理關閉簡介:在典型的使用案例中,您可以手動關閉資料庫,讓使用者在執行維護或其他管理作業時無法使用資料庫。您可以使用 SQL*Plus
SHUTDOWN命令或 Enterprise Manager 來執行這些步驟。
執行處理和資料庫啟動總覽
通常,您會手動啟動一個執行處理,然後掛載並開啟資料庫,讓它可供使用者使用。您可以使用 SQL*Plus STARTUP 命令、Oracle Enterprise Manager (Enterprise Manager) 或 SRVCTL 公用程式來執行這些步驟。
如果要使用 Oracle Net 啟動資料庫執行處理,必須符合下列條件:
-
資料庫會靜態地向 Oracle Net 監聽器註冊。
-
您的從屬端使用
SYSDBA權限連線到資料庫。
監聽器會建立專用伺服器,以啟動資料庫執行處理。
下圖顯示資料庫從關閉狀態進展到開啟狀態。
圖 3:執行處理與資料庫啟動順序

資料庫會在從關閉狀態繼續至開啟的資料庫狀態時,經歷下列階段。
表格 2 執行處理啟動的步驟
| 階段 | 掛載州別 | 說明 | 深入瞭解 |
|---|---|---|---|
| 1 | 執行處理已啟動,但未掛載資料庫 | 執行處理已啟動,但尚未與資料庫建立關聯。 | 如何啟動執行處理 |
| 2 | 資料庫已掛載 | 執行處理便會啟動,並透過讀取其控制檔與資料庫相關聯。使用者可以關閉資料庫。 | 「資料庫的掛載方式」 |
| 3 | 資料庫開啟 | 執行處理會啟動並與一個開啟的資料庫相關聯。授權的使用者可以存取資料檔中包含的資料。 | 「資料庫的開啟方式」 |
-
與管理員權限的連線:資料庫啟動和關閉是功能強大的管理選項,僅限於使用管理員權限連線至 Oracle AI Database 的使用者。
-
執行處理的啟動方式:當 Oracle AI Database 啟動執行處理時,執行處理會進入各個階段。
-
資料庫的掛載方式:執行處理會掛載資料庫,以建立資料庫與此執行處理的關聯。
-
資料庫的開啟方式:開啟已掛載的資料庫,即可供一般資料庫作業使用。
另請參閱:
-
「控制檔總覽」
-
Oracle AI Database Administrator's Guide,瞭解如何啟動執行處理
-
Oracle AI Database Administrator's Guide,瞭解如何使用 SRVCTL
與管理員權限的連線
資料庫啟動和關閉是功能強大的管理選項,僅限於使用管理員權限連線至 Oracle AI Database 的使用者。
一般使用者無法控制 Oracle 資料庫的目前狀態。視作業系統而定,下列其中一個條件會為使用者建立管理員權限:
-
使用者的作業系統權限可讓使用者使用管理員權限連線。
-
使用者會被授與特殊的系統權限,而資料庫會使用密碼檔透過網路來認證資料庫管理員。
下列特殊系統權限可讓您存取資料庫執行處理,即使資料庫未開啟也一樣:
-
SYSDBA -
SYSOPER -
SYSBACKUP -
SYSDG -
SYSKM
上述權限的控制不在資料庫本身。當您使用 SYSDBA 系統權限連線資料庫時,您位於 SYS 所擁有的綱要中。以 SYSOPER 身分連線時,您位於公用綱要中。SYSOPER 權限是 SYSDBA 權限的子集。
另請參閱:
-
Oracle AI Database Security Guide,瞭解預先定義的管理帳戶
-
Oracle AI Database Installation Guide,瞭解有關作業系統權限群組的更多資訊
如何啟動執行處理
當 Oracle AI Database 啟動實例時,它會繼續進行各階段。
階段如下:
-
搜尋平台特定預設位置中的伺服器參數檔,如果找不到文字初始化參數檔 (使用
SPFILE或PFILE參數指定STARTUP會覆寫預設行為) -
讀取參數檔以判斷初始化參數的值
-
根據初始化參數設定值配置 SGA
-
啟動 Oracle 背景處理作業
-
開啟警示日誌和追蹤檔,然後以有效的參數語法將所有明確的參數設定值寫入警示日誌
在此階段,沒有與執行處理關聯的資料庫。需要 NOMOUNT 狀態的案例包括建立資料庫以及建立特定備份與復原作業。
另請參閱:Oracle AI Database Administrator's Guide,瞭解如何使用伺服器參數檔來管理初始化參數
資料庫的掛載方式
執行處理會掛載資料庫,以將資料庫與此執行處理建立關聯。
若要掛載資料庫,執行處理會取得在 CONTROL_FILES 初始化參數中指定的資料庫控制檔名稱,並開啟檔案。Oracle AI Database 會讀取控制檔,以尋找資料檔的名稱,以及開啟資料庫時會嘗試存取的線上重做日誌檔。
在掛載的資料庫中,資料庫會關閉,而且只能供資料庫管理員存取。管理員可以在完成特定維護作業時關閉資料庫。不過,一般作業無法使用該資料庫。
如果 Oracle AI Database 允許多個執行處理同時掛載相同的資料庫,則 CLUSTER_DATABASE 初始化參數設定值可讓多個執行處理使用該資料庫。資料庫運作方式取決於以下設定:
-
如果第一個掛載資料庫的執行處理的
CLUSTER_DATABASE是false(預設),則只有此執行處理可以掛載資料庫。 -
如果第一個執行處理的
CLUSTER_DATABASE是true,則其他執行處理如果其CLUSTER_DATABASE參數設定值設為true,則可以掛載資料庫。可掛載資料庫的執行處理數目受建立資料庫時所指定的預先決定上限限制。
另請參閱:
-
Oracle AI Database Administrator's Guide,瞭解如何掛載資料庫
-
Oracle Real Application Clusters Administration and Deployment Guide,瞭解在單一資料庫使用多個執行處理的詳細資訊
資料庫的開啟方式
開啟掛載的資料庫,即可讓它供一般資料庫作業使用。
任何有效的使用者都可以連線至開啟的資料庫並存取其資訊。通常,資料庫管理員會開啟資料庫使其可供一般使用。
當您開啟資料庫時,Oracle AI Database 會執行下列動作:
-
在還原表格空間以外的表格空間中開啟線上資料檔
如果表格空間在先前關閉資料庫時為離線狀態,則當資料庫重新開啟時,表格空間及其對應的資料檔將會離線。
-
取得還原表格空間
如果有多個還原表格空間,則
UNDO_TABLESPACE初始化參數會指定要使用的還原表格空間。如果沒有設定此參數,就會選擇第一個可用的還原表格空間。 -
開啟線上重做日誌檔
-
唯讀模式:依照預設,資料庫會以讀取 / 寫入模式開啟。在此模式中,使用者可以對資料進行變更,並在線上重做日誌中產生重做。或者,您也可以使用唯讀模式開啟,以防止使用者交易的資料修改。
-
資料庫檔案檢查:當執行處理嘗試開啟資料庫時,或檔案存在但一致性測試失敗時,如果有任何資料檔或重做日誌檔不存在,資料庫就會傳回錯誤。可能需要進行媒體復原。
另請參閱:
-
Oracle AI Database Backup and Recovery User's Guide,瞭解有關資料修復的詳細資訊
唯讀模式
依照預設,資料庫會以讀取 / 寫入模式開啟。在此模式中,使用者可以對資料進行變更,並在線上重做日誌中產生重做。或者,您也可以使用唯讀模式開啟,以防止使用者交易的資料修改。注意:依照預設,實體待命資料庫會以唯讀模式開啟。
唯讀模式會將資料庫存取限制為唯讀交易,而這些交易無法寫入資料檔或線上重做日誌檔。不過,資料庫可以在不產生重做的情況下,執行會變更資料庫狀態的復原或作業。例如,在唯讀模式中:
-
資料檔可以離線並上線。不過,您無法將永久表格空間設為離線。
-
離線資料檔與表格空間都可以復原。
-
控制檔仍可供更新資料庫的狀態。
-
使用
CREATE TEMPORARY TABLESPACE敘述句建立的暫時表格空間會被讀取 / 寫入。 -
您可以繼續寫入作業系統稽核歷程檔、追蹤檔以及警示日誌。
另請參閱:
-
Oracle AI Database Administrator's Guide,瞭解如何以唯讀模式開啟資料庫
資料庫檔案檢查
當執行處理嘗試開啟資料庫時,如果有任何資料檔或重做日誌檔不存在,或者如果檔案存在但一致性測試失敗,資料庫就會回傳一個錯誤。可能需要進行媒體復原。
另請參閱:Oracle AI Database Backup and Recovery User's Guide,瞭解備份與復原的簡介
資料庫和執行處理關閉概要
在一般使用案例中,您可以手動關閉資料庫,讓使用者在執行維護或其他管理工作時無法使用資料庫。您可以使用 SQL*Plus SHUTDOWN 命令或 Enterprise Manager 來執行這些步驟。
下圖顯示從開啟狀態到一致關閉的進度。
圖 4:執行處理與資料庫關閉順序

每當開啟的資料庫持續關閉時,Oracle AI Database 就會自動執行下列步驟。
表格 3 一致關閉的步驟
| 階段 | 掛載州別 | 說明 | 深入瞭解 |
|---|---|---|---|
| 1 | 資料庫關閉 | 資料庫已掛載,但線上資料檔與重做日誌檔都會關閉。 | 「資料庫的關閉方式」 |
| 2 | 資料庫已卸載 | 執行處理已啟動,但不再與資料庫的控制檔相關聯。 | 「如何卸載資料庫」 |
| 3 | 資料庫執行處理已關閉 | 資料庫執行處理已不再啟動。 | 「執行處理如何關閉」 |
在執行處理失敗中,Oracle AI Database 不會執行上述所有步驟,也不會執行立即終止執行處理的 SHUTDOWN ABORT。
-
關閉模式:具有
SYSDBA或SYSOPER權限的資料庫管理員可以使用 SQL*PlusSHUTDOWN命令或 Enterprise Manager 來關閉資料庫。SHUTDOWN指令含有可決定關閉運作方式的選項。 -
如何關閉資料庫資料庫關閉作業是在資料庫關閉時隱含的。作業的本質取決於資料庫關閉是正常的還是異常。
-
資料庫卸載方式:關閉資料庫之後,Oracle AI Database 會卸載資料庫,以取消資料庫與執行處理的關聯。
-
執行處理如何關閉:資料庫關閉的最後一個步驟正在關閉執行處理。當資料庫執行處理關閉時,SGA 會停止佔用記憶體,而背景處理作業則會終止。另請參閱:Oracle AI Database Administrator's Guide,瞭解如何關閉資料庫
關機模式
具有 SYSDBA 或 SYSOPER 權限的資料庫管理員可以使用 SQL*Plus SHUTDOWN 命令或 Enterprise Manager 來關閉資料庫。SHUTDOWN 指令含有可決定關閉運作方式的選項。
下表摘要列出不同關閉模式的行為。
表格 4 資料庫關閉模式
| 資料庫行為 | 中止 | IMMEDIATE | 交易式 | 一般 |
|---|---|---|---|---|
| 允許新使用者連線 | 否 | 否 | 否 | 否 |
| 等待直到目前階段作業結束 | 否 | 否 | 否 | 是 |
| 等待直到目前交易結束 | 否 | 否 | 是 | 是 |
| 執行檢查點並關閉開啟的檔案 | 否 | 是 | 是 | 是 |
可能的 SHUTDOWN 敘述句為:
-
SHUTDOWN ABORT此模式適用於緊急情況,例如沒有其他形式的關閉成功時。這個關閉模式是最快的。不過,因為必須執行執行處理復原,才能使資料檔維持一致,所以後續開啟此資料庫可能需要較長的時間。
因為
SHUTDOWN ABORT不會檢查點開啟的資料檔,所以必須先進行執行處理復原,資料庫才能重新開啟。其他關閉模式則不需要執行處理復原,資料庫就可以重新開啟。注意:在 PDB 中,發出
SHUTDOWN ABORT等同於在 CDB 層次發出SHUTDOWN IMMEDIATE。 -
SHUTDOWN IMMEDIATE此模式通常是
SHUTDOWN ABORT旁邊最快的模式。Oracle AI Database 會終止任何執行中的 SQL 陳述式,並中斷使用者的連線。作用中交易會終止,且會倒回未確認的變更。 -
SHUTDOWN TRANSACTIONAL此模式可防止使用者啟動新的交易,但在關閉之前等待所有目前的交易完成。此模式可能需要很長的時間,視目前交易的性質而定。
-
SHUTDOWN NORMAL這是預設的關閉模式。資料庫會先等待所有連線的使用者中斷連線,再關閉。
另請參閱:
-
Oracle AI Database Administrator's Guide,瞭解不同的關閉模式
-
SQL*Plus User's Guide and Reference,瞭解
SHUTDOWN命令
資料庫的關閉方式
資料庫關閉是資料庫關閉中隱含的作業。作業的本質取決於資料庫關閉是正常的還是異常。
-
資料庫在正常關閉期間如何關閉:當資料庫在
SHUTDOWN中關閉時 (含ABORT以外的任何選項),Oracle AI Database 會將 SGA 中的資料寫入資料檔和線上重做日誌檔。 -
資料庫在異常關閉時如何關閉:如果發生
SHUTDOWN ABORT或異常終止,則開啟之資料庫的執行處理會關閉並即時關閉資料庫。
正常關閉期間資料庫的關閉方式
當資料庫在 SHUTDOWN 中關閉時 (含有 ABORT 以外的任何選項),Oracle AI Database 會將 SGA 中的資料寫入資料檔和線上重做日誌檔。
之後,資料庫會關閉線上資料檔與線上重做日誌檔。已經關閉離線表格空間的所有離線資料檔。當資料庫重新開啟時,任何離線表格空間都會保持離線。
在此階段,資料庫會關閉且無法進行一般作業。在關閉資料庫之後,控制檔仍會維持開啟。
資料庫在異常關閉期間的關閉方式
如果發生 SHUTDOWN ABORT 或異常終止,則開啟之資料庫的執行處理會關閉並即時關閉資料庫。
在異常關閉時,Oracle AI Database 不會將 SGA 緩衝區中的資料寫入資料檔與重做日誌檔。後續重新開啟資料庫需要執行處理復原,Oracle AI Database 會自動執行。
資料庫卸載方式
資料庫關閉之後,Oracle AI Database 會卸載資料庫,使其與執行處理取消關聯。
卸載資料庫之後,Oracle AI Database 會關閉資料庫的控制檔。此時,資料庫執行處理會維持在記憶體中。
執行處理關閉的方式
資料庫關閉的最後一個步驟正在關閉執行處理。當資料庫執行處理關閉時,SGA 會停止佔用記憶體,而背景處理作業則會終止。
在異常情況下,可能無法完全關閉資料庫執行處理。記憶體結構不能從記憶體移除,或是其中一個背景處理作業不能終止。當先前執行處理的其餘部分存在時,後續的執行處理啟動可能會失敗。在這類情況下,您可以強制啟動新執行處理,方法是移除上一個執行處理的其餘部分,然後啟動新的執行處理,或發出 SHUTDOWN ABORT 敘述句。
在某些情況下,處理程序清除本身可能會遇到錯誤,這可能會導致處理程序監視器 (PMON) 或執行處理被終止。動態初始化參數 INSTANCE_ABORT_DELAY_TIME 指定延遲內部產生之執行處理失敗的秒數。此延遲讓您有機會回應。資料庫會在起始延遲終止時,將訊息寫入警示日誌。在某些情況下,可以透過允許隔離某些資料庫資源,該執行處理可避免終止。
另請參閱:
-
Oracle AI Database Administrator's Guide,瞭解有關關閉資料庫的詳細資訊
-
Oracle AI Database Reference,瞭解有關
INSTANCE_ABORT_DELAY_TIME初始化參數的詳細資訊
檢查點概要
檢查點是一致的資料庫關閉、執行處理復原以及 Oracle AI Database 作業的關鍵機制。
此術語具有下列相關意義:
-
表示檢查點位置的資料結構,此為重做串流中必須開始執行處理復原的 SCN
檢查點位置是由資料庫緩衝區快取中最舊的已修改緩衝區所決定。檢查點位置會作為重做串流的指標,並儲存在控制檔與每個資料檔標頭中。
-
將資料庫緩衝區快取中修改過的資料庫緩衝區寫入磁碟
-
檢查點的目的 Oracle AI Database 使用檢查點達成多個目標。
-
Oracle AI Database 起始檢查點時:檢查點處理作業 (CKPT) 負責將檢查點寫入資料檔標頭和控制檔。另請參閱:系統變更編號 (SCN)
檢查點的目的
Oracle AI Database 使用檢查點達成多個目標。
目標包含下列項目:
-
減少發生執行處理或媒體失敗時復原所需的時間
-
確定資料庫定期將緩衝區快取中修改過的緩衝區寫入磁碟
-
確定資料庫在一致的關閉期間將所有確認的資料寫入磁碟
Oracle AI Database 啟動檢查點時
檢查點處理作業 (CKPT) 負責將檢查點寫入資料檔標頭與控制檔。
檢查點發生在各種情況下。例如,Oracle AI Database 使用下列類型的檢查點:
-
繫線檢查點
資料庫會在特定目標之前,將特定繫線中重做修改的所有緩衝區寫入磁碟。資料庫中所有執行處理的一組繫線檢查點都是資料庫檢查點。執行緒檢查點發生於下列情況:
-
一致的資料庫關閉
-
ALTER SYSTEM CHECKPOINT敘述句 -
線上重做日誌切換
-
ALTER DATABASE BEGIN BACKUP敘述句
-
-
表格空間與資料檔檢查點
資料庫會在特定目標之前,將重做修改的所有緩衝區寫入磁碟。表格空間檢查點是一組資料檔檢查點,表格空間中的每個資料檔各一個檢查點。這些檢查點發生在各種情況下,包括將表格空間設為唯讀或讓它離線、縮小資料檔或執行
ALTER TABLESPACE BEGIN BACKUP。 -
增量檢查點
增量檢查點是一種繫線檢查點,其中的部分目的在於避免在線上重做日誌交換器寫入大量的區塊。DBW 至少每三秒鐘會檢查一次,以判斷它是否有工作需要。當 DBW 寫入已修改緩衝區時,會前進檢查點位置,讓 CKPT 將檢查點位置寫入控制檔,但不會寫入資料檔標頭。
其他類型的檢查點包括刪除或截斷綱要物件時的執行處理和媒體復原檢查點和檢查點。
另請參閱:
-
Oracle Real Application Clusters Administration and Deployment Guide,瞭解 Oracle RAC 中全域檢查點的相關資訊
執行處理復原總覽
執行處理復原是將線上重做日誌中的記錄套用至資料檔,以重新建構在最近檢查點之後所做的變更。
當管理員嘗試開啟先前不一致關閉的資料庫時,就會自動進行執行處理復原。
-
執行處理復原的用途執行處理復原可確保資料庫在執行處理失敗後處於一致的狀態。由於 Oracle AI Database 如何管理資料庫變更,因此資料庫的檔案可以保留在不一致的狀態。
-
Oracle AI Database 執行執行處理復原時:是否需要執行處理復原,取決於重做繫線的狀態。
-
執行處理復原的檢查點重要性執行處理復原會使用檢查點來判斷哪些變更必須套用至資料檔。檢查點位置可確保將 SCN 比檢查點 SCN 所確認的每個變更都儲存至資料檔。
-
執行處理復原階段:執行處理復原的第一個階段稱為快取復原或向前捲動,然後將線上重做日誌中記錄的所有變更重新套用至資料檔。
執行處理復原的用途
執行處理復原可確保資料庫在執行處理失敗後處於一致的狀態。由於 Oracle AI Database 如何管理資料庫變更,因此資料庫的檔案可以保留在不一致的狀態。
重做繫線是執行處理產生之所有變更的記錄。單一執行處理資料庫有一個重做繫線,而 Oracle RAC 資料庫則有多個重做繫線,每個資料庫執行處理各有一個重做繫線。
確認交易時,日誌寫入器處理作業 (LGWR) 會將記憶體中剩餘的重做項目,以及將交易 SCN 寫入線上重做日誌。不過,資料庫寫入器 (DBW) 處理作業會在最有效率的時候,將修改過的資料區塊寫入資料檔。因此,在確認的變更尚不存在於資料檔中時,資料檔中可能會暫時存在未確認的變更。
如果開啟之資料庫的執行處理因 SHUTDOWN ABORT 敘述句或異常終止而失敗,則可能會產生下列情況:
-
交易確認的資料區塊不會寫入資料檔,而且只會出現在線上重做日誌中。這些變更必須重新套用至資料檔。
-
資料檔包含執行處理失敗時尚未確認的變更。必須倒回這些變更,以確保交易一致性。
執行處理復原只會使用線上重做日誌檔與目前的線上資料檔,來同步資料檔並確保資料檔一致。
另請參閱:
-
「資料庫寫入器處理作業 (DBW) 」和 「資料庫緩衝區快取」
當 Oracle AI Database 執行執行處理復原時
是否需要執行處理復原,取決於重做繫線的狀態。
當資料庫執行處理以讀 / 寫模式開啟時,重做繫線會標示為在控制檔中開啟,而且會在執行處理一致關閉時標示為關閉。如果重做繫線在控制檔中標示為開啟,但是沒有即時執行處理會保留與這些繫線對應的繫線排入佇列,則資料庫就需要執行處理復原。
在下列情況下,Oracle AI Database 會自動執行執行處理復原:
-
資料庫會在單一執行處理資料庫失敗或 Oracle RAC 資料庫的所有執行處理失敗後第一次開啟。這種執行處理復原形式也稱為損毀復原。Oracle AI Database 會將已終止執行處理的線上重做繫線復原在一起。
-
Oracle RAC 資料庫的某些執行處理 (但不是所有執行處理) 失敗。執行處理復原是由組態中的其餘執行處理自動執行。
SMON 背景處理作業會執行執行處理復原,自動套用線上重做。不需要使用者介入。
另請參閱:
-
Oracle Real Application Clusters Administration and Deployment Guide,瞭解 Oracle RAC 資料庫中的執行處理復原功能
執行處理復原的檢查點重要性
執行處理復原使用檢查點來判斷哪些變更必須套用至資料檔。檢查點位置可確保將 SCN 比檢查點 SCN 所確認的每個變更都儲存至資料檔。
下圖說明線上重做日誌中的重做繫線。
圖 5:線上重做日誌中的檢查點位置

在進行執行處理復原期間,資料庫必須套用在檢查點位置與重做繫線結尾之間發生的變更。如圖 16-5 所示,有些變更可能已經寫入資料檔中。不過,只有 SCN 低於檢查點位置的變更保證在磁碟上。
另請參閱:Oracle AI Database Performance Tuning Guide,瞭解如何限制執行處理復原時間
執行處理復原階段
執行處理復原的第一個階段稱為快取復原或向前捲動,然後將線上重做日誌中記錄的所有變更重新套用至資料檔。
因為線上重做日誌包含還原資料,向前復原也會重新產生對應的還原區段。向前復原會視需要進行任意數目的線上重做日誌檔,讓資料庫保持在最新狀態。向前復原之後,資料區塊會包含線上重做日誌檔中記錄的所有確認變更。這些檔案也可能包含未確認的變更,這些變更會在失敗前儲存至資料檔,或是記錄在線上重做日誌,並在快取復原期間引進。
向前復原之後,所有未確認的變更都必須還原。Oracle AI Database 使用檢查點位置,可確保 SCN 低於檢查點 SCN 的每個已確認變更都儲存在磁碟上。Oracle AI Database 會套用還原區塊,以倒回在失敗之前寫入或於快取復原期間導入之資料區塊中未確認的變更。此階段稱為倒回或交易復原。
下圖說明向前復原和倒回,這是從資料庫執行處理失敗復原所需的兩個步驟。
圖 6:基本執行處理復原步驟:向前滾動和倒回

Oracle AI Database 可視需要同時倒回多個交易。所有在失敗時有效的交易都會標示為已終止。不需要等待 SMON 處理作業倒回終止的交易,新的交易會倒回個別的區塊本身來取得必要的資料。
另請參閱:
-
「還原區段」可進一步瞭解還原資料
-
Oracle AI Database Performance Tuning Guide,瞭解執行個體復原機制與調整的討論
參數檔概要
若要啟動資料庫執行處理,Oracle AI Database 必須讀取伺服器參數檔 (建議使用) 或文字初始化參數檔 (舊有實行)。這些檔案包含組態參數清單。
若要手動建立資料庫,您必須以參數檔啟動執行處理,然後發出 CREATE DATABASE 敘述句。因此,即使資料庫本身並不存在,執行處理與參數檔還是可以存在。
-
初始化參數是影響執行處理基本作業的組態參數。執行處理會在啟動時從檔案讀取初始化參數。
-
伺服器參數檔:伺服器參數檔是初始化參數的儲存區域。
-
文字初始化參數檔:文字初始化參數檔是包含初始化參數清單的文字檔。
-
修改初始化參數值:您可以調整初始化參數來修改資料庫的行為。參數分類為靜態或動態,決定如何修改參數。
初始化參數
初始化參數是影響執行處理基本作業的組態參數。執行處理會在啟動時從檔案讀取初始化參數。
Oracle AI Database 提供許多初始化參數,以最佳化其在不同環境中的作業。只有少數參數必須明確設定,因為預設值通常足夠。
-
初始化參數的功能群組初始化參數屬於不同的功能群組。
-
基本和進階初始化參數:初始化參數分為兩個群組:基本和進階。
初始化參數的功能群組
初始化參數屬於不同的功能群組。
大部分的初始化參數都屬於下列其中一個群組:
-
命名實體 (例如檔案或目錄) 的參數
-
設定處理作業、資料庫資源或資料庫本身限制的參數
-
影響容量的參數,例如 SGA 的大小 (這些參數稱為變數參數 )
變數參數對資料庫管理員特別感興趣,因為它們可以使用這些參數來改善資料庫效能。
基本和進階初始化參數
初始化參數分為兩個群組:基本與進階。
一般而言,您必須僅設定及調整大約 30 個基本參數,才能獲得合理的效能。基本參數會設定一些特性,像是資料庫名稱、控制檔的位置、資料庫區塊大小,以及還原表格空間。
在極少數的情況下,則可能需要修改進階參數才能達到最佳效能。這些進階參數可讓專家 DBA 調整 Oracle AI Database 的行為,以滿足獨特的需求。
Oracle AI Database 會在資料庫軟體提供的起始初始化參數檔中提供值,或由「資料庫組態輔助程式 (DBCA)」為您建立的值。您可以根據組態和計畫調整資料庫的方式,編輯這些 Oracle 提供的初始化參數並新增其他參數。對於參數檔中未包含的相關初始化參數,Oracle AI Database 提供預設值。
另請參閱:
-
Oracle AI Database Administrator's Guide,瞭解如何指定初始化參數
-
Oracle AI Database Reference,瞭解初始化參數類型的說明
-
Oracle AI Database Reference,瞭解
V$PARAMETER和 SQL*Plus User's Guide and Reference 的說明,瞭解SHOW PARAMETER語法
伺服器參數檔案
伺服器參數檔是初始化參數的儲存區域。
伺服器參數檔具有下列主要特性:
-
只有 Oracle AI Database 會讀取並寫入伺服器參數檔。
-
一個資料庫只存在一個伺服器參數檔。這個檔案必須位於資料庫主機上。
-
伺服器參數檔是二進位檔,無法由文字編輯器修改。
-
儲存在伺服器參數檔中的初始化參數為永久性。在資料庫執行處理執行時對參數所做的任何變更,都可以在執行處理關閉和啟動後保存。
伺服器參數檔則不需要為從屬端應用程式維護多個文字初始化參數檔。伺服器參數檔最初是使用 CREATE SPFILE 敘述句從文字初始化參數檔建立的。它也可以直接由「資料庫組態輔助程式」建立。
另請參閱:
-
Oracle AI Database Administrator's Guide,瞭解有關伺服器參數檔的詳細資訊
-
Oracle AI Database SQL Language Reference,瞭解
CREATE SPFILE
文字初始化參數檔案
文字初始化參數檔是包含初始化參數清單的文字檔。
此類型的參數檔 (參數檔的舊有實作) 具有下列主要特性:
-
啟動或關閉資料庫時,文字初始化參數檔必須與連線到資料庫的從屬端應用程式位於相同的主機上。
-
文字初始化參數檔是以文字為基礎,而非二進位。
-
Oracle AI Database 可以讀取文字初始化參數檔,但無法寫入。若要變更參數值,您必須以文字編輯器手動更改檔案。
-
ALTER SYSTEM對初始化參數值的變更僅對目前的執行處理有效。您必須手動更新文字初始化參數檔,然後重新啟動執行處理以瞭解已知的變更。
文字初始化參數檔包含一系列的 key=value 組,每行一個組。例如,初始化參數檔的一部份可能如下所示:
db_name=sample
control_files=/disk1/oradata/sample_cf.dbf
db_block_size=8192
open_cursors=52
undo_management=auto
shared_pool_size=280M
pga_aggregate_target=29M
.
.
.
為了說明文字參數檔可以建立的管理功能問題,假設您使用電腦 clienta 和 clientb,而且必須能夠在任一部電腦上使用 SQL*Plus 啟動資料庫。在此情況下,每部電腦上必須存在兩個不同的文字初始化參數檔,如圖 16-7 所示。伺服器參數檔可以解決參數檔擴散的問題。
圖 7:多個初始化參數檔

另請參閱:
-
Oracle AI Database Administrator's Guide,瞭解文字初始化參數檔的詳細資訊
-
Oracle AI Database SQL Language Reference,瞭解
CREATE PFILE
修改初始化參數值
您可以調整初始化參數以修改資料庫的行為。參數分類為靜態或動態,決定如何修改參數。
下表簡要說明差異。
表格 5 靜態與動態初始化參數
| 特性 | 靜態 | 動態 |
|---|---|---|
| 需要修改參數檔 (文字或伺服器) | 是 | 否 |
| 設定生效前需要重新啟動資料庫執行處理 | 是 | 否 |
| 在 Oracle AI Database Reference 初始化參數項目中說明為「可修改」 | 否 | 是 |
| 只能修改資料庫或執行處理 | 是 | 否 |
靜態參數包括 DB_BLOCK_SIZE、DB_NAME 和 COMPATIBLE。動態參數會群組成階段作業層次參數,它只會影響目前的使用者階段作業,而會影響資料庫和所有階段作業的系統層次參數。例如,MEMORY_TARGET 是系統層次參數,而 NLS_DATE_FORMAT 是階段作業層次參數。
參數變更的範圍取決於變更生效的時間。使用伺服器參數檔啟動執行處理時,您可以使用 ALTER SYSTEM SET 敘述句來變更系統層次參數的值,如下所示:
-
SCOPE=MEMORY變更只會套用至資料庫執行處理。如果資料庫已關閉並重新啟動,則變更不會持續存在。
-
SCOPE=SPFILE變更會套用至伺服器參數檔,但不會影響目前的執行處理。因此,變更要等到執行處理重新啟動後才會生效。
注意:變更 Oracle AI Database Reference 中描述為不可修改的參數值時,您必須指定
SPFILE。 -
SCOPE=BOTHOracle AI Database 會將變更寫入記憶體和伺服器參數檔。這是資料庫使用伺服器參數檔時的預設範圍。
資料庫會將初始化參數的新值與舊值列印在警示日誌中。作為預防性評量,資料庫會驗證基本參數的變更,以防止將無效值寫入伺服器參數檔。
另請參閱:
-
Oracle AI Database Globalization Support Guide 瞭解如何選擇含有
NLS_LANG環境變數的地區設定 -
Oracle AI Database Administrator's Guide,瞭解如何變更初始化參數設定值
-
Oracle AI Database Reference,瞭解所有初始化參數的說明
-
Oracle AI Database SQL Language Reference,瞭解
ALTER SYSTEM的語法和語意
診斷檔案概要
Oracle AI Database 包含一個錯誤診斷基礎架構,可用於防止、偵測、診斷和解決資料庫問題。問題包括程式碼錯誤、描述資料損毀以及客戶資料損毀等嚴重錯誤。
進階錯誤診斷性基礎架構的目標如下:
-
主動偵測問題
-
在偵測到問題後限制損害和中斷
-
縮短問題診斷和解決時間
-
啟用分割追蹤檔以改善管理性,讓使用者定義每一片段的大小和要保留的片段數目上限,以及在達到使用者指定的磁碟空間限制後停用追蹤
-
簡化與 Oracle Support 的客戶互動
-
自動診斷儲存區域自動診斷儲存區域 (ADR) 是以檔案為基礎的儲存區域,用來儲存資料庫診斷資料 (例如追蹤檔、警示日誌、DDL 日誌以及「狀況監督器」報表)。
-
警示日誌:每個資料庫都有一個警示日誌,此日誌包含按時間順序排列的資料庫訊息和錯誤日誌。
-
注意日誌:每個資料庫都有一個注意日誌,其中包含重要且高度可見的資料庫事件。
-
DDL 日誌 DDL 日誌的格式和基本行為與警示日誌的格式和基本行為相同,但只包含 DDL 敘述句和詳細資訊。資料庫會將 DDL 資訊寫入自己的檔案,以減少警示日誌中的雜亂情況。
-
追蹤檔:追蹤檔是一個檔案,其中包含用來調查問題的診斷資料。此外,追蹤檔也提供調整應用程式或執行處理的相關指示。
-
診斷傾印:診斷傾印檔是一種特殊類型的追蹤檔,包含狀態或結構的詳細時間點資訊。另請參閱:Oracle AI Database Administrator's Guide,瞭解如何管理診斷檔案
自動診斷儲存區域
自動診斷儲存區域 (ADR) 是以檔案為基礎的儲存區域,可儲存資料庫診斷資料,例如追蹤檔、警示日誌、DDL 日誌以及「狀況監督器」報表。
ADR 的主要特性包括:
-
統一目錄結構
-
一致的診斷資料格式
-
整合工具集
前述特性可讓客戶和 Oracle Support 關聯及分析多個 Oracle 執行處理、元件及產品的診斷資料。
ADR 位於資料庫外部,可讓 Oracle AI Database 在實體資料庫無法使用時存取和管理 ADR。資料庫執行處理可以在建立資料庫之前建立 ADR。
問題與未預期事件
ADR 會主動追蹤問題,這是資料庫中的嚴重錯誤。
嚴重錯誤顯示為內部錯誤,例如 ORA-600 或其他嚴重錯誤。每個問題都有問題鍵值,這是描述問題的文字字串。
當某個問題發生多次時,ADR 會為每次的事件建立時戳的未預期事件。事件是由數字未預期事件 ID 唯一識別。發生未預期事件時,ADR 會將未預期事件警示傳送給 Enterprise Manager。嚴重錯誤的診斷和解決通常開始於未預期事件警示。
因為問題可能會在短時間內產生許多未預期事件,所以 ADR 會在達到特定臨界值之後,將洪水控制套用至未預期事件產生。受洪災控制的未預期事件會產生警示日誌項目,但不會產生未預期事件傾印。如此一來,ADR 會通知您,發生嚴重錯誤並沒有將診斷資料超載系統。
另請參閱:Oracle AI Database Administrator's Guide,瞭解錯誤診斷基礎架構的詳細資訊
ADR 結構
ADR 基本目錄為 ADR 根目錄。
ADR 基本目錄可以包含多個 ADR 本位目錄,其中每個 ADR 本位目錄都是 Oracle 產品或元件之執行處理的所有診斷資料追蹤、傾印、警示日誌等的根目錄。例如,在含有共用儲存體與 Oracle ASM 的 Oracle RAC 環境中,每個資料庫執行處理與每個 Oracle ASM 執行處理都有自己的 ADR 本位目錄。圖 16-8 說明資料庫執行處理的 ADR 目錄階層。其他 Oracle 產品或元件 (例如 Oracle ASM 或 Oracle Net Services) 的其他 ADR 本位目錄可以存在於此階層的相同 ADR 基本目錄底下。
圖 8:Oracle AI Database 執行處理的 ADR 目錄結構

下列 Linux 範例顯示,當您在建立資料庫之前,以唯一的 SID 和資料庫名稱啟動執行處理時,Oracle AI Database 預設會在主機檔案系統中建立 ADR 作為目錄結構。SID 和資料庫名稱是「ADR 本位目錄」中檔案路徑名稱的一部分。
範例 16-1 建立 ADR
% setenv ORACLE_SID osi
% echo "DB_NAME=dbn" > init.ora
% sqlplus / as sysdba
.
.
.
Connected to an idle instance.
SQL> STARTUP NOMOUNT PFILE="./init.ora"
ORACLE instance started.
Total System Global Area 146472960 bytes
Fixed Size 1317424 bytes
Variable Size 92276176 bytes
Database Buffers 50331648 bytes
Redo Buffers 2547712 bytes
SQL> COL NAME FORMAT a21
SQL> COL VALUE FORMAT a60
SQL> SELECT NAME, VALUE FROM V$DIAG_INFO;
NAME VALUE
--------------------- --------------------------------------------------------
Diag Enabled TRUE
ADR Base /d1/3910926111/oracle/log
ADR Home /d1/3910926111/oracle/log/diag/rdbms/dbn/osi
Diag Trace /d1/3910926111/oracle/log/diag/rdbms/dbn/osi/trace
Diag Alert /d1/3910926111/oracle/log/diag/rdbms/dbn/osi/alert
Diag Incident /d1/3910926111/oracle/log/diag/rdbms/dbn/osi/incident
Diag Cdump /d1/3910926111/oracle/log/diag/rdbms/dbn/osi/cdump
Health Monitor /d1/3910926111/oracle/log/diag/rdbms/dbn/osi/hm
Default Trace File /d1/3910926111/oracle/log/diag/rdbms/dbn/osi/trace/osi_ora_29229.trc
Active Problem Count 0
Active Incident Count 0
ORACLE_HOME /d1/3910926111/oracle
Attention Log /d1/3910926111/oracle/log/diag/rdbms/dbn/osi/trace/attention_osi.log
13 rows selected.
警示日誌
每個資料庫都有一個警示日誌,此日誌包含依時間排列的資料庫訊息和錯誤日誌。
警示日誌內容包括下列各項:
-
所有內部錯誤 (
ORA-600)、區塊損毀錯誤 (ORA-1578) 以及死鎖錯誤 (ORA-60) -
SQL*Plus 命令
STARTUP、SHUTDOWN、ARCHIVE LOG以及RECOVER等管理作業 -
與共用伺服器和分配器處理作業功能相關的數種訊息與錯誤
-
自動重新整理具體化視觀表時發生錯誤
如果管理作業成功,Oracle AI Database 會將訊息連同時戳寫入警示日誌中作為「已完成」。
Oracle AI Database 會在您第一次啟動資料庫執行處理時 (即使尚未建立資料庫),於圖 16-8 中顯示的 alert 子目錄中建立警示日誌。此檔案為 XML 格式。trace 子目錄包含純文字警示日誌。
查詢 V$DIAG_INFO 以尋找警示日誌。
注意日誌
每個資料庫都有一個處理日誌,其中包含重要和高度可見的資料庫事件。
注意日誌只包括嚴重和高度可見的資料庫事件,可讓您識別警示並採取適當的動作。每個注意日誌訊息都有各種屬性,包括目標對象、原因以及要採取的動作。關注日誌會以下列格式提供資訊:
-
注意訊息 ID
-
注意訊息類型:錯誤、通知、警告
-
注意訊息緊急性:可逆、中、資訊、 SOON
-
注意訊息範圍:CDB、CDB 叢集、CDB 執行處理、PDB、階段作業、PDB 執行處理、處理作業、階段作業
-
注意訊息文字
-
注意訊息目標使用者:CDB 管理、叢集軟體管理、PDB 管理
-
原因
-
動作
Oracle AI Database 會在 trace 子目錄中建立名為 attention_ORACLE_SID.log 的注意日誌,如圖 16-8 所示。您也可以查詢 V$DIAG_INFO 來尋找注意日誌。
DDL 日誌
DDL 日誌的格式和基本行為與警示日誌的格式和基本行為相同,但只包含 DDL 敘述句和詳細資訊。資料庫會將 DDL 資訊寫入自己的檔案,以減少警示日誌中的雜亂情況。
DDL 日誌記錄為 DDL 文字,可選擇性地增強輔助補充資訊。每個 DDL 敘述句都有一個日誌記錄。DDL 日誌儲存在 ADR 本位目錄的 log/ddl 子目錄中。
追蹤檔
追蹤檔是一個檔案,其中包含用來調查問題的診斷資料。此外,追蹤檔也提供調整應用程式或執行處理的相關指示。
-
追蹤檔類型每個伺服器與背景處理作業都可以定期寫入關聯的追蹤檔。檔案包含有關處理環境、狀態、活動及錯誤的資訊。
-
追蹤檔位置 ADR 會將追蹤檔儲存在
trace子目錄中。追蹤檔名稱是平台相依的,而且副檔名是.trc。 -
追蹤檔的區段:當追蹤檔大小受到限制時,資料庫可能會自動將它分割成最多五個區段。區段是與作用中追蹤檔具有相同名稱的個別檔案,但附加了區段編號,如
ora_1234_2.trc。另請參閱:Oracle AI Database 效能調校入門
追蹤檔類型
每個伺服器與背景處理作業都可以定期寫入至相關聯的追蹤檔。檔案包含有關處理環境、狀態、活動及錯誤的資訊。
SQL 追蹤功能也會建立追蹤檔案,提供個別 SQL 陳述式的效能資訊。您可以透過各種方式啟用從屬端 ID、服務、模組、動作、階段作業、執行處理或資料庫的追蹤功能。例如,您可以執行 DBMS_MONITOR 套裝軟體中的適當程序或設定事件。
另請參閱:
-
Oracle AI Database Administrator's Guide,瞭解追蹤檔、傾印和核心檔案
-
Oracle AI Database SQL Tuning Guide,瞭解應用軟體追蹤
追蹤檔位置
ADR 會將追蹤檔儲存在 trace 子目錄中。追蹤檔名稱是平台相依的,而且副檔名是 .trc。
通常,資料庫背景處理作業追蹤檔案名稱會包含 Oracle SID、背景處理作業名稱以及作業系統處理作業編號。RECO 處理作業的追蹤檔範例為 mytest_reco_10355.trc。
伺服器處理作業追蹤檔名稱包含 Oracle SID、字串 ora 以及作業系統處理作業編號。伺服器處理作業追蹤檔名稱為 mytest_ora_10304.trc 的一個範例。
有時追蹤檔會有對應的追蹤描述資料檔案,副檔名為 .trm。這些檔案包含稱為追蹤對應的結構資訊,資料庫用於搜尋和導覽。
另請參閱:
-
「圖 16-8 」
-
Oracle AI Database Administrator's Guide,瞭解如何尋找追蹤檔
追蹤檔區段
當追蹤檔大小受到限制時,資料庫最多可以自動將它分割成五個區段。區段是與作用中追蹤檔具有相同名稱的個別檔案,但附加了區段編號,如 ora_1234_2.trc。
每個區段通常都是 MAX_DUMP_FILE_SIZE 所設定限制的 20%。當所有區段的組合大小超過限制時,資料庫會刪除最早的區段 (雖然從未有第一個區段,但它可能包含與處理程序初始狀態相關的資訊),然後建立一個新的空白區段。
另請參閱:Oracle AI Database Administrator's Guide,瞭解如何控制追蹤檔的大小
診斷傾印
診斷傾印檔是一種特殊類型的追蹤檔,包含狀態或結構的詳細時間點資訊。
追蹤通常是連續的診斷資料輸出。相反地,傾印通常是診斷資料的一次性輸出,用來回應事件。
- 追蹤傾印與未預期事件 - 大多數傾印都是因為未預期事件而發生。
追蹤傾印和未預期事件
大部分的傾印會因為未預期事件而發生。
當未預期事件發生時,資料庫會將一或多個傾印寫入至為該未預期事件建立的未預期事件目錄。未預期事件傾印的檔案名稱中也包含未預期事件編號。
在建立未預期事件期間,應用程式可能會採取堆集或系統狀態傾印作為動作的一部分。在這種情況下,資料庫會將傾印名稱附加到未預期事件檔案名稱,而非預設追蹤檔名稱。例如,因為處理中的未預期事件,資料庫會建立 prod_ora_90348.trc 檔案。未預期事件中的傾印會產生 prod_ora_90348_incident_id.trc 檔案,其中 incident_id 是未預期事件的數值 ID。在未預期事件中建立的堆集傾印動作會產生堆集傾印檔 prod_ora_90348_incident_id_dump_id.trc,其中 dump_id 是追蹤傾印的數值 ID。