

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用自動工作負載儲存庫 (AWR) 產生效能報告。
<a name="Appendix.Oracle.CommonDBATasks.AWR"></a>

若要收集效能資料並產生報告，Oracle 建議您使用自動工作負載儲存庫 (AWR)。AWR 需要 Oracle Database Enterprise Edition 以及診斷和調整套件的授權。若要啟用 AWR，請將 `CONTROL_MANAGEMENT_PACK_ACCESS` 初始化參數設定為 `DIAGNOSTIC` 或 `DIAGNOSTIC+TUNING`。

## 在 RDS 中使用 AWR 報告
<a name="Appendix.Oracle.CommonDBATasks.AWRTechniques"></a>

若要產生 AWR 報告，您可以執行指令碼，例如 `awrrpt.sql`。這些指令碼會安裝在資料庫主機伺服器上。在 Amazon RDS 中，您不能直接存取主機。不過，您可以從另一個 Oracle 資料庫安裝版本取得 SQL 指令碼的複本。

您也可以執行 `SYS.DBMS_WORKLOAD_REPOSITORY` PL/SQL 套件中的程序來使用 AWR。您可以使用此套件來管理基準和快照，也可以用來顯示 ASH 和 AWR 報告。例如，若要以文字格式產生 AWR 報告，請執行 `DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_TEXT` 程序。不過，您無法從 AWS 管理主控台連上這些 AWR 報告。

使用 AWR 時，我們建議您使用 `rdsadmin.rdsadmin_diagnostic_util` 程序。您可以使用這些程序來產生下列項目：
+ AWR 報告
+ 作用中工作階段歷史記錄 (ASH) 報告
+ 自動資料庫診斷監控 (ADDM) 報告
+ AWR 資料的 Oracle 資料匯出傾印檔案

`rdsadmin_diagnostic_util` 程序會將報告儲存至資料庫執行個體檔案系統。您可以從主控台存取這些報告。您也可以使用 `rdsadmin.rds_file_util` 程序來存取報告，而且可以使用 S3 整合選項來存取複製到 Amazon S3 的報告。如需更多詳細資訊，請參閱 [讀取資料庫執行個體目錄中的檔案](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ReadingFiles) 及 [Amazon S3 整合](oracle-s3-integration.md)。

您可以在下列 Amazon RDS for Oracle 資料庫引擎版本中使用 `rdsadmin_diagnostic_util` 程序：
+ 所有 Oracle Database 21c 版本
+ 19.0.0.0.ru-2020-04.rur-2020-04.r1 及更新的 Oracle Database 19c 版本

如需說明如何在複寫案例中使用診斷報告的部落格，請參閱[為 Amazon RDS for Oracle 僅供讀取複本產生 AWR 報告](https://aws.amazon.com/blogs/database/generate-awr-reports-for-amazon-rds-for-oracle-read-replicas/)。

## 診斷公用程式套件的常見參數
<a name="Appendix.Oracle.CommonDBATasks.CommonAWRParam"></a>

透過 `rdsadmin_diagnostic_util` 套件管理 AWR 和 ADDM 時，通常會使用下列參數。


| 參數 | 資料類型 | 預設 | 必要 | 描述 | 
| --- | --- | --- | --- | --- | 
| `begin_snap_id` | `NUMBER` | — | 是 | 開始快照的 ID。 | 
| `end_snap_id` | `NUMBER` | — | 是 | 結束快照的 ID。 | 
| `dump_directory` | `VARCHAR2` | `BDUMP` | 否 | 要寫入報告或匯出檔案的目錄。如果您指定非預設目錄，則執行 `rdsadmin_diagnostic_util` 程序的使用者必須具有目錄的寫入許可。 | 
| `p_tag` | `VARCHAR2` | — | 否 | 可用於區分備份的字串，以指明備份的目的或用法，例如 `incremental` 或 `daily`。<br />最多可以指定 30 個字元。有效字元為 `a-z`、`A-Z`、`0-9`、底線 (`_`)、破折號 (`-`) 和句點 (`.`)。標籤不區分大小寫。無論輸入標籤時使用的大小寫為何，RMAN 一律以大寫形式儲存標籤。<br />標籤不需是唯一的，因此多個備份可以有相同的標籤。如果沒有指定標籤，RMAN 會使用 `TAG{{YYYYMMDDTHHMMSS}}` 格式自動指派預設標籤，其中 {{YYYY}} 是年、{{MM}} 是月、{{DD}} 是日、{{HH}} 是時 (24 小時制)、{{MM}} 是分、{{SS}} 是秒。日期和時間指出 RMAN 開始備份的時間。例如，具有預設標籤 `TAG20190927T214517` 的備份，表示備份是在 2019-09-27 的 21:45:17 開始。<br />下列 RDS for Oracle 資料庫引擎版本支援 `p_tag` 參數：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.AWR.html) | 
| `report_type` | `VARCHAR2` | `HTML` | 否 | 報告的格式。有效值為 `TEXT` 和 `HTML`。 | 
| `dbid` | `NUMBER` | — | 否 | 顯示在 Oracle `DBA_HIST_DATABASE_INSTANCE` 檢視中的有效資料庫識別碼 (DBID)。如果未指定此參數，RDS 會使用 `V$DATABASE.DBID` 檢視中顯示的目前 DBID。 | 

透過 rdsadmin\_diagnostic\_util 套件管理 ASH 時，您通常使用下列參數。


