資料庫管理員的概念
此頁面上的命令檔內容僅適用於瀏覽用途,而且無法利用任何方式來更改內容。
本部分描述資料庫管理員的職責、工具和基本知識。
-
資料庫管理員的職責:資料庫管理員 (DBA) 的主要職責是讓企業資料可供其使用者使用。
-
資料庫管理員工具 Oracle 提供數種工具來管理資料庫。
-
資料庫管理員主題本節涵蓋 DBA 最重要的主題,這些主題尚未在手冊其他地方討論過。
資料庫管理員的職責
資料庫管理員 (DBA) 的主要職責是讓企業資料可供其使用者使用。
DBA 必須與開發人員密切合作,以確保其應用程式能夠有效地使用資料庫,並與系統管理員聯繫,以確保實體資源足夠並有效率地使用。
Oracle DBA 負責瞭解 Oracle AI Database 架構和資料庫的運作方式。DBA 可預期再執行以下工作:
-
安裝、升級和修補 Oracle AI Database 軟體
-
設計資料庫,包括識別需求、建立邏輯設計 (概念模型) 和實體資料庫設計
-
建立 Oracle 資料庫
-
開發和測試備份與復原策略、定期備份 Oracle 資料庫,並在發生失敗時復原資料庫
-
設定網路環境,讓從屬端能夠連線至資料庫
-
啟動並關閉資料庫
-
管理資料庫的儲存體
-
管理使用者與安全
-
管理資料庫物件,例如表格、索引以及視觀表
-
監控與調整資料庫效能
-
調查、收集資料,並向 Oracle Support Services 報告任何關鍵資料庫錯誤
-
評估及測試新資料庫功能
使用者類型及其角色與職責取決於資料庫環境。一個小型資料庫可能有一個 DBA。非常大型的資料庫可能會將 DBA 職責劃分給數個專家,例如安全人員、備份操作員以及應用程式管理員。
另請參閱:
-
Oracle AI Database 2 Day DBA,瞭解 DBA 工作簡介
-
Oracle AI Database Administrator's Guide,瞭解 DBA 概念和工作的深入簡報
資料庫管理員工具
Oracle 提供數種工具來管理資料庫。
本節描述一些常用的工具。
-
Oracle Enterprise Manager (Enterprise Manager) 是以 Web 為基礎的系統管理工具,提供 Oracle 資料庫、Exadata 資料庫機器、Fusion Middleware、Oracle 應用程式、伺服器、儲存體以及非 Oracle 硬體和軟體的管理。
-
SQL*Plus 是每次安裝 Oracle AI Database 時所包含的互動式批次查詢工具。
-
資料庫安裝與組態工具 Oracle 提供數種工具來簡化安裝與設定 Oracle AI Database 軟體的作業。
-
Oracle Net 組態與管理工具 Oracle Net Services 在分散式異質運算環境中提供企業整體的連線解決方案。Oracle Net (Oracle Net Services 的一個元件) 讓從屬端應用程式網路階段作業從資料庫啟用。
-
資料移動與分析工具 Oracle AI Database 包含數個公用程式,可協助進行資料移動與分析。
Oracle Enterprise Manager
Oracle Enterprise Manager (Enterprise Manager) 是以 Web 為基礎的系統管理工具,提供 Oracle 資料庫、Exadata 資料庫機器、Fusion Middleware、Oracle 應用程式、伺服器、儲存體以及非 Oracle 硬體和軟體的管理。
-
Oracle Enterprise Manager Cloud Control Oracle Enterprise Manager Cloud Control (Cloud Control) 是一種 Web 式介面,可讓管理員完整監督 Oracle 技術堆疊和非 Oracle 元件。
-
Oracle Enterprise Manager Database Express 12c Oracle Enterprise Manager Database Express (EM Express) 是內建於 Oracle 資料庫中的 Web 管理產品。它不需要特殊的安裝或管理。
Oracle Enterprise Manager Cloud Control
Oracle Enterprise Manager Cloud Control (Cloud Control) 是一個 Web 式介面,可讓管理員完整監督 Oracle 技術堆疊和非 Oracle 元件。
有時快速應用程式通知 (FAN) 的一個部分可能會變得無法使用或發生效能問題。在此情況下,Cloud Control 會顯示自動產生的警示,讓管理員能夠採取適當的復原動作。
Cloud Control 的組成部分包括:
-
Oracle Management Service (以下稱 OMS)
OMS 功能是一組 J2EE 應用程式,可轉譯 Cloud Control 的介面、與所有 Oracle 管理代理程式搭配運作來處理監督資訊,以及使用 Enterprise Manager 儲存區域作為其永久資料存放區。
-
Oracle Management Agents
這些代理程式是建置在每個受監督主機上的處理作業,可監督主機上的所有目標、將此資訊傳達給 OMS,以及維護主機與其目標。
-
Oracle Management Repository
儲存區域是 Oracle 資料庫中的一個綱要,其中包含由 Cloud Control 管理之管理員、目標以及應用程式的所有可用資訊。
另請參閱:
-
Oracle AI Database Administrator's Guide,瞭解如何使用 Cloud Control 管理資料庫
-
Cloud Control 線上說明
Oracle Enterprise Manager Database Express 12c
Oracle Enterprise Manager Database Express (EM Express) 是內建於 Oracle 資料庫中的 Web 管理產品。它不需要特殊的安裝或管理。
EM Express 在 Cloud Control 中包含重要的效能管理與基本管理頁面。這些頁面包含下列項目:
-
資料庫首頁
-
即時 SQL 監控
-
ASH 分析
您可以透過 EM Express 主控台線上存取這些功能,也可以透過「作用中報表」技術離線存取這些功能。從架構的角度來看,EM Express 並沒有中層或中介軟體元件,可確保其在資料庫伺服器上的負荷是不合格的。
使用 EM Express,您可以執行管理作業,例如管理使用者安全與管理資料庫記憶體和儲存體。您也可以檢視資料庫的效能與狀態資訊。
另請參閱:Oracle AI Database Get Started with Performance Tuning,瞭解如何使用 EM Express 管理資料庫
SQL*Plus
SQL*Plus 是每次安裝 Oracle AI Database 時所包含的互動式批次查詢工具。
它擁有命令行使用者介面,可在連線資料庫時作為從屬端。SQL*Plus 擁有自己的命令和環境。此功能可讓您輸入和執行 SQL、PL/SQL、SQL*Plus 與作業系統命令,以執行像是:
-
從查詢結果進行格式化、執行計算、儲存與列印
-
檢閱表格與物件定義
-
開發及執行批次命令檔
-
管理資料庫
您可以使用 SQL*Plus,以互動方式產生報表、以批次處理作業產生報表,將結果輸出至文字檔、畫面或 HTML 檔以供網際網路瀏覽。您可以使用 HTML 輸出設備動態產生報表。
另請參閱:SQL*Plus User's Guide and Reference,瞭解 SQL*Plus 的詳細資訊
資料庫安裝和組態的工具
Oracle 提供數種工具來簡化安裝和設定 Oracle AI Database 軟體的工作。
下表說明支援的工具。
表格 1 資料庫安裝與配置工具
| 工具 | 說明 | 深入瞭解 |
|---|---|---|
| Oracle Universal Installer (OUI) | OUI 是一個 GUI 公用程式,可讓您檢視、安裝及解除安裝 Oracle AI Database 軟體。「線上說明」可供您引導您完成安裝。 | 線上說明,引導您完成安裝 |
| 資料庫升級輔助程式 (DBUA) | DBUA 會以互動方式引導您完成資料庫升級,並設定新版本的資料庫。DBUA 會執行一般手動執行的所有作業,將升級自動化。DBUA 會對組態選項 (例如表格空間和線上重做日誌 ) 提供建議。 | Oracle AI Database 2 天 DBA ,瞭解如何使用 DBUA 升級資料庫 |
| 資料庫組態輔助程式 (DBCA) | DBCA 提供圖形介面和引導式工作流程,用於建立和設定資料庫。此工具可讓您從 Oracle 提供的樣板建立資料庫,或建立您自己的資料庫和樣板。 | Oracle AI Database Administrator's Guide ,瞭解如何使用 DBCA 建立資料庫 |
Oracle Net 組態和管理的工具
Oracle Net Services 在分散式的異質運算環境中,提供企業整體連線解決方案。Oracle Net (Oracle Net Services 的一個元件) 讓從屬端應用程式網路階段作業從資料庫啟用。
您可以使用下列工具來設定與管理 Oracle Net Services:
-
Oracle Net Manager
此工具可讓您設定本機從屬端或伺服器主機上 Oracle 本位目錄的 Oracle Net Services。您可以使用 Oracle Net Manager 來設定命名、命名方法、設定檔以及監聽器。您可以使用「Oracle Enterprise Manager 主控台」或獨立的應用程式來啟動 Oracle Net Manager。
-
Oracle Net 組態輔助程式
此工具會在軟體安裝期間自動執行。此輔助程式可讓您在安裝期間設定基本網路元件,包括監聽器名稱和協定位址、命名方法、
tnsnames.ora檔案中的網路服務名稱,以及目錄伺服器使用狀況。 -
監聽器控制公用程式
「監聽器控制」公用程式可讓您設定監聽器接收從屬端連線。您可以透過 Enterprise Manager 或獨立命令行應用程式來存取此公用程式。
-
Oracle 連線管理程式控制公用程式
此命令行公用程式可讓您管理 Oracle 連線管理程式,此路由器是從屬端連線要求可傳送至其下一個躍點或直接傳送至資料庫的路由器。您可以使用公用程式命令在一或多個「Oracle 連線管理程式」上執行基本管理功能。此外,您還可以檢視和變更參數設定值。
另請參閱:
-
Oracle AI Database Net Services 管理員指南,深入瞭解 Oracle Net Services 工具
資料移動和分析的工具
Oracle AI Database 包括數個公用程式,以協助移動和分析資料。
例如,您可以使用資料庫公用程式來:
表格 2 資料移動與分析工作
| 任務 | 深入瞭解 |
|---|---|
| 從作業系統檔案將資料載入 Oracle AI Database 表格 | "SQL*Loader " |
| 將資料和描述資料從一個資料庫移至另一個資料庫 | 「Oracle Data Pump 匯出與匯入」 |
| 透過 SQL 介面查詢重做日誌檔 | "Oracle LogMiner " |
| 管理 Oracle AI Database 資料 | 「 ADR 命令解譯器 (ADRCI) 」 |
其他作業包括對使用 DBVERIFY 的離線資料庫或資料檔執行實體資料結構完整性檢查,或使用 DBNEWID 公用程式變更作業資料庫的資料庫 ID (DBID) 或資料庫名稱。
備註:
-
SQL*Loader SQL*Loader 可從外部檔案 (稱為資料檔 ) 將資料載入資料庫表格中 (不會與內部資料庫資料檔混淆)。它擁有強大的資料剖析引擎,對於資料檔案中的資料格式幾乎沒有限制。
-
Oracle Data Pump 匯出與匯入 Oracle Data Pump 可將資料與描述資料從一個資料庫高速移動至另一個資料庫。
-
Oracle LogMiner Oracle LogMiner 可讓您透過 SQL 介面查詢重做日誌檔。
-
ADR 命令解譯器 (ADRCI) ADRCI 是一個命令行公用程式,可讓您調查問題、檢視狀況檢查報表,以及封裝第一個失敗的資料並上傳至 Oracle Support。
另請參閱:
-
「備份與復原」以瞭解備份與復原的相關工具
-
Oracle AI Database Utilities - 瞭解 DBVERIFY 和 DBNEWID
SQL*Loader
SQL*Loader 可從外部檔案 (稱為資料檔 ) 將資料載入資料庫表格中 (不要和內部資料庫資料檔混淆)。它擁有強大的資料剖析引擎,對於資料檔案中的資料格式幾乎沒有限制。
您可以使用 SQL*Loader 執行下列動作:
-
將多個資料檔的資料載入多個表格
您會將要載入的資料儲存在 SQL*Loader 資料檔中。SQL*Loader 控制檔是包含 DDL 指示的文字檔,SQL*Loader 可用來決定資料在何處尋找、如何剖析和解譯資料、要在何處插入資料,以及其他等等。
注意:SQL*Loader 資料檔和控制檔與 Oracle AI Database 資料檔和控制檔無關。
-
控制負載作業的各個方面
例如,您可以選擇性地載入資料、指定資料字元集、使用 SQL 函數操控資料、在指定的資料欄中產生唯一的循序索引鍵值等等。您也可以產生複雜的錯誤報告。
-
使用傳統路徑、直接路徑或外部表格載入
傳統路徑載入會執行 SQL
INSERT陳述式以植入表格。相反地,直接路徑 INSERT 可透過格式化資料區塊,並將它們直接寫入資料檔,來免除多數的資料庫負荷。直接寫入在高水位標記 (HWM) 以上的區塊上運作,並略過資料庫緩衝區快取,直接寫入磁碟。直接從磁碟讀取 PGA ,再略過緩衝區快取。外部表格載入會為資料檔案中包含的資料建立外部表格。載入會執行
INSERT陳述式,將資料檔案中的資料插入目標表格中。
一般的 SQL*Loader 階段作業會以輸入 SQL*Loader 控制檔與一或多個資料檔的方式進行。輸出為 Oracle 資料庫、日誌檔、錯誤的檔案,以及可能為捨棄檔。下圖說明一般 SQL*Loader 階段作業的流程。
圖 1:SQL*Loader 階段作業

