使用 Automatic Workload Repository (AWR) 生成性能报告 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 Automatic Workload Repository (AWR) 生成性能报告

要收集性能数据并生成报告,Oracle 建议使用 Automatic Workload Repository (AWR)。AWR 需要 Oracle Database Enterprise Edition 以及 Diagnostics and Tuning 包的许可证。要启用 AWR,请将 CONTROL_MANAGEMENT_PACK_ACCESS 初始化参数设置为 DIAGNOSTICDIAGNOSTIC+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 过程。但是,您无法从Amazon Web Services 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 时可以使用以下参数。

参数 数据类型 默认值 必需 描述

begin_snap_id

NUMBER

开始快照的 ID。

end_snap_id

NUMBER

结束快照的 ID。

dump_directory

VARCHAR2

BDUMP

将报告写入或将文件导出到的目录。如果您指定非默认目录,则运行 rdsadmin_diagnostic_util 过程的用户必须具有该目录的写入权限。

p_tag

VARCHAR2

可用于区分备份的字符串,以便指示备份的目的或用法,例如 incrementaldaily

您最多可指定 30 个字符。有效字符为 a-zA-Z0-9、下划线 (_)、短划线 (-) 以及点号 (.)。此标签不区分大小写。无论输入标签时使用的大小写如何,RMAN 始终以大写形式存储标签。

标签不一定是唯一的,因此多个备份可以使用相同的标签。如果未指定标签,则 RMAN 会使用 TAGYYYYMMDDTHHMMSS 格式自动分配默认标签,其中 YYYY 表示年份、MM 表示月份、DD 表示某天,HH 表示小时(采用 24 小时格式)、MM 表示分钟、SS 表示秒。日期和时间表示 RMAN 开始备份的时间。例如,备份的默认标签 TAG20190927T214517 表示备份开始于 2019 年 09 月 27 日 21:45:17。

以下 RDS for Oracle 数据库引擎版本支持 p_tag 参数:

  • Oracle Database 21c (21.0.0)

  • Oracle Database 19c (19.0.0),使用 19.0.0.0.ru-2021-10.rur-2021-10.r1 及更高版本

report_type

VARCHAR2

HTML

报告的格式。有效值为 TEXTHTML

dbid

NUMBER

Oracle 的有效数据库标识符 (DBID),显示在 DBA_HIST_DATABASE_INSTANCE 中。如果未指定此参数,RDS 将使用 V$DATABASE.DBID 视图中显示的当前 DBID。

使用 rdsadmin_diagnostic_util 软件包管理 ASH 时,通常使用以下参数。

参数 数据类型 默认值 必需 描述

begin_time

DATE

ASH 分析的开始时间。

end_time

DATE

ASH 分析的结束时间。

slot_width

NUMBER

0

ASH 报告的“Top Activity (热门活动)”部分中使用的槽的持续时间(以秒为单位)。如果未指定此参数,则 begin_timeend_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 报告

要生成 AWR 报告,请使用 rdsadmin.rdsadmin_diagnostic_util.awr_report 过程。

以下示例生成快照范围 101–106 的 AWR 报告。输出文本文件名为 awrrpt_101_106.txt。您可以通过Amazon Web Services 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 分钟前的数据。输出文件的名称使用格式 ashrptbegin_timeend_time.txt,其中 begin_timeend_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 报告或导出转储文件,您可以使用 Amazon Web Services Management Console 或 Amazon CLI。有关更多信息,请参阅 下载数据库日志文件