資料庫管理員的概念

此頁面上的命令檔內容僅適用於瀏覽用途,而且無法利用任何方式來更改內容。

本部分描述資料庫管理員的職責、工具和基本知識。

資料庫管理員的職責

資料庫管理員 (DBA) 的主要職責是讓企業資料可供其使用者使用。

DBA 必須與開發人員密切合作,以確保其應用程式能夠有效地使用資料庫,並與系統管理員聯繫,以確保實體資源足夠並有效率地使用。

Oracle DBA 負責瞭解 Oracle AI Database 架構和資料庫的運作方式。DBA 可預期再執行以下工作:

使用者類型及其角色與職責取決於資料庫環境。一個小型資料庫可能有一個 DBA。非常大型的資料庫可能會將 DBA 職責劃分給數個專家,例如安全人員、備份操作員以及應用程式管理員。

另請參閱:

資料庫管理員工具

Oracle 提供數種工具來管理資料庫。

本節描述一些常用的工具。

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 元件。

有時快速應用程式通知 (FAN) 的一個部分可能會變得無法使用或發生效能問題。在此情況下,Cloud Control 會顯示自動產生的警示,讓管理員能夠採取適當的復原動作。

Cloud Control 的組成部分包括:

另請參閱:

Oracle Enterprise Manager Database Express 12c

Oracle Enterprise Manager Database Express (EM Express) 是內建於 Oracle 資料庫中的 Web 管理產品。它不需要特殊的安裝或管理。

EM Express 在 Cloud Control 中包含重要的效能管理與基本管理頁面。這些頁面包含下列項目:

您可以透過 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 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 可從外部檔案 (稱為資料檔 ) 將資料載入資料庫表格中 (不要和內部資料庫資料檔混淆)。它擁有強大的資料剖析引擎,對於資料檔案中的資料格式幾乎沒有限制。

您可以使用 SQL*Loader 執行下列動作:

一般的 SQL*Loader 階段作業會以輸入 SQL*Loader 控制檔與一或多個資料檔的方式進行。輸出為 Oracle 資料庫、日誌檔、錯誤的檔案,以及可能為捨棄檔。下圖說明一般 SQL*Loader 階段作業的流程。

圖 1:SQL*Loader 階段作業

cncpt271.gif 圖解描述

您也可以使用 SQL*Loader Express 模式,當您在 SQL*Loader 命令中指定 table 參數時便會啟用此模式,如下列範例所示:

% sqlldr hr table=employees

不允許任何控制檔,因為這樣會讓 SQL*Loader 更易於使用。SQL*Loader 不使用剖析控制檔,而是使用表格資料欄定義來決定輸入資料類型。SQL*Loader 有數種預設的假設,包括字元集、欄位分界字元,以及資料、日誌和錯誤記錄檔的名稱。您可以使用命令行參數覆寫許多預設值。

另請參閱:

Oracle Data Pump 匯出與匯入

Oracle Data Pump 可將資料和描述資料從一個資料庫高速移動至另一個資料庫。

此技術是下列 Oracle AI Database 資料移動公用程式的基礎:

Oracle Data Pump 是由下列不同部分所組成:

下圖顯示 Oracle Data Pump 如何與 SQL*Loader 及外部表格整合。如上所示,SQL*Loader 與外部表格 API 和資料汲取 API 整合,以便將資料載入外部表格。Oracle Enterprise Manager Cloud Control (Cloud Control) 與可傳輸表格空間之類的從屬端都可以使用 Oracle Data Pump 基礎架構。

圖 2:Oracle Data Pump 架構

cncpt261.png 圖解描述

另請參閱:

Oracle LogMiner

Oracle LogMiner 可以讓您透過 SQL 介面查詢重做日誌檔。

重做日誌檔中包含資料的潛在用途包括:

LogMiner 可透過命令行介面或透過 Oracle LogMiner Viewer GUI (Enterprise Manager 的一部分) 存取。

另請參閱:Oracle AI Database Utilities,以深入瞭解 LogMiner

ADR 命令解譯器 (ADRCI)