您也可以使用 SQL*Loader Express 模式,當您在 SQL*Loader 命令中指定 table 參數時便會啟用此模式,如下列範例所示:
% sqlldr hr table=employees
不允許任何控制檔,因為這樣會讓 SQL*Loader 更易於使用。SQL*Loader 不使用剖析控制檔,而是使用表格資料欄定義來決定輸入資料類型。SQL*Loader 有數種預設的假設,包括字元集、欄位分界字元,以及資料、日誌和錯誤記錄檔的名稱。您可以使用命令行參數覆寫許多預設值。
另請參閱:
-
「外部表格概要」
-
「字元集合」
-
Oracle AI Database Utilities - 瞭解 SQL*Loader
Oracle Data Pump 匯出與匯入
Oracle Data Pump 可將資料和描述資料從一個資料庫高速移動至另一個資料庫。
此技術是下列 Oracle AI Database 資料移動公用程式的基礎:
-
資料汲取匯出 (匯出)
匯出是一個公用程式,可將資料和描述資料取消載入一組稱為傾印檔集的作業系統檔案中。傾印檔集是由一或多個二進位檔案所組成,其中包含表格資料、資料庫物件描述資料以及控制資訊。
-
資料汲取匯入 (匯入)
匯入是將匯出傾印檔集載入資料庫的公用程式。您也可以使用「匯入」直接從沒有介入檔案的來源資料庫載入目的地資料庫,讓匯出和匯入作業能夠並行執行,將總經歷時間降到最低。
Oracle Data Pump 是由下列不同部分所組成:
-
命令行用戶端
expdp與impdp這些從屬端會呼叫
DBMS_DATAPUMP套裝程式來執行 Oracle Data Pump 作業。 -
DBMS_DATAPUMPPL/SQL 套裝程式 (亦稱為「資料汲取 API」)此 API 提供高速的匯入與匯出功能。
-
DBMS_METADATAPL/SQL 套裝程式,又稱為描述資料 API所有載入和取消載入中繼資料的處理都會使用此 API,該 API 將物件定義儲存在 XML 中。
下圖顯示 Oracle Data Pump 如何與 SQL*Loader 及外部表格整合。如上所示,SQL*Loader 與外部表格 API 和資料汲取 API 整合,以便將資料載入外部表格。Oracle Enterprise Manager Cloud Control (Cloud Control) 與可傳輸表格空間之類的從屬端都可以使用 Oracle Data Pump 基礎架構。
圖 2:Oracle Data Pump 架構

