リモート管理フレームワーク(RMF)の構成

リモート管理フレームワーク(RMF)は、Oracle Databaseのパフォーマンス統計(AWRデータ)を取得するためのアーキテクチャです。

ノート:

RMFは、SPFILEを使用して、ADGスタンバイ・データベースおよびスタンドアロン・データベースにのみ使用できます。CDBデータベースでは、RMFはCBD$ROOTに対してのみ構成できます。PDBはサポートされていません。

RMFトポロジは、すべての参加データベース・ノードとそのメタデータおよび接続情報で構成される、集中型アーキテクチャです。RMFトポロジには、宛先と呼ばれるデータベース・ノードが1つ存在します。これは、ソースと呼ばれるデータベース・ノードから収集されたパフォーマンス・データを格納および管理する役割を担います。宛先候補は、元の宛先が使用できないかダウングレードされた場合に、元の宛先を置き換えるように構成できるソースです。トポロジには、1つ以上の宛先候補と、宛先を1つのみ指定できます。

トポロジ内の各データベース・ノードには、一意の名前が割り当てられている必要があります。これは、ノードの構成時にプロシージャDBMS_UMF.configure_node()を使用して実行します。このプロシージャでノードの名前を指定しない場合は、初期化パラメータDB_UNIQUE_NAMEの値をノードの名前として使用します。

ノート:

構成するデータベースに複数のインスタンスがある場合は、DBMS_UMF.configure_nodeを、それらのインスタンスの1つでのみ実行する必要があります。

トポロジ内のデータベース・ノードは、データベース・リンクを使用して相互に通信します。宛先からソース、およびソースから宛先へのデータベース・リンクは、ADGのデプロイの間にデータベースごとに作成する必要があります。

サービスは、トポロジ上で実行されるアプリケーションです。たとえば、トポロジ上で実行されるAWRサービスによって、そのトポロジ内のすべてのデータベース・ノードに対するリモートAWRスナップショットが有効化されます。

RMF APIは、RMFトポロジを構成するために使用できるPL/SQLプロシージャおよび関数です。RMF APIは、PL/SQLパッケージDBMS_UMFで宣言されています。

ノート:

  • SYS$UMFユーザーは、システム・レベルのRMFビューおよび表にアクセスするためのすべての権限を持つ、デフォルトのデータベース・ユーザーです。RMFのAWRに関連するすべての操作は、SYS$UMFユーザーのみが実行できます。SYS$UMFユーザーはデフォルトでロックされており、RMFトポロジをデプロイする前にロックを解除する必要があります。

  • RMFトポロジでデータベース・リンクを作成する際には、SYS$UMFユーザーのパスワードを指定する必要があります。SYS$UMFユーザーのパスワードを変更した場合は、RMFトポロジ内のすべてのデータベース・リンクを再作成する必要があります。

関連項目:

DBMS_UMFパッケージの詳細は、Oracle Database PL/SQLパッケージおよびタイプ・リファレンスを参照してください

RMFトポロジの設定

Oracle Databaseのパフォーマンス統計を収集するように、RMFトポロジを設定する必要があります。

RMFトポロジを設定するための前提条件は、次のとおりです。

  • RMFトポロジに登録するすべてのデータベース・ノードについて、宛先からソース、およびソースから宛先へのデータベース・リンクを作成する必要があります。この設定は、ADGのデプロイ時に行います。

RMFトポロジを設定するためのステップは、次のとおりです。

  1. トポロジに追加するデータベース・ノードを構成します。

  2. トポロジを作成します。

  3. トポロジにデータベース・ノードを登録します。

  4. (オプション)トポロジ内のノード間のデータベース・リンクを登録します。この構成は、宛先が使用できなくなった場合に、宛先候補がデータベース・リンクを使用してトポロジ内の残りのノードに接続するために必要です。

RMFトポロジの設定の例

この例では、TS0およびS1の3つのデータベース・ノードをトポロジTopology_1に追加します。ノードTは宛先ノードであり、S0およびS1のノードはソース・ノードです。ノードS1は宛先候補であり、元の宛先Tが使用できない場合は、ノードS1が新しい宛先になります。AWRサービスは、トポロジ内のすべてのソースに対して有効化されています。

ADGのデプロイメント中に、次のデータベース・リンクがすでに作成されているとします。

  • DBLINK_T_to_S0: TからS0へのデータベース・リンク。

  • DBLINK_T_to_S1: TからS1へのデータベース・リンク。

  • DBLINK_S0_to_T: S0からTへのデータベース・リンク。

  • DBLINK_S0_to_S1: S0からS1へのデータベース・リンク。

  • DBLINK_S1_to_T: S1からTへのデータベース・リンク。

  • DBLINK_S1_to_S0: S1からS0へのデータベース・リンク。