ADRCI 是一個命令行公用程式,可讓您調查問題、檢視狀況檢查報表,以及封裝第一次失敗資料並將其上傳至 Oracle Support。

您也可以使用此公用程式來檢視自動診斷儲存區域 (ADR) 中的追蹤檔名稱,以及檢視警示日誌。ADRCI 具有豐富的命令集,您可以透過互動方式或在命令檔中使用。

另請參閱:

資料庫管理員主題

本節涵蓋對 DBA 最重要的主題,以及手冊中其他部分未曾討論過的主題。

備份與復原

備份與復原是一組概念、程序以及策略,用於保護資料庫免受媒體失敗或使用者錯誤所造成的資料遺失。

備份是資料的複本。備份可以包含資料庫的重要部分,例如資料檔、伺服器參數檔以及控制檔。範例備份與復原案例是導致資料檔遺失的失敗磁碟機。如果遺失檔案的備份存在,您可以回復並復原該檔案。在遺失之前,將資料回復至其狀態的作業稱為媒體復原。

本節包含下列主題:

另請參閱:

要復原備份與回復技術,備份與回復的能力

您可以使用「復原管理程式」或使用者管理的技巧,來備份、回復及復原 Oracle 資料庫。

兩種方法之間的主要差異如下:

另請參閱:

復原管理程式架構

您可以從命令行與從 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 架構

cncpt318.gif 圖解描述

無論您使用的備份與復原技術為何,Oracle 建議您設定快速復原區域。此資料庫管理的目錄、檔案系統或 Oracle ASM 磁碟群組可集中備份與復原檔案,包括作用中控制檔、線上與存檔的重做日誌檔,以及備份。Oracle AI Database 復原元件會與快速復原區域互動,以確保資料庫復原能力。

另請參閱:

資料庫備份

資料庫備份可以是實體的,也可以是邏輯的。

實體備份 (備份與復原策略的主要考量) 是實體資料庫檔案的複本。您可以使用 RMAN 或作業系統公用程式進行實體備份。

相較之下,邏輯備份則包含表格、預存程序以及其他邏輯資料。您可以使用 Oracle AI Database 公用程式 (例如「資料汲取匯出」) 擷取邏輯資料,並將其儲存在二進位檔案中。邏輯備份可以補充實體備份。

實體備份具有較大的精細度與有限的可傳輸性,但非常快速。邏輯備份具有精細的精細度和完整的可傳輸性,但比實體備份慢。

完整與部分資料庫備份

整個資料庫備份是資料庫中每個資料檔的備份,再加上控制檔。整個資料庫備份是最常見的備份類型。

部分資料庫備份包括資料庫的子集:個別的表格空間或資料檔。表格空間備份是表格空間或多個表格空間中所有資料檔的備份。只有當資料庫是以 ARCHIVELOG 模式運作時,表格空間備份 (不論一致或不一致) 才有效,因為必須進行重做,才能讓回復的表格空間與資料庫的其餘部分一致。

一致和不一致備份

整個資料庫備份的一致或不一致。

在一致備份中,所有讀取 / 寫入資料檔與控制檔都具有相同的 checkpoint SCN ,可保證這些檔案包含此 SCN 之前的所有變更。這類備份在回復之後並不需要復原。

一致的資料庫備份只能在一致的關閉之後執行,而且是以 NOARCHIVELOG 模式運作之資料庫的唯一有效備份選項。其他備份選項則需要媒體復原以確保一致性,必須套用存檔重做日誌檔才能執行。注意:如果您在未套用重做的情況下回復一致的整個資料庫備份,就會遺失備份後進行的所有交易。

在不一致的備份中,不保證讀取 / 寫入資料檔與控制檔都具有相同的檢查點 SCN,因此可能會遺失變更。所有線上備份都必須不一致,因為可以在進行備份時修改資料檔。

不一致的備份提供優越的可用性,因為您不需要關閉資料庫來進行完全保護資料庫的備份。如果資料庫是以 ARCHIVELOG 模式執行,而且如果您備份存檔重做日誌和資料檔,則不一致的備份可以是聲音備份和復原策略的基礎。

另請參閱:

備份集和影像複本

RMAN BACKUP 命令會產生影像複本或備份集。