另請參閱:
-
「外部表格概要」
-
Oracle AI Database Utilities,瞭解 Oracle Data Pump 的概要
-
Oracle AI Database PL/SQL Packages and Types Reference,瞭解
DBMS_DATAPUMP和DBMS_METADATA的說明
Oracle LogMiner
Oracle LogMiner 可以讓您透過 SQL 介面查詢重做日誌檔。
重做日誌檔中包含資料的潛在用途包括:
-
指出資料庫的邏輯損毀 (例如在應用程式層級發生的錯誤) 可能已開始
-
偵測使用者錯誤
-
決定在交易層次執行微點復原時必須採取的動作
-
使用趨勢分析來判斷哪些表格獲得最多的更新和插入
-
透過 LogMiner 全方位的關聯式介面來重做日誌檔,分析系統行為與稽核資料庫使用狀況
LogMiner 可透過命令行介面或透過 Oracle LogMiner Viewer GUI (Enterprise Manager 的一部分) 存取。
另請參閱:Oracle AI Database Utilities,以深入瞭解 LogMiner
ADR 命令解譯器 (ADRCI)
ADRCI 是一個命令行公用程式,可讓您調查問題、檢視狀況檢查報表,以及封裝第一次失敗資料並將其上傳至 Oracle Support。
您也可以使用此公用程式來檢視自動診斷儲存區域 (ADR) 中的追蹤檔名稱,以及檢視警示日誌。ADRCI 具有豐富的命令集,您可以透過互動方式或在命令檔中使用。
另請參閱:
-
「自動診斷儲存庫」
-
Oracle AI Database Utilities 和 Oracle AI Database Administrator's Guide,瞭解有關 ADR 和 ADRCI 的詳細資訊
資料庫管理員主題
本節涵蓋對 DBA 最重要的主題,以及手冊中其他部分未曾討論過的主題。
-
備份與復原備份與復原是一組概念、程序以及策略,用於保護資料庫免受媒體失敗或使用者錯誤造成的資料遺失。
-
記憶體管理記憶體管理包含維護 Oracle 執行處理記憶體結構最佳大小,以做為資料庫變更的需求。初始化參數設定值決定如何管理 SGA 與執行處理 PGA 記憶體。
-
Resource Management and Task Scheduling Oracle AI Database 提供工具來協助您管理資源,並安排任務以減少對使用者的影響。
-
效能與調校:身為 DBA,您必須負責 Oracle 資料庫的效能。通常,效能問題是由無法接受的回應時間 (即完成指定工作負載的時間) 或傳輸量 (即可在指定時間內完成的工作量) 所導致。
備份與復原
備份與復原是一組概念、程序以及策略,用於保護資料庫免受媒體失敗或使用者錯誤所造成的資料遺失。
備份是資料的複本。備份可以包含資料庫的重要部分,例如資料檔、伺服器參數檔以及控制檔。範例備份與復原案例是導致資料檔遺失的失敗磁碟機。如果遺失檔案的備份存在,您可以回復並復原該檔案。在遺失之前,將資料回復至其狀態的作業稱為媒體復原。
本節包含下列主題:
-
備份與復原技術 您可以使用「復原管理程式」或使用者管理的技術來備份、回復及復原 Oracle 資料庫。
-
您可以從命令行與從 Enterprise Manager Cloud Control (Cloud Control) 存取「 Recovery Manager 架構 RMAN」與「Oracle Secure Backup」。
-
資料庫備份資料庫備份可以是實體備份或邏輯備份。
-
資料修復雖然有數個問題可能會停止資料庫的一般作業或影響 I/O 作業,但只有某些問題需要 DBA 介入和資料修復。
-
Zero Data Loss Recovery Appliance 雲端規模的 Zero Data Loss Recovery Appliance (通常稱為 Recovery Appliance) 是一個整合設計系統,可大幅降低企業中所有 Oracle 資料庫的資料遺失與備份負荷。
另請參閱:
-
Oracle AI Database Backup and Recovery User's Guide,瞭解備份和復原概念和工作
-
Oracle AI Database Administrator's Reference for Microsoft Windows,瞭解如何使用 Volume Shadow Copy Service (VSS) 應用程式來備份和復原 Microsoft Windows 上的資料庫
要復原備份與回復技術,備份與回復的能力
您可以使用「復原管理程式」或使用者管理的技巧,來備份、回復及復原 Oracle 資料庫。
兩種方法之間的主要差異如下:
-
RMAN 是一項 Oracle AI Database 公用程式,可與 Oracle 資料庫整合以執行備份和復原活動,包括在備份的每個資料庫的控制檔中維護歷史備份描述資料儲存區域。RMAN 也可以在不同的資料庫中維護一個稱為復原目錄的集中式備份儲存區域。RMAN 是 Oracle AI Database 的一項功能,不需要個別安裝。
RMAN 與 Oracle Secure Backup 整合,可提供可靠、集中的磁帶備份管理、保護檔案系統資料以及 Oracle AI Database 檔案。Oracle Secure Backup SBT 介面可讓您使用 RMAN,來備份及回復磁帶及網際網路 Web 服務 (例如 Amazon S3) 的資料庫檔案。Oracle Secure Backup 在 SAN 和 SCSI 環境中,幾乎支援每個磁帶機和磁帶櫃。
-
使用者管理的技術
您也可以使用作業系統命令 (例如 Linux
dd) 來備份及回復檔案,以及使用 SQL*PlusRECOVER命令來進行媒體復原。Oracle 完全支援使用者管理的備份與復原,但建議使用 RMAN,因為它與 Oracle AI Database 整合並簡化管理。
另請參閱:
-
Oracle AI Database Backup and Recovery User's Guide,瞭解備份與復原解決方案的概要
-
Oracle Secure Backup Administrator's Guide,瞭解 Oracle Secure Backup 的簡介
復原管理程式架構
您可以從命令行與從 Enterprise Manager Cloud Control (Cloud Control) 存取 RMAN 和 Oracle Secure Backup。
Cloud Control 為 RMAN 提供圖形化的前端和排程功能。輸入工作參數,然後指定工作排程。Cloud Control 會在指定的時間或指定的重複間隔執行 RMAN,以執行備份與復原作業。Cloud Control 提供透過一組精靈存取 RMAN 的權限。這些精靈會根據資料庫分析、可用的備份,以及資料復原目標,引導您完成各種復原程序。
透過使用 Cloud Control,您就可以執行本文件中概述的較簡單回復與復原案例。您也可以使用更精密的回復和復原技術,例如時間點復原和 Oracle Flashback 作業,以便有效修復媒體失敗和使用者錯誤。使用 Cloud Control 通常比 RMAN 命令行從屬端簡單。
下圖顯示範例 RMAN 架構。RMAN 用戶端可透過 Cloud Control 存取,會使用目標資料庫上的伺服器階段作業將資料備份到磁碟或磁帶。RMAN 可以使用備份描述資料更新外部復原目錄。
圖 3:RMAN 架構

