使用 Automatic Workload Repository (AWR) 生成性能报告
要收集性能数据并生成报告,Oracle 建议使用 Automatic Workload Repository (AWR)。AWR 需要 Oracle Database Enterprise Edition 以及 Diagnostics and Tuning 包的许可证。要启用 AWR,请将 CONTROL_MANAGEMENT_PACK_ACCESS
初始化参数设置为 DIAGNOSTIC
或 DIAGNOSTIC+TUNING
。
在 RDS 中使用 AWR 报告
要生成 AWR 报告,您可以运行脚本,例如 awrrpt.sql
。这些脚本安装在数据库主机服务器上。在 Amazon RDS 中,您无法直接访问主机。但是,您可以从其他 Oracle 数据库安装中获取 SQL 脚本的副本。
您还可以通过在 SYS.DBMS_WORKLOAD_REPOSITORY
PL/SQL 软件包中运行过程来使用 AWR。您可以使用此软件包管理基准和快照,还可以显示 ASH 和 AWR 报告。例如,要生成文本格式的 AWR 报告,请运行 DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_TEXT
过程。但是,您无法从AWS Management Console访问这些 AWR 报告。
使用 AWR 时,我们建议使用 rdsadmin.rdsadmin_diagnostic_util
过程。您可以使用这些过程生成以下内容:
-
AWR 报告
-
Active Session History (ASH) 报告
-
Automatic Database Diagnostic Monitor (ADDM) 报告
-
AWR 数据的 Oracle Data Pump Export 转储文件
rdsadmin_diagnostic_util
过程将报告保存到数据库实例文件系统。您可以从控制台访问这些报告。您还可以使用 rdsadmin.rds_file_util
过程访问报告,并可以使用 S3 集成访问复制到 Amazon S3 的报告。有关更多信息,请参阅“读取数据库实例目录中的文件”和“Amazon S3 集成”。
您可在以下 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 报告
诊断实用程序软件包的通用参数
通常,您在通过 rdsadmin_diagnostic_util
软件包管理 AWR 和 ADDM 时可以使用以下参数。
参数 | 数据类型 | 默认值 | 必需 | 描述 |
---|---|---|---|---|
|
|
— |
是 |
开始快照的 ID。 |
|
|
— |
是 |
结束快照的 ID。 |
|
|
|
否 |
将报告写入或将文件导出到的目录。如果您指定非默认目录,则运行 |
|
|
— |
否 |
可用于区分备份的字符串,以便指示备份的目的或用法,例如 您最多可指定 30 个字符。有效字符为 标签不一定是唯一的,因此多个备份可以使用相同的标签。如果未指定标签,则 RMAN 会使用 以下 RDS for Oracle 数据库引擎版本支持
|
|
|
|
否 |
报告的格式。有效值为 |
|
|
— |
否 |
Oracle 的有效数据库标识符 (DBID),显示在 |
使用 rdsadmin_diagnostic_util 软件包管理 ASH 时,通常使用以下参数。
参数 | 数据类型 | 默认值 | 必需 | 描述 |
---|---|---|---|---|
|
|
— |
是 |
ASH 分析的开始时间。 |
|
|
— |
是 |
ASH 分析的结束时间。 |
|
|
|
否 |
ASH 报告的“Top Activity (热门活动)”部分中使用的槽的持续时间(以秒为单位)。如果未指定此参数,则 |
|
|
Null |
否 |
会话 ID。 |
|
|
Null |
否 |
SQL ID。 |
|
|
Null |
否 |
等待类名称。 |
|
|
Null |
否 |
服务名称哈希。 |
|
|
Null |
否 |
模块名称。 |
|
|
Null |
否 |
操作名称。 |
|
|
Null |
否 |
数据库会话的特定于应用程序的 ID。 |
|
|
Null |
否 |
PL/SQL 入口点。 |
生成 AWR 报告
要生成 AWR 报告,请使用 rdsadmin.rdsadmin_diagnostic_util.awr_report
过程。
以下示例生成快照范围 101–106 的 AWR 报告。输出文本文件名为 awrrpt_101_106.txt
。您可以通过AWS Management Console访问此报告。
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 数据提取到转储文件
要将 AWR 数据提取到转储文件中,请使用 rdsadmin.rdsadmin_diagnostic_util.awr_extract
过程。
以下示例提取范围 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 报告
要生成 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 报告
要生成 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 报告
要访问 AWR 报告或导出转储文件,您可以使用 AWS Management Console 或 AWS CLI。有关更多信息,请参阅 下载数据库日志文件。