DBMS_UMFパッケージは、Oracle DatabaseのRemote Management Framework (RMF)をデプロイするためのインタフェースを提供します。
RMFは、Oracle Databaseのパフォーマンス統計を収集するために使用されます。
(1) データベースの役割確認【スタンバイ側で実行】
select inst_id, open_mode, database_role from gv$database order by 1;
(2) SYS$UMFユーザーのアンロック【プライマリ側で実行】
alter user sys$umf identified by sysumf account unlock;
(3) データベースリンク作成【プライマリ側で実行】
create database link dbl_primary_to_standby CONNECT TO sys$umf IDENTIFIED BY sysumf using 'SUN';
create database link dbl_standby_to_primary CONNECT TO sys$umf IDENTIFIED BY sysumf using 'MOON';
(4) ノード追加【プライマリ側で実行】
alter system set "_umf_remote_enabled"=TRUE scope=BOTH;
exec dbms_umf.configure_node ('prim');
(5) ノード追加【スタンバイ側で実行】
exec dbms_umf.configure_node ('stby','dbl_standby_to_primary');
(6) トポロジ作成【プライマリ側で実行】
exec DBMS_UMF.create_topology ('Topology_1');
(7) 設定確認【プライマリ側で実行】
set line 132
col topology_name format a15
col node_name format a15
select * from dba_umf_topology;
select * from dba_umf_registration;
(8) スタンバイDB登録【プライマリ側で実行】
exec DBMS_UMF.register_node ('Topology_1', 'stby', 'dbl_primary_to_standby', 'dbl_standby_to_primary', 'FALSE', 'FALSE');
exec DBMS_WORKLOAD_REPOSITORY.register_remote_database(node_name=>'stby');
set line 132
col topology_name format a15
col node_name format a15
select * from dba_umf_topology;
select * from dba_umf_registration;
select * from dba_umf_service;
select * from dba_umf_link;
(9) 動作確認【プライマリ側で実行】
exec dbms_workload_repository.create_remote_snapshot('stby');
exec dbms_workload_repository.create_remote_snapshot('stby');
Instances in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DB Id Inst Num DB Name Instance Host
------------ ---------- --------- ---------- ------
1730117407 1 MOON SUN1 mmdb241.exam
1730117407 2 MOON SUN2 mmdb242.exam
2747389036 2 MOON MOON2 mmdb232.exam
* 2747389036 1 MOON MOON1 mmdb231.exam
スタンバイ側にダミーのDBIDが割り当てられて、選択できるようになる
隠しパラメータ確認のためDB再起動
srvctl stop database -d moon
srvctl start database -d moon
生成される隠しパラメータ
_dbmsumf$$1x
→プライマリ、スタンバイで同じ
_dbmsumf$$2x
→スタンバイのみ
_dbmsumf$$3x
→スタンバイのみ
_dbmsumf$$nn
→プライマリ、スタンバイで異なる
_dbmsumf$$p
→プライマリ、スタンバイで同じ
_remote_awr_enabled
→スタンバイのみ
_umf_remote_enabled
→プライマリ、スタンバイで同じ
_umf_remote_target_dblink
→プライマリ、スタンバイで異なる
-- 隠しパラメータ(プライマリ、スタンバイで同じもの)
_dbmsumf$$1x string
<UMF_SCHEMA>
<TOPOLOGY>
<TOPOLOGY_INST>
<TOPOLOGY_NAME>Topology_1</TOPOLOGY_NAME>
<TARGET_ID>2014871576</TARGET_ID>
<TOPOLOGY_VERSION>6</TOPOLOGY_VERSION>
<TOPOLOGY_STATE>0</TOPOLOGY_STATE>
</TOPOLOGY_INST>
</TOPOLOGY>
, <REGISTRATION>
<REGISTRATION_INST>
<TOPOLOGY_NAME>Topology_1</TOPOLOGY_NAME>
<NODE_NAME>prim</NODE_NAME>
<NODE_ID>2014871576</NODE_ID>
<NODE_TYPE>0</NODE_TYPE>
<AS_SOURCE>0</AS_SOURCE>
<AS_CANDIDATE_TARGET>0</AS_C, ANDIDATE_TARGET>
<STATE>0</STATE>
</REGISTRATION_INST>
<REGISTRATION_INST>
<TOPOLOGY_NAME>Topology_1</TOPOLOGY_NAME>
<NODE_NAME>stby</NODE_NAME>
<NODE_ID>1730117407</NODE_ID>
<NODE_TYPE>0</NODE_TYPE>
<AS_SOURCE>, 0</AS_SOURCE>
<AS_CANDIDATE_TARGET>0</AS_CANDIDATE_TARGET>
<STATE>0</STATE>
</REGISTRATION_INST>
</REGISTRATION>
<LINK>
<LINK_INST>
<TOPOLOGY_NAME>Topology_1</TOPOLOGY_NAME>
<FROM_NODE_ID>2014871576</FROM_NODE_ID>
, <TO_NODE_ID>1730117407</TO_NODE_ID>
<LINK_NAME>DBL_PRIMARY_TO_STANDBY</LINK_NAME>
</LINK_INST>
<LINK_INST>
<TOPOLOGY_NAME>Topology_1</TOPOLOGY_NAME>
<FROM_NODE_ID>1730117407</FROM_NODE_ID>
<TO_NODE_ID>2014871576</TO_NODE_I, D>
<LINK_NAME>DBL_STANDBY_TO_PRIMARY</LINK_NAME>
</LINK_INST>
</LINK>
<SERVICE>
<SERVICE_INST>
<TOPOLOGY_NAME>Topology_1</TOPOLOGY_NAME>
<NODE_ID>1730117407</NODE_ID>
<SERVICE_ID>1</SERVICE_ID>
</SERVICE_INST>
</S, ERVICE>
</UMF_SCHEMA>
_dbmsumf$$p string 1
_umf_remote_enabled boolean TRUE
-- プライマリ側の隠しパラメータ
_dbmsumf$$nn string prim
_umf_remote_target_dblink string
-- スタンバイ側の隠しパラメータ
_dbmsumf$$2x string
_dbmsumf$$3x string
_dbmsumf$$nn string stby
_remote_awr_enabled boolean TRUE
_umf_remote_target_dblink string DBL_STANDBY_TO_PRIMARY