無論您使用的備份與復原技術為何,Oracle 建議您設定快速復原區域。此資料庫管理的目錄、檔案系統或 Oracle ASM 磁碟群組可集中備份與復原檔案,包括作用中控制檔、線上與存檔的重做日誌檔,以及備份。Oracle AI Database 復原元件會與快速復原區域互動,以確保資料庫復原能力。
另請參閱:
-
Oracle AI Database 2 Day DBA 瞭解如何使用 Recovery Manager 執行備份和復原
-
Oracle AI Database Administrator's Guide,瞭解如何設定和管理快速復原區域的相關資訊
資料庫備份
資料庫備份可以是實體的,也可以是邏輯的。
實體備份 (備份與復原策略的主要考量) 是實體資料庫檔案的複本。您可以使用 RMAN 或作業系統公用程式進行實體備份。
相較之下,邏輯備份則包含表格、預存程序以及其他邏輯資料。您可以使用 Oracle AI Database 公用程式 (例如「資料汲取匯出」) 擷取邏輯資料,並將其儲存在二進位檔案中。邏輯備份可以補充實體備份。
實體備份具有較大的精細度與有限的可傳輸性,但非常快速。邏輯備份具有精細的精細度和完整的可傳輸性,但比實體備份慢。
-
完整和局部資料庫備份:整個資料庫備份是資料庫中每個資料檔的備份,再加上控制檔。整個資料庫備份是最常見的備份類型。
-
不一致和不一致的備份:整個資料庫備份是一致或不一致。
-
備份集和影像複本 RMAN
BACKUP命令會產生影像複本或備份集。另請參閱:Oracle AI Database Backup and Recovery User's Guide,瞭解實體和邏輯備份
完整與部分資料庫備份
整個資料庫備份是資料庫中每個資料檔的備份,再加上控制檔。整個資料庫備份是最常見的備份類型。
部分資料庫備份包括資料庫的子集:個別的表格空間或資料檔。表格空間備份是表格空間或多個表格空間中所有資料檔的備份。只有當資料庫是以 ARCHIVELOG 模式運作時,表格空間備份 (不論一致或不一致) 才有效,因為必須進行重做,才能讓回復的表格空間與資料庫的其餘部分一致。
一致和不一致備份
整個資料庫備份的一致或不一致。
在一致備份中,所有讀取 / 寫入資料檔與控制檔都具有相同的 checkpoint SCN ,可保證這些檔案包含此 SCN 之前的所有變更。這類備份在回復之後並不需要復原。
一致的資料庫備份只能在一致的關閉之後執行,而且是以 NOARCHIVELOG 模式運作之資料庫的唯一有效備份選項。其他備份選項則需要媒體復原以確保一致性,必須套用存檔重做日誌檔才能執行。注意:如果您在未套用重做的情況下回復一致的整個資料庫備份,就會遺失備份後進行的所有交易。
在不一致的備份中,不保證讀取 / 寫入資料檔與控制檔都具有相同的檢查點 SCN,因此可能會遺失變更。所有線上備份都必須不一致,因為可以在進行備份時修改資料檔。
不一致的備份提供優越的可用性,因為您不需要關閉資料庫來進行完全保護資料庫的備份。如果資料庫是以 ARCHIVELOG 模式執行,而且如果您備份存檔重做日誌和資料檔,則不一致的備份可以是聲音備份和復原策略的基礎。
另請參閱:
-
Oracle AI Database Backup and Recovery User's Guide,瞭解有關不一致備份的詳細資訊
備份集和影像複本
RMAN BACKUP 命令會產生影像複本或備份集。
備份類型不同如下:
-
影像複本
影像複本是資料檔、控制檔或存檔重做日誌檔的位元位元顯示、磁碟複本。您可以使用作業系統公用程式或 RMAN 建立實體檔案的影像複本,並使用任何一種工具來加以回復。
注意:與作業系統複本不同,RMAN 會驗證檔案中的區塊,並記錄 RMAN 儲存區域中的影像複本。
-
備份集
RMAN 也可以使用稱為備份集的專屬格式建立備份。備份集包含一或多個資料檔、存檔重做日誌檔,或是控制檔或伺服器參數檔中的資料。備份集的最小單位是稱為備份片段的二進位檔案。備份集是 RMAN 唯一可以將備份寫入循序裝置 (例如磁帶機) 的形式。
備份集則可讓磁帶裝置以持續方式串流。例如,RMAN 可以將緩慢、中等與快速磁碟的區塊混合成一個備份集,以便磁帶裝置可以持續輸入區塊。映像檔複本對於磁碟相當實用,因為您可以逐步進行更新,也可以將它們就地復原。
另請參閱:Oracle AI Database Backup and Recovery User's Guide 以深入瞭解備份集和影像複本
資料修復
雖然有數個問題可能會使資料庫的一般作業停止,或是影響 I/O 作業,但只有某些問題需要 DBA 介入和資料修復。
在下列情況下,通常需要修復資料:
-
媒體故障
當資料庫外部問題阻止媒體讀取或寫入檔案時,就會發生媒體失敗。典型的媒體失敗包括實體失敗,例如磁碟機當機,以及資料庫檔案的覆寫、刪除或損毀。媒體失敗比使用者或應用程式錯誤還不常見,但是健全的備份和復原策略必須為它們做好準備。
-
使用者發生錯誤
使用者或應用程式可能會對您的資料庫進行不想要的變更,例如錯誤的更新、刪除表格內容,或刪除資料庫物件。良好的備份與復原策略可以讓您將資料庫回復到想要的狀態,並盡可能減少對資料庫可用性所造成的影響,同時將 DBA 的工作量降到最低。
一般而言,您有多種方法可以解決先前的問題。本節總結列出其中一些解決方案。
-
Oracle Flashback Technology Oracle AI Database 提供一組稱為 Oracle Flashback Technology 的功能,支援檢視過去的資料狀態,以及將資料倒帶或往前到不同時間,而不需要回復備份。
-
區塊媒體復原區塊媒體復原是一種在資料檔上線時回復和復原損毀資料區塊的技術。
-
資料檔復原資料檔復原可修復遺失或損毀的目前資料檔或控制檔。它也可以在沒有
OFFLINENORMAL選項的表格空間離線時復原遺失的變更。
另請參閱:
Oracle Flashback 技術
Oracle AI Database 提供一組稱為 Oracle Flashback Technology 的功能,支援檢視過去的資料狀態,以及將資料倒帶或往前到不同時間,而不需要回復備份。
視資料庫變更而定,倒溯功能通常會以較媒體復原的速度更快且對可用性的影響較少,來逆轉不想要的變更。下列倒溯功能與備份和復原最相關:
-
倒溯資料庫
您可以將 CDB 或 PDB 回顧到之前的時間來更正邏輯資料損毀或使用者錯誤所造成的問題。「倒溯資料庫」也可用於補充「資料保全」,以及用於同步複製資料庫。「倒溯資料庫」不會回復或對檔案執行媒體復原,因此您無法使用它來更正媒體失敗 (例如磁碟損毀)。
在 PDB 層次,您可以建立 PDB 回復點,並將 PDB 倒溯到此回復點,而不會影響其他 PDB。在 CDB 層次,您可以建立 CDB 回復點。
-
倒溯表格
您可以使用單一 SQL 敘述句將表格倒帶至指定的時間點。當資料庫上線時,您可以回復表格資料以及相關聯的索引、觸發程式以及限制條件,只還原對指定表格所做的變更。「倒溯表格」無法處理實體損毀,例如磁碟錯誤或資料區段,以及索引不一致。
-
倒溯刪除
您可以回轉
DROP TABLE作業的效果。「倒溯刪除」比復原機制 (例如時間點復原) 更快,而且不會導致最近的交易或停止工作時間遺失。
另請參閱:
-
Oracle AI Database Backup and Recovery User's Guide,瞭解倒溯功能的詳細資訊
-
Oracle AI Database SQL Language Reference 和 Oracle AI Database Backup and Recovery Reference,瞭解
FLASHBACK DATABASE陳述式
區塊媒體回復
區塊媒體復原是一種在資料檔上線時,回復和復原損毀資料區塊的技術。
區塊損毀是指不是採用可辨識 Oracle 格式,或是其內容不符合內部一致的資料區塊。如果您偵測到區塊損毀,且只有少數區塊損毀,則可能偏好使用區塊復原來進行資料檔復原。
另請參閱:
-
「資料毀損」
-
Oracle AI Database Backup and Recovery User's Guide,瞭解如何執行區塊媒體復原
資料檔復原
資料檔復原可修復遺失或損毀的目前資料檔或控制檔。它也可以在沒有 OFFLINE NORMAL 選項的表格空間離線時復原遺失的變更。
如果您還原資料檔或控制檔的備份,或者在沒有 OFFLINE NORMAL 選項的情況下將資料檔離線,則必須進行媒體復原。如果線上資料檔需要媒體復原,而且在媒體復原完成之前,都無法開啟資料庫,也無法讓需要媒體復原的資料檔上線。
若要還原資料檔或控制檔的實體備份,則是重新建構資料檔,並將其提供給 Oracle AI Database 使用。復原備份時,是套用存檔重做日誌檔來重新建構遺失的變更。RMAN 也可以復原含有增量備份的資料檔,此備份只包含先前備份後修改的資料區塊。
不同於執行處理復原 (會自動將變更套用至線上檔案),媒體復原必須由使用者呼叫,然後將存檔重做日誌檔套用到回復的備份。資料檔媒體復原只能在資料庫中非由任何資料庫執行處理開啟的離線資料檔或資料檔上作業。
資料檔媒體復原會根據是否套用所有變更而有所不同:
-
完整復原
完整復原會將存檔與線上重做日誌中所含的所有重做變更,套用到備份。通常,在媒體失敗造成資料檔或控制檔損毀之後,就會執行完整媒體復原。您可以對資料庫、表格空間或資料檔執行完整復原。
-
不完整的復原
不完整復原 (亦稱為資料庫時間點復原 ) 會產生非目前版本的資料庫。在此情況下,您並不會套用在回復的備份之後產生的所有重做。一般而言,當無法執行 Oracle Flashback Database 時,您就會執行時間點資料庫復原來還原使用者錯誤。
若要執行不完整復原,您必須從要復原的時間之前建立的備份回復所有資料檔,然後在復原完成時使用
RESETLOGS選項開啟資料庫。重設日誌會建立一個從日誌序號 1 開始的新日誌序號串流。注意:如果目前的資料檔可供使用,則「倒溯資料庫」是 DBPITR 的替代方案。
表格空間時間點復原 (TSPITR) 功能可讓您將一或多個表格空間復原到比其他資料庫還早的時間點。
另請參閱:
Zero Data Loss Recovery Appliance
雲端規模 Zero Data Loss Recovery Appliance (通常稱為 Recovery Appliance) 是一個整合設計系統,可大幅降低企業中所有 Oracle 資料庫的資料遺失與備份負荷。
Recovery Appliance 與 RMAN 整合,使用雲端規模的容錯硬體和儲存,為大量資料庫部署集中式備份和復原策略。Recovery Appliance 會持續驗證備份以進行復原。
-
Recovery Appliance 的優點 集中式 Recovery Appliance 可執行大多數資料庫備份與回復處理,讓備份的儲存使用率、效能和可管理性更有效率。
-
Recovery Appliance 環境 受保護的資料庫是一個從屬端資料庫,可將資料備份至 Recovery Appliance。
Recovery Appliance 的優點
集中式 Recovery Appliance 可執行大多數的資料庫備份和回復處理,讓備份的儲存使用率、效能和可管理性更有效率。
主要優點如下:
-
沒有資料遺失
Recovery Appliance 使用下列技術,消除資料中心內大多數資料庫所經歷的資料遺失風險:
-
持續將重做變更從受保護資料庫的 SGA 傳輸至 Recovery Appliance,稱為即時重做傳輸
-
複製至遠端 Recovery Appliance
-
由集中式 Recovery Appliance 製作的自動磁帶備份
-
端對端資料庫區塊驗證
-
-
最小備份負荷
將工作卸載至 Recovery Appliance,以將資料庫伺服器的備份負荷降至最低,此設備可管理統一磁碟集區中多個資料庫的備份。RMAN 永久增量備份策略涉及將初始層次 0 備份至 Recovery Appliance,所有後續的增量備份層次為 1。Recovery Appliance 會結合層次 0 與層次 1 備份來建立虛擬完整備份。Recovery Appliance 會持續壓縮、去除重複項,並驗證區塊層次的備份。
-
改善端對端資料保護可見性
Cloud Control 提供由 Recovery Appliance 管理之備份週期的完整端對端檢視,從起始 RMAN 備份到儲存於磁碟、磁帶或複製到順流 Recovery Appliance 的時間。安裝 Enterprise Manager for Zero Data Loss Recovery Appliance Plug-in (Recovery Appliance Plug-in) 可啟用監督與管理。
-
雲端規模保護
Recovery Appliance 可擴展至支援數十萬或數千個資料庫。架構的主要元件如下:
Recovery Appliance 環境
受保護的資料庫是一個從屬端資料庫,可將資料備份至 Recovery Appliance。
下圖顯示範例環境,其中包括六個受保護資料庫和兩個 Recovery Appliance。每個資料庫都使用 Zero Data Loss Recovery Appliance 備份模組 ( Recovery Appliance 備份模組 ) 作為其備份。此模組是 Oracle 提供的 SBT 程式庫,RMAN 用來將透過網路的備份傳輸至 Recovery Appliance。
圖 4:Recovery Appliance 環境

