使用 Automatic Workload Repository (AWR) 生成性能报告 - Amazon Relational Database Service

使用 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 过程。但是,您无法从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 时可以使用以下参数。

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

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。您可以通过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 分钟前的数据。输出文件的名称使用格式 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 报告或导出转储文件,您可以使用 AWS Management Console 或 AWS CLI。有关更多信息,请参阅 下载数据库日志文件