RMFトポロジを設定するためのサンプル・コードを次に示します。

/* Configure the nodes T, S0, and S1 by executing these procedures */

/* Execute this procedure on node T */
SQL> exec DBMS_UMF.configure_node ('T');

/* Execute this procedure on node S0 */
SQL> exec DBMS_UMF.configure_node ('S0');

/* Execute this procedure on node S1 */
SQL> exec DBMS_UMF.configure_node ('S1');

/* Execute all the following procedures on the destination node T */

/* Create the topology 'Topology_1' */
SQL> exec DBMS_UMF.create_topology ('Topology_1');

/* Register the node S0 with the topology 'Topology_1' */
SQL> exec DBMS_UMF.register_node ('Topology_1',
                                  'S0',
                                  'DBLINK_T_to_S0',
                                  'DBLINK_S0_to_T');

/* Register the node S1 with the topology 'Topology_1' */
SQL> exec DBMS_UMF.register_node ('Topology_1',
                                  'S1',
                                  'DBLINK_T_to_S1',
                                  'DBLINK_S1_to_T');

/* Register the database links between the nodes S0 and S1 in the topology 'Topology_1'. 
 * When destination T is unavailable at the time of failover, the source S0 can connect
 * to the candidate destination S1 using this database link.
 */
SQL> exec DBMS_UMF.create_link ('Topology_1',
                                'S0',
                                'S1',
                                'DBLINK_S0_to_S1',
                                'DBLINK_S1_to_S0');

/* Enable the AWR service on the node S0 in the topology 'Topology_1' */
SQL> exec DBMS_WORKLOAD_REPOSITORY.register_remote_database(node_name=>'S0');

/* Enable the AWR service on the node S1 in the topology 'Topology_1' */
SQL> exec DBMS_WORKLOAD_REPOSITORY.register_remote_database(node_name=>'S1');

ADGロール・トランジションの管理

ADGプライマリまたは元の宛先が失敗(フェイルオーバーイベント)したとき、または、メンテナンス・フェーズ(スイッチオーバー・イベント)中にADGスタンバイ・データベースまたは宛先候補がADGプライマリのロールを引き継いだときに、ADGロール・トランジションが発生します。

ロールを変更する前、つまり、フェイルオーバーまたはスイッチオーバー・イベントが発生したために宛先候補を新しい宛先へと変更する前に、次の構成ステップを実行することをお薦めします。

  1. ソースと宛先候補の間にデータベース・リンクを作成します。各ソースに次のプロシージャを実行して、すべてのソースにこれが構成されている必要があります。

    SQL> EXEC DBMS_UMF.CREATE_LINK (topology name, 
                                    source name, 
                                    candidate destination name,
                                    source to candidate destination database link,
                                    candidate destination to source database link);

    ノート:

    ロールの変更時に予期しない問題が発生することを避けるために、トポロジ内のすべてのノード間にデータベース・リンクを作成しておくことをお薦めします。

  2. 宛先候補のAWRスナップショットを取得します。

    ノート:

    ロールの変更後に宛先候補のAWRレポートを生成するには、ロールの変更前に、宛先候補のスナップショットを少なくとも1つ取得します。

  3. 宛先候補とすべてのソースを再起動します。

後続の構成ステップを完了したら、宛先候補で次のプロシージャを実行して、ロールを変更できます。

SQL> EXEC DBMS_UMF.SWITCH_DESTINATION(topology name, force_switch=>FALSE);

ノート:

ロールの遷移期間にはソースのスナップショットを取得しないことをお薦めします。DBMS_UMF.SWITCH_DESTINATIONプロシージャを実行して、ロール変更プロセスが完了したら、ソースのスナップショットを取得できます。ロールの変更後にソースのAWRレポートを生成する場合は、ロールの変更後に取得されたスナップショットのみを選択する必要があります。

登録されたRMFトポロジの詳細の取得

次に説明するRMFビューには、マルチテナント環境に登録されているすべてのRMFトポロジの構成情報が表示されます。

表6-3 RMFビュー

RMFビュー 説明

DBA_UMF_TOPOLOGY

マルチテナント環境に登録されたすべてのトポロジが表示されます。各トポロジには、トポロジ名、宛先ID、トポロジの状態があります。RMFを有効化するには、少なくとも1つのトポロジの状態がACTIVEである必要があります。

DBA_UMF_REGISTRATION

マルチテナント環境内のすべてのトポロジの、登録されたすべてのノードが表示されます。

DBA_UMF_LINK

マルチテナント環境内のすべてのトポロジの、登録されたすべてのデータベース・リンクが表示されます。

DBA_UMF_SERVICE

マルチテナント環境内のすべてのトポロジの、登録されたすべてのサービスが表示されます。

関連項目:

これらのRMFビューの詳細は、『Oracle Databaseリファレンス』を参照してください