Recovery Appliance 描述資料資料庫位於每個 Recovery Appliance 上,可管理儲存在復原目錄中的描述資料。將備份傳送至 Recovery Appliance 的所有受保護資料庫都必須使用此復原目錄。備份位於 Recovery Appliance 儲存體位置,這是一組 Oracle ASM 磁碟群組。注意:資料庫可以使用 Recovery Appliance 作為其復原目錄,而不需要將它作為備份儲存區域。
管理員使用 Cloud Control 來管理和監督環境。Cloud Control 針對每個資料庫提供整個備份週期的「單一管理平台」檢視,不論備份是位於磁碟、磁帶或其他 Recovery Appliance。
記憶體管理
記憶體管理包含維護 Oracle 執行處理記憶體結構最佳大小,以符合資料庫變更的需求。初始化參數設定值決定如何管理 SGA 與執行處理 PGA 記憶體。圖 22-5 顯示記憶體管理選項的決策樹。下列各節將詳細說明選項。
圖 5:記憶體管理方法

-
自動記憶體管理:在自動記憶體管理中,Oracle AI Database 會完全自動管理 SGA 和執行處理 PGA 記憶體。這是最簡單的方法,Oracle 強烈建議使用此方法。
-
SGA 的共用記憶體管理您可以手動控制 SGA 的大小,方法是使用自動共用記憶體管理來設定 SGA 大小,或手動調整 SGA 元件。
-
執行處理 PGA 的記憶體管理:如果未啟用自動記憶體管理,則 Oracle AI Database 會使用自動或手動的 PGA 記憶體管理。
自動記憶體管理
在自動記憶體管理中,Oracle AI Database 會完全自動管理 SGA 和執行處理 PGA 記憶體。這是最簡單的方法,Oracle 強烈建議使用此方法。
唯一的使用者指定控制項是目標記憶體大小初始化參數 (MEMORY_TARGET) 和選擇性的記憶體大小上限初始化參數 (MEMORY_MAX_TARGET)。Oracle AI Database 會調整為目標記憶體大小,並視需要在 SGA 與執行處理 PGA 之間重新分配記憶體。
SGA 可以包含記憶體內資料欄存放區 (IM 資料欄存放區) 或記憶體最佳化集區,兩者都是選擇性的。無論您使用哪一種記憶體管理方法,使用 INMEMORY_SIZE 初始化參數調整 IM 資料欄存放區的大小,以及使用 MEMOPTIMIZE_POOL_SIZE 初始化參數調整記憶體最佳化集區的大小。IM 資料欄存放區大小是記憶體目標中所含的記憶體最佳化集區,但不是由自動調整大小演算法所管理。例如,如果您將 MEMORY_TARGET 設為 5 GB,並將 INMEMORY_SIZE 設為 1 GB,則整體記憶體目標為 5 GB (非 6 GB),而 INMEMORY_SIZE 永遠為 1 GB。
下圖顯示一個資料庫,有時候會處理線上使用者提交的工作,有時是批次工作。使用自動記憶體管理,資料庫會根據正在執行的工作類型,自動調整大型集區和資料庫緩衝區快取的大小。請注意,圖形不會描述 IM 資料欄存放區或記憶體最佳化區域。
圖 6:自動記憶體管理

