ヘッダーをスキップ
Oracle® Enterprise Manager Cloud Controlアドバンスト・インストレーションおよび構成ガイド
12cリリース3 (12.1.0.3)
B65085-09
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

H アクティブおよびパッシブ環境でのフェイルオーバーのターゲットの構成

この項では、既存の管理エージェントから別のエージェントにコールド・フェイルオーバー・クラスタ(CFC)・ターゲットを再配置するCloud Control管理者向けに全般的な情報を提供します。ターゲットは複数のノードで実行可能ですが、CFC環境のアクティブなノードでのみ実行されます。

CFC環境は、通常、クラスタ・ソフトウェアを組み合せて使用することで、仮想ホスト名とIPアドレス、インターコネクト・ホストおよび記憶域システムを提供して情報を共有し、アプリケーションの高可用性(HA)を実現します。仮想ホスト名とIPのフェイルオーバーを自動化し、Enterprise Managerターゲットを再配置してパッシブ・ノードでアプリケーションを再起動する場合、Oracle Enterprise Managerのコマンドライン・インタフェース(EM CLI)と、オラクル社またはサードパーティのクラスタ・ソフトウェアを使用する必要があります。一部のOracleパートナ・ベンダーでは、この分野のクラスタウェア・ソリューションが提供されています。

この章の内容は次のとおりです。

H.1 アクティブおよびパッシブ環境でのターゲットの再配置

Oracle Enterprise Manager 12cでは、クラスタの各ノードで実行されている単一のOracle Management Agentによって、アクティブおよびパッシブの高可用性で構成されているターゲットを監視できます。CFCクラスタの各物理ノードでは、1つの管理エージェントのみが必要ですが、その理由は、パッシブ・ノードへのフェイルオーバーの際に、Enterprise Managerは、一連のEMCLIコマンドを使用して、障害ノード上の管理エージェントから新しくアクティブ化されたノード上の別の管理エージェントにHA監視対象ターゲットを移動できるためです。詳細は、『Oracle® Enterprise Managerコマンドライン・インタフェース』を参照してください。

アクティブ/パッシブ環境でアプリケーションが実行している場合、アクティブなノードに障害が発生すると、クラスタウェアはパッシブ・ノードでアプリケーションを起動します。Enterprise Managerがこのタイプの構成でターゲットを引き続き監視する場合、既存の管理エージェントには追加の構成が必要です。

次の項では、新しいアクティブなノードでターゲットを自動化および再起動する環境を準備する方法について説明します。フェイルオーバーおよびフェイルバックの手順も示します。

H.2 インストールおよび構成

次の項では、Oracle Management Serviceプロセスと通信する既存の管理エージェントを使用してCFC構成をサポートするEnterprise Managerの構成方法について説明します。

H.2.1 前提条件

次の手順は、CFCでのフェイルオーバー用に監視対象ターゲットがすでにインストールおよび構成されていることが前提となります。

アクティブ/パッシブ環境を次のように準備します。

  • オペレーティング・システム・クロックがクラスタのすべてのノード間で同期していることを確認します。(ネットワーク・タイム・プロトコル(NTP)または別のネットワーク同期化メソッドの使用を検討してください。)

  • 物理ホスト名を使用して、クラスタの各ノードに管理エージェントをインストールします。クラスタの各ノードのローカル・ディスク・ボリュームに管理エージェントをインストールします。管理エージェントをインストールすると、Cloud Controlコンソールに表示されます。

  • CFCクラスタの各ノードにEMCLIをインストールして構成します。詳細は、『Oracle® Enterprise Managerコマンドライン・インタフェース』を参照してください。

H.2.2 構成手順

次の項では、OMSプロセスと通信する既存の管理エージェントを使用してCFC構成をサポートするEnterprise Managerの構成方法について説明します。次に示す例は、2つのノードで構成されるクラスタに1つのフェイルオーバー・グループがある構成に基づいています。

構成には次の2つの手順が含まれます。

H.2.2.1 ターゲットの検出

アクティブ/パッシブ・ターゲットを構成した後、Cloud Controlコンソールの「ターゲットの手動追加」画面を使用して、ターゲット(データベース、リスナー、アプリケーション・サーバーなど)を追加します。この画面には、「設定」→「ターゲットの追加」→「ターゲットの手動追加」の順に移動してアクセスします。この手順は、アクティブ・ノード(追加するターゲットを現在ホストしているノード)を指定して実行する必要があります。

H.2.2.2 プラグインのデプロイ

ターゲットを追加した後、アクティブ・ホストのエージェントにデプロイされているプラグインを特定します。これは、エージェントのホームページに移動して「構成」リージョンの「プラグイン」タブを表示することでわかります。

図H-1 エージェントのホームページ

図H-1については周囲のテキストで説明しています。

「検出コンテンツのみ」ボックスが選択されていないプラグインを書き留めます。これらのプラグインは、パッシブ・ノードのエージェントにデプロイする必要はありません。

パッシブ・ノードのエージェントのホームページを確認して存在しないプラグインを特定した後、存在しないプラグインをデプロイするために「設定」→「拡張性」→「プラグイン」に移動して、関連するプラグインを選択し、管理エージェントにデプロイ・メニューを使用してプラグインをデプロイします。

H.3 フェイルオーバー・プロシージャ