備份類型不同如下:

另請參閱:Oracle AI Database Backup and Recovery User's Guide 以深入瞭解備份集和影像複本

資料修復

雖然有數個問題可能會使資料庫的一般作業停止,或是影響 I/O 作業,但只有某些問題需要 DBA 介入和資料修復。

在下列情況下,通常需要修復資料:

一般而言,您有多種方法可以解決先前的問題。本節總結列出其中一些解決方案。

另請參閱:

Oracle Flashback 技術

Oracle AI Database 提供一組稱為 Oracle Flashback Technology 的功能,支援檢視過去的資料狀態,以及將資料倒帶或往前到不同時間,而不需要回復備份。

視資料庫變更而定,倒溯功能通常會以較媒體復原的速度更快且對可用性的影響較少,來逆轉不想要的變更。下列倒溯功能與備份和復原最相關:

另請參閱:

區塊媒體回復

區塊媒體復原是一種在資料檔上線時,回復和復原損毀資料區塊的技術。

區塊損毀是指不是採用可辨識 Oracle 格式,或是其內容不符合內部一致的資料區塊。如果您偵測到區塊損毀,且只有少數區塊損毀,則可能偏好使用區塊復原來進行資料檔復原。

另請參閱:

資料檔復原

資料檔復原可修復遺失或損毀的目前資料檔或控制檔。它也可以在沒有 OFFLINE NORMAL 選項的表格空間離線時復原遺失的變更。

如果您還原資料檔或控制檔的備份,或者在沒有 OFFLINE NORMAL 選項的情況下將資料檔離線,則必須進行媒體復原。如果線上資料檔需要媒體復原,而且在媒體復原完成之前,都無法開啟資料庫,也無法讓需要媒體復原的資料檔上線。

若要還原資料檔或控制檔的實體備份,則是重新建構資料檔,並將其提供給 Oracle AI Database 使用。復原備份時,是套用存檔重做日誌檔來重新建構遺失的變更。RMAN 也可以復原含有增量備份的資料檔,此備份只包含先前備份後修改的資料區塊。

不同於執行處理復原 (會自動將變更套用至線上檔案),媒體復原必須由使用者呼叫,然後將存檔重做日誌檔套用到回復的備份。資料檔媒體復原只能在資料庫中非由任何資料庫執行處理開啟的離線資料檔或資料檔上作業。

資料檔媒體復原會根據是否套用所有變更而有所不同:

另請參閱:

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。每個資料庫都使用 Zero Data Loss Recovery Appliance 備份模組 ( Recovery Appliance 備份模組 ) 作為其備份。此模組是 Oracle 提供的 SBT 程式庫,RMAN 用來將透過網路的備份傳輸至 Recovery Appliance。

圖 4:Recovery Appliance 環境

amagd_vm_025.png 圖解描述

Recovery Appliance 描述資料資料庫位於每個 Recovery Appliance 上,可管理儲存在復原目錄中的描述資料。將備份傳送至 Recovery Appliance 的所有受保護資料庫都必須使用此復原目錄。備份位於 Recovery Appliance 儲存體位置,這是一組 Oracle ASM 磁碟群組。注意:資料庫可以使用 Recovery Appliance 作為其復原目錄,而不需要將它作為備份儲存區域。

管理員使用 Cloud Control 來管理和監督環境。Cloud Control 針對每個資料庫提供整個備份週期的「單一管理平台」檢視,不論備份是位於磁碟、磁帶或其他 Recovery Appliance。

記憶體管理

記憶體管理包含維護 Oracle 執行處理記憶體結構最佳大小,以符合資料庫變更的需求。初始化參數設定值決定如何管理 SGA 與執行處理 PGA 記憶體。圖 22-5 顯示記憶體管理選項的決策樹。下列各節將詳細說明選項。

圖 5:記憶體管理方法

cncpt242.gif 圖解描述

自動記憶體管理

在自動記憶體管理中,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:自動記憶體管理

cncpt256.gif 圖解描述

如果您使用 DBCA 建立資料庫並選擇基本安裝選項,則 Oracle AI Database 預設會啟用自動記憶體管理。