如果您使用 DBCA 建立資料庫並選擇基本安裝選項,則 Oracle AI Database 預設會啟用自動記憶體管理。
另請參閱:
-
「記憶體內區域」
-
「將集區最佳化」
-
Oracle AI Database Administrator's Guide,瞭解自動記憶體管理
SGA 的共用記憶體管理
您可以手動控制 SGA 的大小,方法是使用自動共用記憶體管理來設定 SGA 大小,或是手動調整 SGA 元件。
如果未啟用自動記憶體管理,則系統必須使用 SGA 的共用記憶體管理。共用記憶體管理有下列其中一種形式:
-
自動共享記憶體管理
這個模式讓您能夠對 SGA 的大小行使更直接的控制權,這是自動記憶體管理停用時的預設值。資料庫會將 SGA 總計調整為目標大小,並動態調整 SGA 元件的大小。如果您使用伺服器參數檔,Oracle AI Database 會記住資料庫執行處理關閉時自動調整元件的大小。
-
手動共享記憶體管理
在此模式中,您會設定數個個別 SGA 元件的大小,並持續手動調整個別的 SGA 元件。您可以完全控制個別 SGA 元件大小。當自動記憶體管理與自動共用記憶體管理都停用時,資料庫預設為此模式。
注意:停用自動記憶體管理時,在某些情況下,資料庫可以根據使用者工作負載,自動調整共用集區和緩衝區快取的相對大小。
另請參閱:
-
Oracle AI Database Administrator's Guide,瞭解共用記憶體管理
-
My Oracle Support 注意事項 KB84770,瞭解在手動模式期間自動調整大小的詳細資訊:
執行處理 PGA 的記憶體管理
如果未啟用自動記憶體管理,Oracle AI Database 會使用自動或手動的 PGA 記憶體管理。
下列是可以管理 PGA 記憶體的模式:
-
自動 PGA 記憶體管理系統
當自動記憶體管理 (
MEMORY_TARGET) 停用且PGA_AGGREGATE_TARGET設為非零值時,資料庫會使用自動 PGA 記憶體管理。在此模式中,PGA_AGGREGATE_TARGET會為執行處理 PGA 指定「軟」目標大小。目標既軟,因為僅適用於可選擇使用暫時空間而非 PGA 的特定記憶體配置類型。資料庫會將執行處理 PGA 的大小時調整為此目標,並動態調整個別 PGA 的大小時。如果您未明確設定目標大小,則資料庫會自動設定合理的預設值。PGA_AGGREGATE_LIMIT初始化參數可動態設定 PGA 記憶體的全執行處理嚴格限制。因為此參數會回應變更記憶體情況,所以您不需要明確設定參數值。依照預設,PGA_AGGREGATE_LIMIT會設為下列較大的值:-
2 GB
-
PGA_AGGREGATE_TARGET初始化參數設定的 200% -
(
PROCESSES初始化參數設定值) * 3 MB
背景處理作業會定期比較 PGA 大小與
PGA_AGGREGATE_LIMIT所設定的限制。如果已達或超過限制,則此處理作業會使用最無法調整的 PGA 記憶體來終止階段作業呼叫。如果這些階段作業仍沒有足夠的記憶體,則這些階段作業也會終止。 -
-
手動 PGA 記憶體管理
當自動記憶體管理停用且
PGA_AGGREGATE_TARGET設為0時,資料庫預設為手動 PGA 管理。舊版的 Oracle AI Database 需要 DBA 手動為每種類型的 SQL 運算子 (例如排序或雜湊結合 ) 指定工作區大小上限。此技術證實非常困難,因為工作負載常常會變更。雖然 Oracle AI Database 支援手動 PGA 記憶體管理方法,但 Oracle 強烈建議自動記憶體管理。
另請參閱:Oracle AI Database Performance Tuning Guide,瞭解 PGA 記憶體管理
記憶體管理方法摘要
記憶體管理是自動或手動的。
如果您未啟用自動記憶體管理,則必須分別為 SGA 設定一個記憶體管理方法,為 PGA 設定一個記憶體管理方法。注意:當整個資料庫執行處理停用自動記憶體管理時,Oracle Database 預設會啟用自動 PGA 記憶體管理。
下表包含 INMEMORY_SIZE 初始化參數與 MEMOPTIMIZE_POOL_SIZE 初始化參數。兩者皆為可選的控制記憶體區域。
表格 3 記憶體管理方法
| 實例 | SGA | PGA | 說明 | 初始化參數 |
|---|---|---|---|---|
| 自動 | n/a | n/a | 資料庫會根據單一執行處理目標大小來調整執行處理的大小。 | 您設定:
|
| n/a | 自動 | 自動 | 資料庫會根據 SGA 目標自動調整 SGA。 資料庫會根據 PGA 目標自動調整 PGA。 |
您設定:
資料庫會自動設定 |
| n/a | 自動 | 手動 | 資料庫會根據 SGA 目標自動調整 SGA。 您可以手動控制 PGA,為每種 SQL 運算子類型設定工作區大小上限。 |
您設定:
|
| n/a | 手動 | 自動 | 您可以透過設定個別元件大小來手動控制 SGA。 資料庫會根據 PGA 目標自動調整 PGA。 |
您設定:
資料庫會自動設定 |
| n/a | 手動 | 手動 | 您必須手動設定 SGA 元件大小。 您可以手動控制 PGA,為每種 SQL 運算子類型設定工作區大小上限。 |
您必須手動設定 SGA 元件大小。您設定:
|
註腳 1
資料庫會自動設定 PGA_AGGREGATE_LIMIT 初始化參數。您也可以選擇手動設定此參數。
註腳 2
資料庫會自動設定 PGA_AGGREGATE_LIMIT 初始化參數。您也可以選擇手動設定此參數。
另請參閱:Oracle AI Database Administrator's Guide,因為所有平台均無法使用自動記憶體管理
Resource Management 和任務排程
Oracle AI Database 提供工具來協助您管理資源和排程任務,以降低對使用者的影響。
在具有許多作用中使用者的資料庫中,資源管理是資料庫管理的重要環節。使用過多資源的階段作業可防止其他階段作業執行工作。相關問題是如何排定工作,讓它們在最佳時間執行。Oracle AI Database 提供工具來協助解決這些問題。
-
資料庫資源管理程式 Oracle AI Database Resource Manager (以下稱「資源管理程式」) 可精細控制配置給使用者帳戶、應用程式以及服務的資料庫資源。「資源管理程式」的主要作用是守門員,會拖慢某些工作執行速度,讓其他人可以快速執行。
-
CPU 管理從 Oracle AI Database 26ai 開始,Oracle 提供另一種 CPU 資源管理方法,可在伺服器上的所有資料庫執行處理之間運作。
-
Oracle Scheduler Oracle Scheduler (Scheduler) 讓資料庫管理員和應用程式開發人員能夠控制各種作業在資料庫環境中的發生時間和位置。
資料庫資源管理程式
Oracle AI Database Resource Manager (資源管理程式) 可精細控制配置給使用者帳戶、應用程式以及服務的資料庫資源。「資源管理程式」的主要作用是守門員,會拖慢某些工作執行速度,讓其他人可以快速執行。
DBMS_RESOURCE_MANAGER PL/SQL 套裝程式可解決作業系統管理不佳的許多資源配置問題,包括:
-
超量製造費用
-
效率不佳的排程
-
不適當的資源配置
-
無法管理資料庫特定資源
「資源管理程式」可讓資料庫更妥善地控制硬體資源的配置,以及安排資料庫內工作的優先順序,以協助克服先前的問題。您可以根據階段作業屬性將階段作業分類為群組,然後將資源配置給這些群組以最佳化硬體使用率。您可以使用「資源管理程式」來設定 PDB 記憶體的使用限制。
資源會根據資料庫管理員指定的資源計劃分配給使用者。計畫指定如何在資源用戶群組之間分配資源,資源用戶群組是依資源需求分組的使用者階段作業。資源計畫指令會建立資源用戶群組與計畫的關聯,並指定如何將資源配置給群組。圖 22-7 顯示在當天時間內同時執行 OLTP 應用程式和報表應用程式的組織簡單資源計畫。目前作用中計畫 DAYTIME 會將 CPU 資源配置給三個資源用戶群組。具體而言,OLTP 會分配 75% 的 CPU 時間,REPORTS 會分配 15%,而 OTHER_GROUPS 則會收到其餘的 10%。
圖 7:簡單資源計畫

「資源管理程式」可以解決的一個問題是失控查詢,它可以使用「SQL 監督」來監督。「資源管理程式」可讓您指定臨界值來識別和回應失控 SQL 敘述句。例如,您可以為用戶群組中的每個前景處理作業指定 CPU 時間、經歷時間、實體或邏輯 I/O 以及 PGA 使用狀況臨界值。回應「資源管理程式」可以切換至較低優先順序的用戶群組、終止 SQL 敘述句或記錄臨界值違規。
另請參閱:
-
Oracle AI Database Administrator's Guide,瞭解如何使用資源管理程式
-
Oracle AI Database PL/SQL Packages and Types Reference 瞭解如何使用
DBMS_RESOURCE_MANAGERPL/SQL 套裝程式
CPU 管理
從 Oracle AI Database 26ai 開始,Oracle 提供另一種 CPU 資源管理方法,可在伺服器上的所有資料庫執行處理之間運作。
在舊版中,Oracle 提供一種 CPU 資源管理方法,可在資料庫執行處理內作業。從 Oracle AI Database 26ai 開始,您可以設定 RESOURCE_MANAGER_CPU_SCOPE 來控制 CPU 資源管理的範圍。此參數可讓您選擇兩種控制方法。
將 RESOURCE_MANAGER_CPU_SCOPE 設為 SERVER_WIDE,即可啟用伺服器層次的執行處理間 CPU 資源管理。在 Oracle AI Database 26ai 中導入,當多個資料庫執行處理共用 Linux 伺服器時,即可使用此方法。它可以管理伺服器上所有資料庫執行處理的 CPU 資源。Oracle 會使用此方法,自動將 Linux 控制群組 (群組) 設定為想要的 CPU 共用與 CPU 使用量限制,然後將資料庫階段作業置於適當的 cgroups。
RESOURCE_MANAGER_CPU_SCOPE 預設設為 INSTANCE_ONLY。
另請參閱:
- Oracle AI Database Administrator's Guide,瞭解 CPU 管理選項。
Oracle Scheduler
Oracle Scheduler (Scheduler) 讓資料庫管理員和應用程式開發人員能夠控制各種工作在資料庫環境的時間和地點。
「排程器」提供複雜的企業排程功能,可用來:
-
根據時間或事件排定工作執行
-
以設定業務需求模型的方式排定工作處理
-
管理與監視職務
-
在叢集環境中執行和管理工作
程式物件 (程式) 包含 Scheduler 將執行之命令的相關描述資料,包括任何引數的預設值。排程物件 (排程) 包含執行日期與時間以及週期模式的相關資訊。工作物件 (工作) 會將程式與排程建立關聯。若要定義執行的內容與時間,您可以指定方案、排程與工作之間的關係。
Scheduler 是以 DBMS_SCHEDULER PL/SQL 套裝程式中的一組函數與程序實行。您會使用此套裝程式或使用 Enterprise Manager 建立及操控 Scheduler 物件。因為 Scheduler 物件是標準的資料庫物件,所以您可以使用系統與物件權限來控制對它們的存取。圖 22-8 顯示 Scheduler 的基本架構。工作表格是所有工作的容器,每個資料庫一個表格。會視需要自動啟動和停止工作協調器背景處理作業。當工作必須執行時,協調器會喚醒工作子項處理作業。子項處理作業會從工作表格收集描述資料並執行工作。
圖 8:排程器元件