ノードのフェイルオーバー後にターゲットの再配置の速度を上げるには、ターゲットのフェイルオーバーの自動開始に必要なコマンドが含まれるスクリプトを使用して次の手順を構成します。通常、クラスタウェア・ソフトウェアには、Enterprise Managerのターゲットを再配置するスクリプトを自動的に実行できるメカニズムがあります。サンプル・スクリプトについては、「再配置スクリプト」も参照してください。

  1. 障害が発生したアクティブ・ノードのターゲット・サービスを停止します。

    ターゲットが実行しているアクティブ・ノードで、仮想IPで実行しているターゲット・サービスを停止します。

  2. 必要に応じて、アクティブ・ノードでこのターゲットの記憶域の接続を解除します。

    仮想IPと共有記憶域で実行しているすべてのアプリケーションを停止します。

  3. 新しいアクティブ・ノードでターゲットのIPアドレスを有効にします。

  4. 必要に応じて、現在アクティブなノードでターゲットの記憶域を接続します。

  5. EM CLIを使用してCloud Controlにターゲットを再配置します。

    新しいアクティブ・ノード上の管理エージェントにターゲットを再配置するには、フェイルオーバー操作後に再配置する必要のあるターゲット・タイプごとに(リスナーやアプリケーション・サーバーなど)、EM CLI relocate_targets動詞を実行します。

    例:

    emcli relocate_targets
    -src_agent=<node 1>:3872 
    -dest_agent=<node 2>:3872
    -target_name=<database_name> 
    -target_type=oracle_database
    -copy_from_src 
    -force=yes
    

    この例では、管理エージェントのデフォルト・ポートはポート3872です。構成に適したポート番号を検索するには、エージェントのURLパラメータの値を使用します。このパラメータを確認するには、管理エージェントに対して次のコマンドを実行します。

    emctl status agent


    注意:

    フェイルオーバー・イベントの発生時に、ソース・エージェントは実行中でないことがあります。ただし、再配置操作を行うために、ソース管理エージェントを実行する必要はありません。EM CLIは、管理リポジトリに対して再配置操作を直接実行するOMSクライアントです。

  6. 新しいアクティブ・ノードですべてのターゲットを起動します。

  7. Enterprise Managerコンソールで、再配置されたすべてのターゲットが起動して実行されていることを確認します。

H.4 フェイルバック手順

HAターゲットを元のアクティブ・ノードまたはその他のクラスタ・メンバー・ノードに戻すには、次の手順を実行します。

  1. HAターゲットをアクティブ・ノードに戻すには、「フェイルオーバー手順」の手順を繰り返します。

  2. Enterprise Managerコンソールでターゲット・ステータスを確認します。

H.5 EM CLI relocate_targetsのパラメータ

第H.3項「フェイルオーバー手順」の説明に従って、再配置操作中にフェイルオーバー(またはスイッチオーバー)するターゲット・タイプごとにEM CLI relocate_targets動詞を実行します。表H-1「relocate_targets動詞のパラメータ」に、このEM CLI動詞に関連付けられている動詞のパラメータを示します。

表H-1 relocate_targets動詞のパラメータ

EM CLIパラメータ 説明

-src_agent

フェイルオーバーの発生前にターゲットが実行していた管理エージェント。

-dest_agent

フェイルオーバー後にターゲットを監視する管理エージェント。

-target_name

フェイルオーバーするターゲットの名前。

-target_type

フェイルオーバーするターゲットのタイプ(Enterprise Managerの内部ターゲット・タイプ)。たとえば、(スタンドアロン・データベースまたはOracle RACインスタンスの)Oracleデータベース、データベース・リスナーのOracleリスナーなど。

-copy_from_src

ソース管理エージェントと同じタイプのプロパティを使用してターゲットを特定します。これは必須パラメータです。このパラメータを指定しないと、ターゲット定義が破損する可能性があります。

-force

同様にフェイルオーバーする依存性を強制します(必要な場合)。


H.6 再配置スクリプト

次の例では、フェイルオーバー操作の発生時にクラスタウェア構成から実行できる再配置スクリプトを示します。

スクリプトを実行する前に:

  • デフォルトの通常ホスト資格証明通常ホスト資格証明を設定します。

  • データベース・インスタンスのターゲット優先資格証明と、通常データベース資格証明SYSDBAのデータベース資格証明およびデータベース・ホスト資格証明を設定します。

H.6.1 再配置スクリプトの例

#! /bin/ksh
#get the status of the targets
 
emcli get_targets 
 -targets="db1:oracle_database;listener_db1:oracle_listener" 
 -noheader
 
  if [[ $? != 0 ]]; then exit 1; fi
 
# blackout the targets to stop false errors.  This blackout is set to expire in 30 minutes.
 
emcli create_blackout 
 -name="relocating active passive test targets" 
 -add_targets="db1:oracle_database;listener_db1:oracle_listener"
 -reason="testing failover"
 -schedule="frequency:once;duration:0:30"
 
  if [[ $? != 0 ]]; then exit 1; fi
 
# relocate the targets to the new host
 
emcli relocate_targets 
 -src_agent=host1.us.oracle.com:3872 
 -dest_agent=host2.us.oracle.com:3872 
 -target_name=db1 -target_type=oracle_database 
 -copy_from_src -force=yes 
 
  if [[ $? != 0 ]]; then exit 1; fi
 
emcli relocate_targets 
 -src_agent=host1.us.oracle.com:3872 
 -dest_agent=host2.us.oracle.com:3872 
 -target_name=listener_db1 
 -target_type=oracle_listener 
 -copy_from_src -force=yes 
 
  if [[ $? != 0 ]]; then exit 1; fi
 
 
# End the blackout and let the targets become visible
 
emcli stop_blackout 
 -name="relocating active passive test targets"
 
  if [[ $? != 0 ]]; then exit 1; fi
 
# Recheck the status of the targets
 
emcli get_targets 
 -targets="db1:oracle_database;listener_db1:oracle_listener" 
 -noheader
 
  if [[ $? != 0 ]]; then exit 1; fi