另請參閱:

SGA 的共用記憶體管理

您可以手動控制 SGA 的大小,方法是使用自動共用記憶體管理來設定 SGA 大小,或是手動調整 SGA 元件。

如果未啟用自動記憶體管理,則系統必須使用 SGA 的共用記憶體管理。共用記憶體管理有下列其中一種形式:

另請參閱:

執行處理 PGA 的記憶體管理

如果未啟用自動記憶體管理,Oracle AI Database 會使用自動或手動的 PGA 記憶體管理。

下列是可以管理 PGA 記憶體的模式:

另請參閱:Oracle AI Database Performance Tuning Guide,瞭解 PGA 記憶體管理

記憶體管理方法摘要

記憶體管理是自動或手動的。

如果您未啟用自動記憶體管理,則必須分別為 SGA 設定一個記憶體管理方法,為 PGA 設定一個記憶體管理方法。注意:當整個資料庫執行處理停用自動記憶體管理時,Oracle Database 預設會啟用自動 PGA 記憶體管理。

下表包含 INMEMORY_SIZE 初始化參數與 MEMOPTIMIZE_POOL_SIZE 初始化參數。兩者皆為可選的控制記憶體區域。

表格 3 記憶體管理方法

實例 SGA PGA 說明 初始化參數
自動 n/a n/a 資料庫會根據單一執行處理目標大小來調整執行處理的大小。

您設定:

  • 資料庫執行處理的記憶體目標大小總計 (MEMORY_TARGET)

  • 資料庫執行處理的選擇性記憶體大小上限 (MEMORY_MAX_TARGET)

  • SGA 中 IM 資料欄存放區 (INMEMORY_SIZE) 的選擇性大小

n/a 自動 自動

資料庫會根據 SGA 目標自動調整 SGA。

資料庫會根據 PGA 目標自動調整 PGA。

您設定:

  • SGA 目標大小 (SGA_TARGET)

  • 可選 SGA 大小上限 (SGA_MAX_SIZE)

  • SGA 中 IM 資料欄存放區 (INMEMORY_SIZE) 的選擇性大小

  • SGA 中記憶體最佳化集區的選擇性大小 (MEMOPTIMIZE_POOL_SIZE)

  • PGA 聚總目標大小 (PGA_AGGREGATE_TARGET) 註腳 1

資料庫會自動設定 PGA_AGGREGATE_LIMIT 初始化參數。您可以手動設定此參數。

n/a 自動 手動

資料庫會根據 SGA 目標自動調整 SGA。

您可以手動控制 PGA,為每種 SQL 運算子類型設定工作區大小上限。

您設定:

  • SGA 目標大小 (SGA_TARGET)

  • 可選 SGA 大小上限 (SGA_MAX_SIZE)

  • SGA 中 IM 資料欄存放區的選擇性大小 (INMEMORY_SIZE)

  • SGA 中記憶體最佳化集區的選擇性大小 (MEMOPTIMIZE_POOL_SIZE)

  • PGA 工作區參數,例如 SORT_AREA_SIZE、HASH_AREA_SIZE 和 BITMAP_MERGE_AREA_SIZE

n/a 手動 自動

您可以透過設定個別元件大小來手動控制 SGA。

資料庫會根據 PGA 目標自動調整 PGA。

您設定:

  • 共用集區大小 (SHARED_POOL_SIZE)

  • 緩衝區快取大小 (DB_CACHE_SIZE)

  • 大型集區大小 (LARGE_POOL_SIZE)

  • Java 集區大小 (JAVA_POOL_SIZE)

  • SGA 中 IM 資料欄存放區 (INMEMORY_SIZE) 的選擇性大小

  • SGA 中記憶體最佳化集區的選擇性大小 (MEMOPTIMIZE_POOL_SIZE)

  • PGA 聚總目標大小 (PGA_AGGREGATE_TARGET) 註腳 2

資料庫會自動設定 PGA_AGGREGATE_LIMIT 初始化參數。您可以手動設定此參數。

n/a 手動 手動

您必須手動設定 SGA 元件大小。

您可以手動控制 PGA,為每種 SQL 運算子類型設定工作區大小上限。