另請參閱:
-
Oracle AI Database Administrator's Guide,瞭解 Scheduler
效能和調整
身為 DBA,您必須負責執行 Oracle 資料庫的效能。通常,效能問題是由無法接受的回應時間 (即完成指定工作負載的時間) 或傳輸量 (即可在指定時間內完成的工作量) 所導致。
一般問題包括:
-
CPU 瓶頸
-
記憶體結構大小不足
-
I/O 容量問題
-
效率不佳或高負載 SQL 敘述句
-
調整 SQL 敘述句之後發生未預期的效能降低
-
並行與競爭問題
-
資料庫組態問題
調整的一般目標是改善回應時間、增加傳輸量或兩者。特定且可測量的目標可能是「將指定 SELECT 陳述式的回應時間縮短至 5 秒以下」。是否可達成此目標,取決於 DBA 可能或可能無法控制的因素。一般而言,調整是以最有效的方式使用資料庫資源,達到特定、可測量以及可達成的調整目標。
Oracle 效能方法是以找出並排除資料庫中的瓶頸,以及開發有效率的 SQL 敘述句為依據。若要套用 Oracle 效能方法,必須執行下列作業:
-
執行預先調整準備
-
定期主動調整資料庫
-
在使用者報告效能問題時有反應地調整資料庫
-
識別、調整以及最佳化高負載 SQL 陳述式的方法
本節描述 Oracle AI Database 效能調整的重要層面,包括使用建議程式。Oracle AI Database 建議者提供具體建議,說明如何因應關鍵資料庫管理挑戰,涵蓋各種領域,包括空間、效能和還原管理。
-
資料庫自我監督會在資料庫執行正常作業時進行自我監督,以確保資料庫能夠察覺到發生的問題。Oracle AI Database 可以傳送伺服器產生的警示,通知您即將發生的問題。
-
自動工作負載儲存區域 (AWR) 自動工作負載儲存區域 (AWR) 是歷史效能資料的儲存區域,其中包含系統、階段作業、個別 SQL 敘述句、區段以及服務的累計統計資料。
-
自動資料庫監督 (ADDM) 使用在 AWR (自動工作負載儲存區域) 中擷取的統計資料,ADDM 會自動並主動診斷資料庫效能,並決定如何解決已識別的問題。您也可以手動執行 ADDM。
-
作用中階段作業歷史記錄 (ASH) 作用中階段作業歷史記錄 (ASH) 每秒對作用中資料庫階段作業進行抽樣,可以將資料寫入記憶體和永久儲存。ASH 是資料庫自行管理架構中不可或缺的一部分,可用於診斷效能問題。
-
Application and SQL Tuning Oracle Database 將 SQL 調整程序完全自動化。另請參閱:Oracle AI Database Get Started with Performance Tuning 和 Oracle AI Database SQL Tuning Guide 提供學習如何導入 Oracle 效能方法
資料庫自行監督
自行監督會在資料庫執行其一般作業時進行,以確保資料庫能夠察覺到發生的問題。Oracle AI Database 可以傳送伺服器產生的警示,通知您即將發生的問題。
發生問題或資料不符合測量結果的預期值 (例如每秒實體讀取或 SQL 回應時間) 時,會自動產生警示。測量結果是累計統計資料的變更速率。伺服器產生的警示可以根據使用者指定的臨界值層次或事件發生。
伺服器產生的警示不僅可識別問題,還會建議如何解決回報的問題。例如,警示快速復原區域的空間不足,建議刪除過時的備份或增加額外的磁碟空間。
另請參閱: Oracle AI Database Administrator's Guide
自動工作負載儲存區域 (AWR)
自動工作負載儲存區域 (AWR) 是歷史效能資料的儲存區域,其中包含系統、階段作業、個別 SQL 敘述句、區段以及服務的累計統計資料。
AWR 統計資料是效能調整的基礎。AWR 藉由自動收集資料庫統計資料以進行問題偵測與調整,作為資料庫自我管理的基礎。
如下圖所示,資料庫會將最近的 AWR 統計資料儲存在 SGA 中。MMON 處理作業預設會每小時收集統計資料並建立 AWR 快照。AWR 快照是一組在特定時間擷取的效能統計資料。資料庫會將快照寫入 SYSAUX 表格空間。AWR 會管理快照空間,根據可設定的快照保留原則永久清除較舊的快照。
圖 9:自動工作負載儲存區域 (AWR)