| 參數 | 資料類型 | 預設 | 必要 | 描述 | 
| --- | --- | --- | --- | --- | 
| `begin_time` | `DATE` | — | 是 | ASH 分析的開始時間。 | 
| `end_time` | `DATE` | — | 是 | ASH 分析的結束時間。 | 
| `slot_width` | `NUMBER` | `0` | 否 | ASH 報告的「最常發生的活動」區段中使用的時段持續時間 (秒)。如果未指定此參數，則 `begin_time` 與 `end_time` 之間的時間間隔不得超過 10 個時段。 | 
| `sid` | `NUMBER` | Null | 否 | 工作階段 ID。 | 
| `sql_id` | `VARCHAR2` | Null | 否 | SQL ID。 | 
| `wait_class` | `VARCHAR2` | Null | 否 | 等待類別名稱。 | 
| `service_hash` | `NUMBER` | Null | 否 | 服務名稱雜湊。 | 
| `module_name` | `VARCHAR2` | Null | 否 | 模組名稱。 | 
| `action_name` | `VARCHAR2` | Null | 否 | 動作名稱。 | 
| `client_id` | `VARCHAR2` | Null | 否 | 資料庫工作階段的應用程式特定 ID。 | 
| `plsql_entry` | `VARCHAR2` | Null | 否 | PL/SQL 進入點。 | 

## 產生 AWR 報告
<a name="Appendix.Oracle.CommonDBATasks.GenAWRReport"></a>

若要產生 AWR 報告，請使用 `rdsadmin.rdsadmin_diagnostic_util.awr_report` 程序。

下列範例會產生快照範圍 101–106 的 AWR 報告。輸出文字檔案命名為 `awrrpt_101_106.txt`。您可以從 AWS 管理主控台存取此報告。

```
EXEC rdsadmin.rdsadmin_diagnostic_util.awr_report(101,106,'TEXT');
```

下列範例會產生快照範圍 63–65 的 HTML 報告。輸出的 HTML 檔案命名為 `awrrpt_63_65.html`。此程序會將報告寫入名為 `AWR_RPT_DUMP` 的非預設資料庫目錄。

```
EXEC rdsadmin.rdsadmin_diagnostic_util.awr_report(63,65,'HTML','AWR_RPT_DUMP');
```

## 將 AWR 資料擷取至傾印檔案
<a name="Appendix.Oracle.CommonDBATasks.ExtractAWR"></a>

若要將 AWR 資料擷取至傾印檔案，請使用 `rdsadmin.rdsadmin_diagnostic_util.awr_extract` 程序。您只能在 PDB 層級使用此函數。

下列範例會擷取快照集範圍 101–106。輸出傾印檔案命名為 `awrextract_101_106.dmp`。您可以透過主控台存取此檔案。

```
EXEC rdsadmin.rdsadmin_diagnostic_util.awr_extract(101,106);
```

下列範例會擷取快照範圍 63–65。輸出傾印檔案命名為 `awrextract_63_65.dmp`。檔案存放在名為 `AWR_RPT_DUMP` 的非預設資料庫目錄中。

```
EXEC rdsadmin.rdsadmin_diagnostic_util.awr_extract(63,65,'AWR_RPT_DUMP');
```

## 產生 ADDM 報告
<a name="Appendix.Oracle.CommonDBATasks.ADDM"></a>

若要產生 ADDM 報告，請使用 `rdsadmin.rdsadmin_diagnostic_util.addm_report` 程序。

下列範例會產生快照範圍 101–106 的 ADDM 報告。輸出文字檔案命名為 `addmrpt_101_106.txt`。您可以透過主控台存取報告。

```
EXEC rdsadmin.rdsadmin_diagnostic_util.addm_report(101,106);
```

下列範例會產生快照範圍 63–65 的 ADDM 報告。輸出文字檔案命名為 `addmrpt_63_65.txt`。檔案存放在名為 `ADDM_RPT_DUMP` 的非預設資料庫目錄中。

```
EXEC rdsadmin.rdsadmin_diagnostic_util.addm_report(63,65,'ADDM_RPT_DUMP');
```

## 產生 ASH 報告
<a name="Appendix.Oracle.CommonDBATasks.ASH"></a>

若要產生 ASH 報告，請使用 `rdsadmin.rdsadmin_diagnostic_util.ash_report` 程序。

下列範例會產生 ASH 報告，其中包含 14 分鐘前到目前時間的資料。輸出檔案的名稱使用格式 `ashrpt{{begin_time}}{{end_time}}.txt`，其中 `{{begin_time}}` 和 `{{end_time}}` 使用格式 `YYYYMMDDHH24MISS`。您可以透過主控台存取該檔案。

```
BEGIN
    rdsadmin.rdsadmin_diagnostic_util.ash_report(
        begin_time     =>     SYSDATE-14/1440,
        end_time       =>     SYSDATE,
        report_type    =>     'TEXT');
END;
/
```

下列範例會產生 ASH 報告，其中包含 2019 年 11 月 18 日下午 6 時 07 分至 2019 年 11 月 18 日下午 6 時 15 分的資料。輸出 HTML 報告的名稱為 `ashrpt_20190918180700_20190918181500.html`。報告存放在名為 `AWR_RPT_DUMP` 的非預設資料庫目錄中。

```
BEGIN
    rdsadmin.rdsadmin_diagnostic_util.ash_report(
        begin_time     =>    TO_DATE('2019-09-18 18:07:00', 'YYYY-MM-DD HH24:MI:SS'),
        end_time       =>    TO_DATE('2019-09-18 18:15:00', 'YYYY-MM-DD HH24:MI:SS'),
        report_type    =>    'html',
        dump_directory =>    'AWR_RPT_DUMP');
END;
/
```

## 從主控台或 CLI 存取 AWR 報告
<a name="Appendix.Oracle.CommonDBATasks.AWRConsole"></a>

若要存取 AWR 報告或匯出傾印檔案，您可以使用 AWS 管理主控台 或 AWS CLI。如需詳細資訊，請參閱[下載資料庫日誌檔案](USER_LogAccess.Procedural.Downloading.md)。