您必須手動設定 SGA 元件大小。您設定:

  • 共享池大小 (SHARED_POOL_SIZE)

  • 緩衝區快取大小 (DB_CACHE_SIZE)

  • 大型集區大小 (LARGE_POOL_SIZE)

  • Java 集區大小 (JAVA_POOL_SIZE)

  • SGA 中 IM 資料欄存放區 (INMEMORY_SIZE) 的選擇性大小

  • SGA 中記憶體最佳化集區的選擇性大小 (MEMOPTIMIZE_POOL_SIZE)

  • PGA 工作區參數,例如 SORT_AREA_SIZE、HASH_AREA_SIZE 和 BITMAP_MERGE_AREA_SIZE

註腳 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 (資源管理程式) 可精細控制配置給使用者帳戶、應用程式以及服務的資料庫資源。「資源管理程式」的主要作用是守門員,會拖慢某些工作執行速度,讓其他人可以快速執行。

DBMS_RESOURCE_MANAGER PL/SQL 套裝程式可解決作業系統管理不佳的許多資源配置問題,包括:

「資源管理程式」可讓資料庫更妥善地控制硬體資源的配置,以及安排資料庫內工作的優先順序,以協助克服先前的問題。您可以根據階段作業屬性將階段作業分類為群組,然後將資源配置給這些群組以最佳化硬體使用率。您可以使用「資源管理程式」來設定 PDB 記憶體的使用限制。

資源會根據資料庫管理員指定的資源計劃分配給使用者。計畫指定如何在資源用戶群組之間分配資源,資源用戶群組是依資源需求分組的使用者階段作業。資源計畫指令會建立資源用戶群組與計畫的關聯,並指定如何將資源配置給群組。圖 22-7 顯示在當天時間內同時執行 OLTP 應用程式和報表應用程式的組織簡單資源計畫。目前作用中計畫 DAYTIME 會將 CPU 資源配置給三個資源用戶群組。具體而言,OLTP 會分配 75% 的 CPU 時間,REPORTS 會分配 15%,而 OTHER_GROUPS 則會收到其餘的 10%。

圖 7:簡單資源計畫

admin078.gif 圖解描述

「資源管理程式」可以解決的一個問題是失控查詢,它可以使用「SQL 監督」來監督。「資源管理程式」可讓您指定臨界值來識別和回應失控 SQL 敘述句。例如,您可以為用戶群組中的每個前景處理作業指定 CPU 時間、經歷時間、實體或邏輯 I/O 以及 PGA 使用狀況臨界值。回應「資源管理程式」可以切換至較低優先順序的用戶群組、終止 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 Scheduler

Oracle Scheduler (Scheduler) 讓資料庫管理員和應用程式開發人員能夠控制各種工作在資料庫環境的時間和地點。

「排程器」提供複雜的企業排程功能,可用來:

程式物件 (程式) 包含 Scheduler 將執行之命令的相關描述資料,包括任何引數的預設值。排程物件 (排程) 包含執行日期與時間以及週期模式的相關資訊。工作物件 (工作) 會將程式與排程建立關聯。若要定義執行的內容與時間,您可以指定方案、排程與工作之間的關係。

Scheduler 是以 DBMS_SCHEDULER PL/SQL 套裝程式中的一組函數與程序實行。您會使用此套裝程式或使用 Enterprise Manager 建立及操控 Scheduler 物件。因為 Scheduler 物件是標準的資料庫物件,所以您可以使用系統與物件權限來控制對它們的存取。圖 22-8 顯示 Scheduler 的基本架構。工作表格是所有工作的容器,每個資料庫一個表格。會視需要自動啟動和停止工作協調器背景處理作業。當工作必須執行時,協調器會喚醒工作子項處理作業。子項處理作業會從工作表格收集描述資料並執行工作。

圖 8:排程器元件

admin062.gif 圖解描述

另請參閱:

效能和調整

身為 DBA,您必須負責執行 Oracle 資料庫的效能。通常,效能問題是由無法接受的回應時間 (即完成指定工作負載的時間) 或傳輸量 (即可在指定時間內完成的工作量) 所導致。