AWR 基準是統計資料率的集合,通常是在系統在尖峰負載時表現良好的一段期間內取得。您可以將一組或範圍的 AWR 快照指定為基準。透過使用 AWR 報表比較效能不良期間擷取的統計資料與基準,您可以診斷問題。
稱為 AutoTask 的自動化維護基礎架構,說明 Oracle Database 如何使用 AWR 進行自我管理。透過分析 AWR 資料,AutoTask 可判斷維護作業的需求,並將其排定在 Oracle Scheduler 維護時段中執行。作業範例包括收集最佳化處理程式的統計資料,以及執行「自動區段建議程式」。
另請參閱:
自動資料庫監督 (ADDM)
使用在 AWR (自動工作負載儲存區域) 中擷取的統計資料,ADDM 會自動並主動診斷資料庫效能,以及判斷如何解決已識別的問題。您也可以手動執行 ADDM。自動資料庫診斷監督 (ADDM) 是內建於 Oracle Database 中的自行建議程式。
ADDM 採用一種整體的系統效能方法,以時間作為元件之間的通用幣別。ADDM 會識別 Oracle Database 最耗時的區域。例如,資料庫可能花費過多的時間等待可用的資料庫緩衝區。ADDM 會向下展開以找出問題的根本原因,不僅僅是徵兆,還會報告問題對 Oracle Database 的整體影響。處理期間發生最少的製造費用。
在許多狀況下,ADDM 會建議解決方案並量化預期的效能優勢。例如,ADDM 可能會建議對硬體、資料庫組態、資料庫綱要或應用程式的變更。如果提出建議,ADDM 會報告時間效益。使用時間作為計量,可以比較問題或建議。
除了報告潛在的效能問題外,ADDM 還會記錄未發生問題的資料庫區域。像是 I/O 與記憶體等不會大幅影響資料庫效能的子元件,會在初期從分類樹狀結構刪除。ADDM 會列出這些子元件,因此您可以快速看到在這些區域中執行動作沒有什麼好處。
另請參閱:Oracle AI Database 效能調校入門和 Oracle AI Database Performance Tuning Guide
作用中階段作業歷史記錄 (ASH)
作用中階段作業歷史記錄 (ASH) 每秒對作用中資料庫階段作業進行抽樣,並將資料寫入記憶體和永久儲存。ASH 是資料庫自行管理架構中不可或缺的一部分,可用於診斷效能問題。
不同於「自動工作負載儲存區域 (AWR)」所收集的執行處理層次統計資料,資料庫會收集階段作業層次的 ASH 統計資料。作用中階段作業是使用 CPU 且不在等待閒置等待類別中的事件的階段作業。
您可以使用 Enterprise Manager 或 SQL 命令檔來產生 ASH 報表,以收集指定持續時間內收集的階段作業統計資料。您可以針對下列項目使用 ASH 報表:
-
自動資料庫診斷監督 (ADDM) 未識別的短期效能問題分析
-
依不同維度或其組合 (例如時間、階段作業、模組、動作或 SQL ID) 進行範圍或目標效能分析
例如,使用者通知您資料庫在下午 10:00 到下午 10:02 之間很慢。不過,2 分鐘的效能降低代表從 10:00 p.m. 和 11:00 p.m. 開始的 AWR 快照間隔小部分,且不會顯示在 ADDM 發現項目中。ASH 報表可以協助識別暫時問題的來源。
另請參閱:Oracle AI Database 效能調校入門和 Oracle AI Database Performance Tuning Guide
應用程式和 SQL 調整
Oracle Database 完全自動化 SQL 調整流程。
ADDM 會識別耗用異常高系統資源的 SQL 敘述句,因此會造成效能問題。此外,就 CPU 和共用記憶體使用量而言,AWR 會自動擷取常用 SQL 敘述句。高負載 SQL 敘述句的識別會自動產生,不需要任何介入。
-
EXPLAIN PLAN 敘述句工具 (例如
EXPLAIN PLAN敘述句) 可讓您檢視最佳化處理程式選擇的執行計畫。 -
最佳化處理程式統計資料建議程式「最佳化處理程式統計資料建議程式」是診斷軟體,可分析您目前如何收集統計資料、現有統計資料收集工作的有效性,以及所收集統計資料的品質。「最佳化處理程式統計資料建議程式」使用的建議程式架構與「自動資料庫診斷監督 (ADDM)」、「SQL 效能分析器」以及其他建議程式相同。
-
SQL 調整建議程式自動 SQL 調整的介面是「SQL 調整建議程式」,它會在系統維護時段期間自動以維護作業的方式執行。
-
SQL 存取建議程式使用「SQL 存取建議程式」來協助您分析 SQL 查詢,以及判斷最佳化綱要物件或調整查詢的方式。
-
SQL 計畫管理使用 SQL 計畫管理,只執行已測試與已驗證的計畫,管理 SQL 執行計畫。
EXPLAIN PLAN 敘述句
您可以使用 EXPLAIN PLAN 敘述句等工具來檢視最佳化處理程式所選擇的執行計畫。
EXPLAIN PLAN 顯示目前在目前階段作業中執行的指定 SQL 查詢的查詢計畫。其他工具包括 Oracle Enterprise Manager 和 SQL*Plus AUTOTRACE 命令。
另請參閱:Oracle AI Database SQL Language Reference,瞭解 EXPLAIN PLAN
最佳化處理程式統計資料建議程式
「最佳化處理程式統計資料建議程式」是診斷軟體,可分析您目前如何收集統計資料、現有統計資料收集工作的有效性,以及所收集統計資料的品質。「最佳化處理程式統計資料建議程式」使用的建議程式架構與「自動資料庫診斷監督 (ADDM)」、「SQL 效能分析器」以及其他建議程式相同。
「最佳化處理程式統計資料建議程式」比傳統方法提供下列優點,而傳統方法則依賴最佳實行範例:
-
提供易於瞭解的報表
-
提供指令碼以實作不需要變更應用程式代碼的必要修正
-
在維護時段中每天執行一次名稱為
AUTO_STATS_ADVISOR_TASK的預先定義工作 -
提供
DBMS_STATS套裝程式中的 API,可讓您手動建立及執行作業、將發現項目和建議儲存在資料說明視觀表中、產生作業報表,以及在需要時實行更正 -
與現有工具整合,例如 Oracle Enterprise Manager (Enterprise Manager)
「最佳化處理程式統計資料建議程式」會維護規則,這是由建議程式執行其檢查的 Oracle 提供標準。以目前功能集為基礎的規則包含 Oracle 最佳作法。如果最佳實行範例從版本變更成版本,則「最佳化處理程式統計資料建議程式」規則也會變更。透過此方式,建議程式一律會提供最新的建議。
「最佳化處理程式統計資料建議程式」會檢查統計資料收集處理作業,然後產生發現項目的報告,這些發現項目違反規則。如果建議程式提出建議,而且如果它根據這些建議來建議動作,您就可以自動實行這些動作,或是產生可編輯的可執行 PL/SQL 命令檔。
建議程式作業會在維護時段自動執行,但是您也可以視需要加以執行。
另請參閱:
-
Oracle AI Database SQL Tuning Guide,瞭解有關最佳化處理程式統計資料建議程式的詳細資訊
-
Oracle AI Database PL/SQL Packages and Types Reference,瞭解
DBMS_STATS套裝程式
SQL 調整建議程式
自動 SQL 調整的介面是「SQL 調整建議程式」,它會在系統維護時段期間自動以維護作業的方式執行。
在每次自動執行期間,建議程式會在資料庫中選取高負載 SQL 查詢,並產生調整這些查詢的建議。
「SQL 調整建議程式」建議分為下列類別:
-
統計分析
-
SQL 分析
-
存取路徑分析
-
SQL 結構分析
SQL 設定檔包含 SQL 敘述句特有的額外統計資料,並可讓最佳化處理程式產生更好的執行計畫。基本上,SQL 設定檔是分析查詢的方法。存取路徑和 SQL 結構分析對於在開發中或自家生產環境應用程式中調整應用程式非常有用。
「SQL 調整建議程式」的主要優點是解決方案來自於最佳化處理程式,而非外部工具。因此,由負責執行計畫與 SQL 效能的資料庫元件執行調整。調整處理作業可以考慮 SQL 敘述句的過去執行統計資料,並自訂此敘述句的最佳化處理程式設定值。
SQL 存取建議程式
使用「SQL 存取建議程式」來協助您分析 SQL 查詢,以及判斷最佳化綱要物件或調整查詢的方式。
「SQL 存取建議程式」提供如何最佳化資料存取路徑的建議。具體而言,它會建議如何透過分割、具體化視觀表、索引以及具體化視觀表日誌來改善資料庫效能。
分割區和索引等綱要物件對於最佳化複雜且資料密集的查詢至關重要。不過,建立和維護這些物件可能相當耗時,而且空間需求可能非常重要。「SQL 存取建議程式」會建議指定工作負載的資料結構,以協助達成效能目標。
您可以使用精靈或 DBMS_ADVISOR 套裝程式,從 Enterprise Manager 執行「SQL 存取建議程式」。DBMS_ADVISOR 包含可從任何 PL/SQL 程式呼叫的分析與諮詢功能及程序集合。
另請參閱:Oracle AI Database 效能調校入門和 Oracle AI Database SQL Tuning Guide
SQL 計畫管理
透過使用 SQL 計畫管理,只執行已測試與已驗證的計畫,管理 SQL 執行計畫。
依照預設,「SQL 計畫管理 (SPM) 發展建議程式」會在排定的維護時段內每天執行、排名所有未接受的計畫,以及執行儘可能多的計畫測試執行。「SPM 發展建議程式」會選取 SQL 計畫基準中最低成本的接受計畫,與每個未接受的計畫進行比較。如果未接受的計畫執行得比現有已接受的計畫好,則建議程式會接受它。
高頻率 SPM (啟用時) 會在維護時段外的定期背景作業中執行「SPM 發展建議程式」,以提供更及時的效能改進。高頻率作業會使用重要的系統資源來識別 SQL 敘述句,並檢查先前使用的 SQL 執行計畫是否執行得較佳。如果發生此情況,將會建立新的 SQL 計畫基準,以強制執行較早的 SQL 執行計畫並修復 SQL 效能回歸。
從 Oracle Database 26ai 開始,如果啟用,如果 SQL 敘述句使用新的 SQL 執行計畫,即時 SPM 將會立即起始效能分析。如果先前發現的 SQL 執行計畫執行得較佳,則會立即建立新的 SQL 計畫基準,而不需要依賴背景作業來執行此作業。
另請參閱:
-
Oracle AI Database SQL Tuning Guide,瞭解 SQL 計畫管理