从oracle 12.2开始可以生成备库的awr报告,前提是先配置一下。
基本原理是:由于备库不能写入,因此awr快照信息需要存放在主库(或其他可写的库),
通过数据库链可以将快照信息从备库抓过来,然后还是在主库上执行awrrpti.sql 来生成备库的awr报告。
为实现上述功能,oracle设计了一个远程管理框架 (RMF) 的东西,可以简单理解为一个工作组,组长采集各组员的状态,然后对外发布报告。底层实现是通过用户sys$umf、数据库链、dbms包、视图来完成的。
主库的db_unique_name: apex
备库的db_unique_name: apexstd
主备库都设置了网络别名:tns_std、tns_pri
-
主库:
-
alter user sys$umf identified by sysumf account unlock;
-
-
create database link dbl_pri_to_std CONNECT TO sys$umf IDENTIFIED BY sysumf using 'tns_std';
-
create database link dbl_std_to_pri CONNECT TO sys$umf IDENTIFIED BY sysumf using 'tns_pri';
-
select owner,db_link,username from dba_db_links;
-
exec dbms_umf.configure_node ('apex');
-
-
备库:
-
exec dbms_umf.configure_node ('apexstd','dbl_std_to_pri');
-
-
主库:
-
exec DBMS_UMF.create_topology('Topology_1');
-
-
-
exec DBMS_UMF.register_node('Topology_1', 'apexstd', 'dbl_pri_to_std', 'dbl_std_to_pri', 'FALSE', 'FALSE');
-
exec DBMS_WORKLOAD_REPOSITORY.register_remote_database(node_name=>'apexstd');
-
-
exec dbms_workload_repository.create_remote_snapshot('apexstd');
-
至少执行2次
然后还是在主库上生成备库的awr,操作如下:
生成的报告:
内容基本无差别,除了多出一项 Active Data Guard (ADG) Report
参考:
如何在 Active Data Guard 备库中生成AWR (Doc ID 2469650.1)
-
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/tgdba/gathering-database-statistics.html#GUID-309C107F-DC42-4119-9904-9504E9748B84
阅读(1291) | 评论(0) | 转发(0) |