自Oracle 12.2始,Active Dataguard也可以支持AWR功能了

从Oracle 12.2版本开始,ActiveDataguard支持AWR功能,允许通过主库自动收集AWR快照并存储。配置过程包括设置sys$umf用户、创建dblink、配置RMF拓扑等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自Oracle 12.2始,Active Dataguard也可以支持AWR功能了


自Oracle 12.2始,Active Dataguard也开始支持AWR功能了

在之前的版本里,Active Dataguard不支持AWR report。只能安装standby statspack来监控ADG数据库的性能,而且statspack不支持自动收集;需要手工收集statspack快照,或者自己定义脚本/Job来收集statspack的快照。
从Oracle 12.2开始,通过dblink以及RMF(Remote Management Framework,远程管理架构)技术,ADG也开始支持AWR功能了。

就像上面的示意图所示,主库通过dblink连接到ADG数据库并发起收集AWR快照的动作,之后ADG数据库把AWR快照通过dblink发送到主库存储。主库和ADG库在这里组成一个RMF拓扑结构,ADG库是拓扑结构中的source,而主库则是拓扑结构中的destination。存储在主库中的ADG库的AWR快照被称为remote snapshot。
这是RMF结构的最简单的方式。实际上RMF拓扑可以更复杂;比如存储remote snapshot的destination可以不是主库,而是不相关的另外一个数据库;比如可以有多个source;比如除了destination库之外还可以有candidate destination库,candidate destination库是一个source类型的数据库,但可以在destination库宕掉后替代destination库。

在配置好整个环境后,ADG库就会和主库一样,定期自动生成AWR snapshot并存储到主库中(收集snapshot的指令实际上是从主库发出的)。当然也可以在主库调用DBMS_WORKLOAD_REPOSITORY.CREATE_REMOTE_SNAPSHOT API手工收集。需要生成ADG的AWR report时,在主库上执行@$ORACLE_HOME/rdbms/admin/awrrpti.sql并指定ADG的dbid即可。
不过当Dataguard环境中各个数据库的角色发生改变时(比如发生了switchover),RMF拓扑也需要额外的配置才能让AWR在ADG库上继续工作。

下面我们大概讲一下在ADG环境中部署AWR的过程:
假设我们有两个数据库,R12201是主库,而DG1是对应的ADG库。Dataguard的配置已经完成并且可以正常工作。

1.    在主库上配置sys$umf用户。因为RMF功能需要使用sys$umf用户,而这个用户默认是被锁住的,所以需要先解锁这个用户并且设置密码:

SQL> alter user sys$umf account unlock identified by oracle;

2.    创建两个dblink,一个是从主库到ADG库(R12201_TO_DG1),另一个是从ADG库到主库(DG1_TO_R12201)。但因为ADG库是只读的,所以创建dblink的操作都需要在主库运行:

SQL> create database link R12201_TO_DG1 connect to sys$umf identified by oracle using 'dg1'; 
SQL> create database link DG1_TO_R12201 connect to sys$umf identified by oracle using 'r12201';

3.    等待一段时间,直到前两个步骤的改动都已经同步到ADG库上。

4.    在主库上使用DBMS_UMF配置节点名:

SQL> exec dbms_umf.configure_node('R12201');

5.    在ADG库上使用DBMS_UMF配置节点名:

SQL> exec dbms_umf.configure_node('DG1', 'DG1_TO_R12201');

6.    在主库上配置RMF拓扑TOPOLOGY_ADG并且把ADG库注册到RMF拓扑中:

SQL> exec dbms_umf.create_topology('TOPOLOGY_ADG');    
SQL> exec dbms_umf.register_node('TOPOLOGY_ADG', 'DG1', 'R12201_TO_DG1', 'DG1_TO_R12201','TRUE','FALSE');

7.    在主库上执行下面的操作把拓扑的ADG库DG1的AWR service开启:

SQL> exec DBMS_WORKLOAD_REPOSITORY.register_remote_database(node_name=>'DG1');

8.    配置ADG的AWR功能就做完了,可以检查相关视图来验证这个拓扑配置:

col topology_name for a20 
col node_name for a20 

SQL> select * from DBA_UMF_TOPOLOGY;

TOPOLOGY_NAME         TARGET_ID TOPOLOGY_VERSION TOPOLOGY
-------------------- ---------- ---------------- --------
TOPOLOGY_ADG         3211929203                4 ACTIVE

SQL> select * from dba_umf_registration;      

TOPOLOGY_NAME        NODE_NAME               NODE_ID  NODE_TYPE AS_SO AS_CA STATE
-------------------- -------------------- ---------- ---------- ----- ----- --------------------
TOPOLOGY_ADG         R12201               3211929203          0 FALSE FALSE OK
TOPOLOGY_ADG         DG1                  3472153111          0 TRUE  FALSE OK

SQL> select * from DBA_UMF_LINK;

TOPOLOGY_NAME        FROM_NODE_ID TO_NODE_ID LINK_NAME
-------------------- ------------ ------------------------------------------------------------------------------------
TOPOLOGY_ADG           3211929203 3472153111 R12201_TO_DG1
TOPOLOGY_ADG           3472153111 3211929203 DG1_TO_R12201

SQL> select * from DBA_UMF_SERVICE;

TOPOLOGY_NAME           NODE_ID SERVICE
-------------------- ---------- -------
TOPOLOGY_ADG         3472153111 AWR

9.    这时候每当默认生成AWR snapshot时,主库与ADG库会同时生成。如果要手工生成ADG的AWR快照,可以执行下面的命令(参数值为ADG库的node_id)

SQL> exec DBMS_WORKLOAD_REPOSITORY.CREATE_REMOTE_SNAPSHOT(3472153111); 

10.    如果要生成ADG库的AWR report,可以执行下面的操作:

SQL> @?/rdbms/admin/awrrpti.sql

Instances in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  DB Id      Inst Num   DB Name      Instance     Host
------------ ---------- ---------    ----------   ------
  3472153111     1      R12201       DG1          ol65
* 1154541834     1      R12201       R12201       ol65

Enter value for dbid:
Enter value for dbid: 3472153111    <<<此处需要指定DG1的dbid


    下面是一个ADG库的AWR report的例子,可以看到数据库的Role为PHYSICAL STANDBY。
     

结语:Oracle 12.2在Active Dataguard上引入AWR功能,可以让Active dataguard的数据库性能诊断更加轻松可控。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25462274/viewspace-2141799/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25462274/viewspace-2141799/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值