一般問題包括:

調整的一般目標是改善回應時間、增加傳輸量或兩者。特定且可測量的目標可能是「將指定 SELECT 陳述式的回應時間縮短至 5 秒以下」。是否可達成此目標,取決於 DBA 可能或可能無法控制的因素。一般而言,調整是以最有效的方式使用資料庫資源,達到特定、可測量以及可達成的調整目標。

Oracle 效能方法是以找出並排除資料庫中的瓶頸,以及開發有效率的 SQL 敘述句為依據。若要套用 Oracle 效能方法,必須執行下列作業:

本節描述 Oracle AI Database 效能調整的重要層面,包括使用建議程式。Oracle AI Database 建議者提供具體建議,說明如何因應關鍵資料庫管理挑戰,涵蓋各種領域,包括空間、效能和還原管理。

資料庫自行監督

自行監督會在資料庫執行其一般作業時進行,以確保資料庫能夠察覺到發生的問題。Oracle AI Database 可以傳送伺服器產生的警示,通知您即將發生的問題。

發生問題或資料不符合測量結果的預期值 (例如每秒實體讀取或 SQL 回應時間) 時,會自動產生警示。測量結果是累計統計資料的變更速率。伺服器產生的警示可以根據使用者指定的臨界值層次或事件發生。

伺服器產生的警示不僅可識別問題,還會建議如何解決回報的問題。例如,警示快速復原區域的空間不足,建議刪除過時的備份或增加額外的磁碟空間。

另請參閱: Oracle AI Database Administrator's Guide

自動工作負載儲存區域 (AWR)

自動工作負載儲存區域 (AWR) 是歷史效能資料的儲存區域,其中包含系統、階段作業、個別 SQL 敘述句、區段以及服務的累計統計資料。

AWR 統計資料是效能調整的基礎。AWR 藉由自動收集資料庫統計資料以進行問題偵測與調整,作為資料庫自我管理的基礎。

如下圖所示,資料庫會將最近的 AWR 統計資料儲存在 SGA 中。MMON 處理作業預設會每小時收集統計資料並建立 AWR 快照。AWR 快照是一組在特定時間擷取的效能統計資料。資料庫會將快照寫入 SYSAUX 表格空間。AWR 會管理快照空間,根據可設定的快照保留原則永久清除較舊的快照。

圖 9:自動工作負載儲存區域 (AWR)

cncpt279.gif 圖解描述

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 報表:

例如,使用者通知您資料庫在下午 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 敘述句等工具來檢視最佳化處理程式所選擇的執行計畫。

EXPLAIN PLAN 顯示目前在目前階段作業中執行的指定 SQL 查詢的查詢計畫。其他工具包括 Oracle Enterprise Manager 和 SQL*Plus AUTOTRACE 命令。

另請參閱:Oracle AI Database SQL Language Reference,瞭解 EXPLAIN PLAN

最佳化處理程式統計資料建議程式

「最佳化處理程式統計資料建議程式」是診斷軟體,可分析您目前如何收集統計資料、現有統計資料收集工作的有效性,以及所收集統計資料的品質。「最佳化處理程式統計資料建議程式」使用的建議程式架構與「自動資料庫診斷監督 (ADDM)」、「SQL 效能分析器」以及其他建議程式相同。

「最佳化處理程式統計資料建議程式」比傳統方法提供下列優點,而傳統方法則依賴最佳實行範例:

「最佳化處理程式統計資料建議程式」會維護規則,這是由建議程式執行其檢查的 Oracle 提供標準。以目前功能集為基礎的規則包含 Oracle 最佳作法。如果最佳實行範例從版本變更成版本,則「最佳化處理程式統計資料建議程式」規則也會變更。透過此方式,建議程式一律會提供最新的建議。

「最佳化處理程式統計資料建議程式」會檢查統計資料收集處理作業,然後產生發現項目的報告,這些發現項目違反規則。如果建議程式提出建議,而且如果它根據這些建議來建議動作,您就可以自動實行這些動作,或是產生可編輯的可執行 PL/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 計畫基準,而不需要依賴背景作業來執行此作業。

另請參閱: