Oracle 19c 是Oracle 12c 家族的长期支持板,按目前的发布路线图,可以支撑到2023年,Oracle 23c 将会是下一个长期支持板。 关于Oracle 版本的说明可以参考我之前的博客:
Oracle 12.2 家族的补丁 RU 和 RUR 说明
https://www.cndba.cn/dave/article/4063
AWR 报告是DBA 的一个重要辅助工具,用来帮助我们分析数据库的性能问题。 我们通常说的AWR 报告默认指的是awrrpt.sql 这个单实例的AWR 报告。
实际上Oracle 有很多AWR 的类型,可以直接从DB查看:
[dave@www.cndba.cn ~]$ cd $ORACLE_HOME/rdbms/admin
[dave@www.cndba.cn admin]$ ls -lrt awr*.sql
-rw-r--r--. 1 oracle oinstall 744 Jan 26 2017 awrrptinoop.sql
-rw-r--r--. 1 oracle oinstall 1730 Jan 26 2017 awrrptidc.sql
-rw-r--r--. 1 oracle oinstall 7657 May 29 2017 awrupd12.sql
-rw-r--r--. 1 oracle oinstall 3114 May 29 2017 awrsqrpt.sql
-rw-r--r--. 1 oracle oinstall 10161 May 29 2017 awrrpti.sql
-rw-r--r--. 1 oracle oinstall 14374 May 29 2017 awrinput.sql
-rw-r--r--. 1 oracle oinstall 1533 May 29 2017 awrgrpt.sql
-rw-r--r--. 1 oracle oinstall 8606 May 29 2017 awrgrpti.sql
-rw-r--r--. 1 oracle oinstall 12399 May 29 2017 awrginp.sql
-rw-r--r--. 1 oracle oinstall 3667 May 29 2017 awrgdrpt.sql
-rw-r--r--. 1 oracle oinstall 9384 May 29 2017 awrgdrpi.sql
-rw-r--r--. 1 oracle oinstall 11610 May 29 2017 awrextr.sql
-rw-r--r--. 1 oracle oinstall 3883 May 29 2017 awrddrpt.sql
-rw-r--r--. 1 oracle oinstall 1458 May 29 2017 awrblmig.sql
-rw-r--r--. 1 oracle oinstall 2907 Jul 29 2017 awrinpnm.sql
-rw-r--r--. 1 oracle oinstall 26042 Jul 29 2017 awrgdinp.sql
-rw-r--r--. 1 oracle oinstall 30797 Jul 29 2017 awrddinp.sql
-rw-r--r--. 1 oracle oinstall 2539 Jan 4 2018 awrmacro.sql
-rw-r--r--. 1 oracle oinstall 8333 Aug 9 2018 awrrpt.sql
-rw-r--r--. 1 oracle oinstall 12153 Aug 16 2018 awrsqrpi.sql
-rw-r--r--. 1 oracle oinstall 10177 Aug 21 2018 awrddrpi.sql
-rw-r--r--. 1 oracle oinstall 49857 Aug 23 2018 awrinfo.sql
-rw-r--r-- 1 oracle oinstall 10862 Jan 15 00:23 awrload_18.sql
-rw-r--r--. 1 oracle oinstall 6715 Jan 15 00:23 awrload.sql
[dave@www.cndba.cn admin]$
[dave@www.cndba.cn admin]$ ls -lrt awr*.sql|wc -l
24
[dave@www.cndba.cn admin]$
可以看到在Oracle 19c 中共有24个相关的AWR 报告。 我们常用的几个AWR 脚本如下:
awrrpt.sql: 单实例AWR 报告
awrgrpt.sql: RAC 的AWR 报告
awrddrpt.sql: 单实例AWR 对比报告
awrgdrpt.sql: RAC 的AWR 对比报告
awrsqrpt.sql: 单个SQL 的报告
实际上从Oracle 12c 开始,AWR 报告以前有了改变, 在之前的博客中也有描述,如下:
Oracle 12c AWR 报告中的新功能
https://www.cndba.cn/dave/article/237
在Oracle 19c 中继承了12c 的新特性,同时对PDB 的支持也有了增强。 如果说相对Oracle 11g 早期版本的AWR 来对比,那么Oracle 19c 有了如下变化。
1 报告展现模式新增了’active-html’
[dave@www.cndba.cn admin]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Sun Jan 24 11:41:45 2021
Version 19.10.0.0.0
Copyright (c) 1982, 2020, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.10.0.0.0
SQL> @?/rdbms/admin/awrrpt.sql
Specify the Report Type
~~~~~~~~~~~~~~~~~~~~~~~
AWR reports can be generated in the following formats. Please enter the
name of the format at the prompt. Default value is 'html'.
'html' HTML format (default)
'text' Text format
'active-html' Includes Performance Hub active report
Enter value for report_type:
active-html 类型与html 展示内容完全相同,只是在最后部分多一个Performance Hub active report的动态效果,类似于OEM 的展示方式。 但是不幸的是Adobe 公司已经停止了Flash,所以目前AWR 报告的最后Performance Hub active report 无法正常显示。 所以目前来看active-html 和 html 的内容一模一样。
如果想查看Active-html 最后部分的效果可以查看我之前博客12c AWR 新特性中的截图。
2 AWR 报告中包含了ADDM和 ASH 的内容
在之前的版本,AWR,ADDM, ASH 是三个独立的部分,有时在分析时我们需要分别收集, 在19c的AWR 报告中,直接包含了这3部分的内容,简化了我们的工作。
关于ADDM 和 ASH 的说明参考我之前的博客,如下:
Oracle ADDM 自动诊断监视工具 介绍
https://www.cndba.cn/Dave/article/1588Oracle ASH(Active Session History) 说明
https://www.cndba.cn/Dave/article/1557
3 AWR 报告的TOP 5 变成了TOP 10
这个变化是相对于11g 早期版本来说的,实际上从11.2.0.4 开始,已经变成了TOP 10。
4 AWR 报告包含了OGG 和 XStream 的内容
5 可以在CDB 和 PDB 级别收集AWR
在CDB 架构下,尤其是是多个PDB的情况下,要注意这一点。 如果CDB 环境有多个PDB,那么如果收集的是整个CDB 的AWR报告,那么该报告也是包含所有PDB的数据,无法准确分析是哪个PDB 导致的性能问题。 所以对于多PDB的情况下,我们建议是按PDB 来收集AWR报告。
[dave@www.cndba.cn tmp]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Sun Jan 24 13:14:07 2021
Version 19.10.0.0.0
Copyright (c) 1982, 2020, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.10.0.0.0
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 DAVE READ WRITE NO
4 USTC READ WRITE NO
SQL> alter session set container=DAVE;
Session altered.
SQL> show con_name
CON_NAME
------------------------------
DAVE
SQL> exec dbms_workload_repository.create_snapshot();
PL/SQL procedure successfully completed.
SQL> exec dbms_workload_repository.create_snapshot();
PL/SQL procedure successfully completed.
SQL> @?/rdbms/admin/awrrpt.sql
Specify the Report Type
~~~~~~~~~~~~~~~~~~~~~~~
AWR reports can be generated in the following formats. Please enter the
name of the format at the prompt. Default value is 'html'.
'html' HTML format (default)
'text' Text format
'active-html' Includes Performance Hub active report
Enter value for report_type:
old 1: select 'Type Specified: ',lower(nvl('&&report_type','html')) report_type from dual
new 1: select 'Type Specified: ',lower(nvl('','html')) report_type from dual
Type Specified: html
Specify the location of AWR Data
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AWR_ROOT - Use AWR data from root (default)
AWR_PDB - Use AWR data from PDB
Enter value for awr_location: AWR_PDB
Location of AWR Data Specified:
AWR_PDB
Current Instance
~~~~~~~~~~~~~~~~
DB Id DB Name Inst Num Instance Container Name
-------------- -------------- -------------- -------------- --------------
3516530670 CNDBA 1 cndba DAVE
Root DB Id Container DB Id AWR DB Id
--------------- --------------- ---------------
299079762 3516530670 3516530670
Instances in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DB Id Inst Num DB Name Instance Host
------------ ---------- --------- ---------- ------
3516530670 1 CNDBA cndba dave
Using 3516530670 for database Id
Using 1 for instance number
Specify the number of days of snapshots to choose from
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Entering the number of days (n) will result in the most recent
(n) days of snapshots being listed. Pressing <return> without
specifying a number lists all completed snapshots.
Enter value for num_days:
Listing all Completed Snapshots
Instance DB Name Snap Id Snap Started Snap Level
------------ ------------ ---------- ------------------ ----------
cndba CNDBA 1 24 Jan 2021 13:14 1
2 24 Jan 2021 13:14 1
Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Enter value for begin_snap: 1
Begin Snapshot Id specified: 1
Enter value for end_snap: 2
End Snapshot Id specified: 2
Specify the Report Name
~~~~~~~~~~~~~~~~~~~~~~~
The default report file name is awrrpt_1_1_2.html. To use this name,
press <return> to continue, otherwise enter an alternative.
Enter value for report_name:
Using the report name awrrpt_1_1_2.html
此时生成的AWR 仅包含PDB 自己的信息,而不是之前CDB 级别包含的所有PDB。
PDB:
CDB:
并且Oracle 19c 的PDB AWR 报告也包含了PDB 的ASH 和 ADDM 的内容。
注意,生成PDB 的AWR ,需要先生成PDB 快照,具体操作可以参考我的如下博客:
Oracle 19c PDB AWR 报告ORA-20200 Instance does not exist in AWR_PDB_DATABASE_INSTANCE 错误解决方法
https://www.cndba.cn/dave/article/4363
在进行性能优化时,除了生成性能异常时的AWR之外,我们也可以生成正常状态的AWR 报告,进行对比,帮助我们更快的发现问题。
版权声明:本文为博主原创文章,未经博主允许不得转载。