ヘッダーをスキップ

Oracle Enterprise Manager アドバンスト構成
10gリリース5(10.2.0.5.0)

B53907-01
目次
目次
索引
索引

戻る 次へ

4 アクティブおよびパッシブ環境用のOracle Enterprise Managerの構成

アクティブおよびパッシブ環境(またはコールド・フェイルオーバー・クラスタ(CFC))環境は、高可用性ソリューションの1つで、アプリケーションは一度に1つのノードで動作することができます。これらの環境では、一般に、クラスタのソフトウェアの組合せによって論理ホスト名とIPアドレスが提供され、相互接続されたホストおよびストレージのシステムが情報を共有して、アプリケーションの高可用性のための手段を提供します。

この章では次の項について説明します。

4.1 Enterprise Manager Database Controlでのアクティブおよびパッシブ高可用性環境のための仮想ホスト名の使用

この項では、データベース管理者に、Enterprise Manager Database Controlによるコールド・フェイルオーバー・クラスタ環境でのOracle Databaseリリース10gの構成に関する情報を提供します。

クラスタ内の異なるホストへのフェイルオーバー後にDatabase Controlがデータベース・インスタンスを提供するには、次の条件が満たされている必要があります。

次の項目は、構成とインストールについて、作業を開始する前に考慮すべき点です。

4.1.1 仮想ホスト名および仮想IPアドレスのエイリアスの設定

仮想ホスト名および仮想IPアドレスのエイリアスは、クラスタウェアにそれを自動設定させることにより、またはOracleサービスのインストールおよび起動の前に手動で設定することにより、設定することができます。仮想ホスト名は、静的であり、ネットワーク上で常に解決可能である必要があります。設定に参加するすべてのノードは、仮想IPアドレスを同じホスト名に解決する必要があります。nslookupコマンドやtracerouteコマンドのような標準TCPツールは、検証に使用できます。

4.1.2 共有記憶域の設定

共有記憶域は、使用中のクラスタウェアで管理できます。または、サポートされている任意の共有ファイル・システム・ボリュームを使用できます。最も一般的な共有ファイル・システムは、NFSです。また、Oracle Cluster File Systemソフトウェアを使用することもできます。

4.1.3 環境の設定

一部のバージョンのオペレーティング・システムでは、Oracleデータベースのリリース10gリリース2をインストールする前に、特定のオペレーティング・システム・パッチを適用する必要があります。また、インストールを実行する際に、十分な使用可能カーネル・リソースがある必要があります。

インストーラを起動する前に、必ず、特定の環境変数を確認してください。次の変数はそれぞれ、クラスタに参加するすべてのマシンで、ソフトウェアをインストールするために使用しているアカウントについて同じ設定である必要があります。

4.1.4 Oracleユーザー名、ID、およびグループ名がすべてのクラスタ・メンバーで同じであることの確認

ソフトウェア所有者のユーザーおよびグループは、クラスタのすべてのノードで定義が同一である必要があります。このことは、次のコマンドを使用して確認できます。

$ id -a
uid=1234(oracle) gid=5678(dba) groups=5678(dba)

4.1.5 インベントリ・ファイルが共有記憶域にあることの確認

インベントリ・ファイルが共有記憶域にあることを確認するには、次の手順に従います。

4.1.6 インストーラの起動

インストーラを起動するには、インベントリ・ロケーション・ファイルのoraInst.locを指して、仮想グループのホスト名を指定します。次の例のdebugパラメータはオプションです。

$ export ORACLE_HOSTNAME=lxdb.acme.com
$ runInstaller -invPtrloc /app/oracle/share1/oraInst.loc ORACLE_
HOSTNAME=lxdb.acme.com -debug

4.1.6.1 Windows NT固有の構成手順

Windows環境の場合、Oracleソフトウェアに必要なサービスおよびキーをコピーするには追加の手順が必要です。

  1. 第1ホストでregeditを使用して、
    HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Servicesから各Oracleサービスをエクスポートします。

  2. 第1ホストでregeditを使用して、HKEY_LOCAL_MACHINE¥SOFTWARE¥ORACLEをエクスポートします。

  3. regeditを使用して、手順1および2で作成したファイルをフェイルオーバー・ホストにインポートします。

Windowsの場合、フェイルオーバー・ホストでNTサービスを作成する必要があります。Enterprise Managerリリース10.2.0.5の管理エージェントの場合、次のコマンドを使用できます。

emctl create service [-user <username>] [-pwd <password>] -name <servicename>

フェイルオーバー後に、このコマンドをフェイルオーバー・ホスト上で1回実行する必要があります。

4.1.7 サービスの起動

サービスは、次の順に起動する必要があります。

  1. アクティブ・ノードでIPアドレスを確立します。

  2. TNSリスナーを起動します。

  3. データベースを起動します。

  4. dbconsoleを起動します。

  5. 機能をテストします。

サービスが起動しない場合は、次のようにします。

  1. フェイルオーバー・ボックスでIPを確立します。

  2. TNSリスナーを起動します。

    lsnrctl start
    
    
  3. データベースを起動します。

    dbstart
    
    
  4. Database Controlを起動します。

    emctl start dbconsole
    
    
  5. 機能をテストします。

サービスを手動で停止またはシャットダウンするには、次の手順に従います。

  1. アプリケーションを停止します。

  2. Database Controlを停止します。

    emctl stop dbconsole
    
    
  3. TNSリスナーを停止します。

    lsnrctl stop
    
    
  4. データベースを停止します。

    dbshut
    
    
  5. IPを停止します。

4.2 アクティブ/パッシブ高可用性環境でのGrid Controlリポジトリの構成

Grid Controlリポジトリが別のホストにフェイルオーバーできるように、次の条件を満たしている必要があります。

4.2.1 インストールおよび構成

インストールおよび構成に関する次の要件に注意する必要があります。

インストールにNFSマウント・ボリュームを使用する場合は、I/Oの問題が発生しないように、mountコマンドでrsizeおよびwsizeの値を指定してください。My Oracle Supportノート279393.1「Linux.NetApp: RHEL/SUSE Setup Recommendations for NetApp Filer Storage」を参照してください。

例:

grid-repo.acme.com:/u01/app/share1 /u01/app/share1 nfs
rw,bg,rsize=32768,wsize=32768,hard,nointr,tcp,noac,vers=3,timeo=600 0 0


注意:

非共有フェイルオーバー・ボリュームは、フェイルオーバー後にアクティブ・ホストにマウントできる場合、共有と呼ぶこともできます。 


4.2.2 仮想ホスト名/仮想IPアドレスの設定

仮想ホスト名および仮想IPアドレスは、クラスタウェアにそれを設定させることにより、またはOracleサービスのインストールおよび起動の前に手動で設定することにより、設定することができます。仮想ホスト名は、静的であり、ネットワーク上で常に解決可能である必要があります。設定に参加するすべてのノードは、仮想IPアドレスを同じホスト名に解決する必要があります。nslookuptracerouteのような標準TCPツールは、ホスト名の検証に使用できます。検証は、次のようなコマンドを使用して実行します。

nslookup <virtual hostname>

このコマンドは、仮想IPアドレスと完全修飾ホスト名を返します。

nslookup <virtual IP>

このコマンドは、仮想IPアドレスと完全修飾ホスト名を返します。

クラスタの各ノードでこれらのコマンドを実行し、正しい情報が返されることを確認してみてください。

4.2.3 環境の設定

一部のオペレーティング・システムのバージョンでは、10gリリース2をインストールする前に、特定のパッチを適用する必要があります。10gリリース2ソフトウェアをインストールして使用するユーザーは、十分な使用可能カーネル・リソースがある必要があります。詳細は、オペレーティング・システムのインストレーション・ガイドを参照してください。

インストーラを起動する前に、必ず、特定の環境変数を確認してください。それらの各変数には、クラスタに属するすべてのマシンに該当ソフトウェアをインストールするアカウントで、等しい値を設定する必要があります。

4.2.4 オペレーティング・システムのユーザーIDの同期

ソフトウェア所有者のユーザーおよびグループは、クラスタのすべてのノードで定義が同一である必要があります。次のidコマンドを使用して検証することができます。

$ id -a

uid=550(oracle) gid=50(oinstall) groups=501(dba)

4.2.5 インベントリの設定

インベントリの設定は、次の手順で実行します。

  1. 新しいORACLE_HOMEディレクトリを作成します。

  2. 新しいOracleホームの下にOracleインベントリ・ディレクトリを作成します。

    cd <shared oracle home>

    mkdir oraInventory

  3. oraInst.locファイルを作成します。このファイルには、Universal Installerに必要なインベントリ・ディレクトリ・パス情報が含まれています。

    vi oraInst.loc

    Oracleインベントリ・ディレクトリへのパス情報を入力し、ソフトウェア所有者のグループをoinstallユーザーとして指定します。

    例:

    inventory_loc=/app/oracle/product/10.2/oraInventory
    inst_group=oinstall

4.2.6 ソフトウェアのインストール

次の手順に従って、ソフトウェアをインストールします。

  1. ソフトウェア・バイナリの両ノードで、共有ディスクの場所を作成します。

  2. インベントリ・ロケーション・ファイルoraInst.loc(今の場合はORACLE_BASEの下)をポイントし、仮想グループのホスト名を指定します。次に例を示します。

    $ export ORACLE_HOSTNAME=grid-repo.acme.com
    $ runInstaller -invPtrLoc /app/oracle/share1/oraInst.loc 
    ORACLE_HOSTNAME=grid-repo.acme.com
  3. 共有の場所にのみ、リポジトリDBソフトウェアをインストールします。次に例を示します。

    /oradbnas/app/oracle/product/oradb10203 using Host1

  4. DBCAを起動し、共有の場所ですべてのデータ・ファイルを作成します。次に例を示します。

    /oradbnas/oradata

  5. 以降のインストールを通常どおりに続行します。

  6. 終わったら、oraInst.locファイルおよびoratabファイルを/etcにコピーします。また、/opt/oracleをすべてのクラスタ・メンバー・ホスト(Host2、Host3など)にもコピーします。

4.2.6.1 Windows NT固有の構成手順

Windows環境の場合、Oracleソフトウェアに必要なサービスおよびキーをコピーするには追加の手順が必要です。

  1. 第1ホストでregeditを使用して、
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servicesから各Oracleサービスをエクスポートします。

  2. 第1ホストでregeditを使用して、HKEY_LOCAL_MACHINE\SOFTWARE\ORACLEをエクスポートします。

  3. regeditを使用して、手順1および2で作成したファイルをフェイルオーバー・ホストにインポートします。

Windowsの場合、フェイルオーバー・ホストでNTサービスを作成する必要があります。Enterprise Managerリリース10.2.0.5の管理エージェントの場合、次のコマンドを使用できます。

emctl create service [-user <username>] [-pwd <password>] -name <servicename>

フェイルオーバー後に、このコマンドをフェイルオーバー・ホスト上で1回実行する必要があります。

4.2.7 サービスの起動

サービスは、次の正しい順序で起動してください。

  1. アクティブ・ノードでIPアドレスを確立します。

  2. TNSリスナー(同じフェイルオーバー・グループの一部である場合)を起動します。

  3. データベース(同じフェイルオーバー・グループの一部である場合)を起動します。

フェイルオーバーの場合は、次の手順を実行します。

  1. フェイルオーバー・ボックスでIPアドレスを確立します。

  2. TNSリスナー(lsnrctl start。同じフェイルオーバー・グループの一部である場合)を起動します。

  3. データベース(dbstart。同じフェイルオーバー・グループの一部である場合)を起動します。

4.2.8 要約

これで、浮動ホスト名を利用するCFC環境内でGrid Control管理リポジトリをデプロイできるようになりました。

CFC環境でのOMS中間層のデプロイについては、4.3項「仮想ホスト名を使用した高可用性フェイルオーバーのためのアクティブ/パッシブ環境におけるGrid Control OMSの構成方法」を参照してください。

4.3 仮想ホスト名を使用した高可用性フェイルオーバーのためのアクティブ/パッシブ環境におけるGrid Control OMSの構成方法

この項では、コールド・フェイルオーバー・クラスタ(CFC)環境でEnterprise Manager 10g Grid Controlの構成を実行するGrid Control管理者のために、その操作の概要を説明します。

4.3.1 概要と要件

Grid Controlが他のホストにフェイルオーバーできるためには、次の条件を満たす必要があります。

4.3.2 インストールおよび構成

クラスタ・メンバーの物理ホスト名を仮想ホスト名で上書きするには、ソフトウェアが、ORACLE_HOSTNAMEパラメータを使用してインストールされている必要があります。インベントリ・ポインタについては、共有インベントリの場所へのパスが含まれている共有インベントリ・ロケーション・ファイルを指すように、コマンドライン・パラメータの-invPtrLocを使用して、ソフトウェアがインストールされている必要があります。

インストールにNFSマウント・ボリュームを使用する場合は、I/Oの問題が発生しないように、mountコマンドでrsizeおよびwsizeの値を指定してください。

次に例を示します。

oms.acme.com:/u01/app/share1 /u01/app/
share1 nfs rw,bg,rsize=32768,wsize=32768,hard,nointr,tcp,noac,vers=3,
timeo=600 0 0


注意:

非共有フェイルオーバー・ボリュームは、フェイルオーバー後にアクティブ・ホストにマウントできる場合、共有フェイルオーバー・ボリュームと呼ぶこともできます。 


4.3.3 仮想ホスト名/仮想IPアドレスの設定

仮想ホスト名および仮想IPアドレスは、クラスタウェアにそれを設定させることにより、またはOracleサービスのインストールおよび起動の前に手動で設定することにより、設定することができます。仮想ホスト名は、静的であり、ネットワーク上で常に解決可能である必要があります。設定に参加するすべてのノードは、仮想IPアドレスを同じホスト名に解決する必要があります。nslookupやtracerouteのような標準TCPツールは、ホスト名の検証に使用できます。検証は、次のコマンドを使用して実行します。

nslookup <virtual hostname>

このコマンドは、仮想IPアドレスと完全修飾ホスト名を返します。

nslookup <virtual IP>

このコマンドは、仮想IPアドレスと完全修飾ホスト名を返します。

クラスタの各ノードでこれらのコマンドを実行し、正しい情報が返されることを確認してみてください。

4.3.4 共有記憶域の設定

使用中のクラスタウェアによって管理する記憶域を設定するか、任意の共有ファイル・システム(FS)ボリューム(ただし、OCFS V1のようなサポートされていないタイプは除く)を使用することができます。最も一般的な共有ファイル・システムは、NFSです。

4.3.5 環境の設定

一部のオペレーティング・システムのバージョンでは、10gR2をインストールする前に、特定のパッチを適用する必要があります。10gリリース2ソフトウェアをインストールして使用するユーザーは、十分な使用可能カーネル・リソースがある必要があります。詳細は、オペレーティング・システムのインストレーション・ガイドを参照してください。

インストーラを起動する前に、必ず、特定の環境変数を確認してください。それらの各変数には、クラスタに属するすべてのマシンに該当ソフトウェアをインストールするアカウントで、等しい値を設定する必要があります。

4.3.6 オペレーティング・システムのIDの同期

ソフトウェア所有者のユーザーおよびグループは、クラスタのすべてのノードで定義が同一である必要があります。次のidコマンドを使用して検証することができます。

$ id -a

uid=550(oracle) gid=50(oinstall) groups=501(dba)

4.3.7 共有インベントリの設定

次の手順を実行し、共有インベントリを設定します。

  1. 新しいORACLE_HOMEディレクトリを作成します。

  2. 新しいOracleホームの下にOracleインベントリ・ディレクトリを作成します。

    $ cd <shared oracle home>

    $ mkdir oraInventory

  3. oraInst.locファイルを作成します。このファイルには、Universal Installerに必要なインベントリ・ディレクトリ・パス情報が含まれています。

    1. vi oraInst.loc

    2. Oracleインベントリ・ディレクトリへのパス情報を入力し、ソフトウェア所有者のグループをoinstallユーザーとして指定します。次に例を示します。

      inventory_loc=/app/oracle/product/10.2/oraInventory

      inst_group=oinstall

4.3.8 ソフトウェアのインストール

次の手順に従って、ソフトウェアをインストールします。

  1. ソフトウェア・バイナリの両ノードで、共有ディスクの場所を作成します。

  2. インベントリ・ロケーション・ファイルoraInst.loc(今の場合はORACLE_BASEの下)をポイントし、仮想グループのホスト名を指定します。次に例を示します。

    $ export ORACLE_HOSTNAME=lxdb.acme.com
    $ runInstaller -invPtrloc /app/oracle/share1/oraInst.loc 
    ORACLE_HOSTNAME=lxdb.acme.com -debug
    
    
  3. UNIXコマンドhostname <unqualified name of virtual host>を実行して、
    uname -n (node name)コマンドの実行結果を変更します。該当コマンドは、V$sessionによって即座に読み取られます。

    ホスト名を変更できない場合は、OMSコンフィギュレーション・アシスタントが
    emctl config emkeyで失敗したときにインストーラを中断し、次のコマンドを実行してインストールを完了します。

    1. すべてのホスト名エントリを$OMS_HOME/sysman/config/emoms.properties内の仮想ホスト名に交換します。

    2. <OMS_HOME>/bin/emctl config emkey -repos -force

    3. <OMS_HOME>/bin/emctl secure oms

    4. <OMS_HOME>/bin/emctl secure lock

    5. <OMS_HOME>/perl/bin/perl $OMSHOME/sysman/install/precompilejsp.pl <OMS_HOME>/j2ee/OC4J_EM/
      config/global-web-application.xml

      Grid Control 10.2.0.1を使用している場合、この手順を実行します。10.2.0.4または10.2.0.5パッチセットを適用する前にGrid Controlをインストールする必要があります。

    6. <OMS_HOME>/bin/emctl config agent updateTZ

    7. <OMS_HOME>/opmn/bin/opmnctl stopall

    8. <OMS_HOME>/opmn/bin/opmnctl startall

    9. <AGENT_HOME>/bin/agentca -f

  4. 既存のDBを使用したEMのインストール・オプションを使用して、クラスタ・メンバーHost1にOracle Management Serviceをインストールします。

  5. 以降のインストールを通常どおりに続行します。

  6. 終わったら、oraInst.locファイルおよびoratabファイルを/etcにコピーします。また、/opt/oracleをすべてのクラスタ・メンバー・ホスト(Host2、Host3など)にもコピーします。

4.3.8.1 Windows固有の構成手順

Windows環境の場合、Oracleソフトウェアに必要なサービスおよびキーをコピーするには追加の手順が必要です。

  1. 第1ホストでregeditを使用して、
    HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Servicesから各Oracleサービスをエクスポートします。

  2. 第1ホストでregeditを使用して、HKEY_LOCAL_MACHINE¥SOFTWARE¥ORACLEをエクスポートします。

  3. regeditを使用して、手順1および2で作成したファイルをフェイルオーバー・ホストにインポートします。

Windowsの場合、フェイルオーバー・ホストでNTサービスを作成する必要があります。Enterprise Managerリリース10.2.0.5の管理エージェントの場合、次のコマンドを使用できます。

emctl create service [-user <username>] [-pwd <password>]
-name <servicename>

フェイルオーバー後に、このコマンドをフェイルオーバー・ホスト上で1回実行する必要があります。

4.3.9 サービスの起動

サービスは、次の正しい順序で起動してください。正しい順序は次のようになります。

  1. アクティブ・ノードでIPアドレスを確立します。

  2. TNSリスナー(同じフェイルオーバー・グループの一部である場合)を起動します。

  3. データベース(同じフェイルオーバー・グループの一部である場合)を起動します。

  4. opmnctl startallを使用して、Grid Controlを起動します。

  5. 機能をテストします。

フェイルオーバーの場合は、次の手順を実行します。

  1. フェイルオーバー・ボックスでIPを確立します。

  2. コマンドlsnrctl startを使用して、TNSリスナー(同じフェイルオーバー・グループの一部である場合)を起動します。

  3. コマンドdbstartを使用して、データベース(同じフェイルオーバー・グループの一部である場合)を起動します。

  4. コマンドopmnctl startallを使用して、Grid Controlを起動します。

  5. 機能をテストします。

4.3.10 要約

これで、浮動ホスト名を利用するCFC環境内でGrid ControlのOMS中間層コンポーネントをデプロイできるようになりました。

CFC環境でのリポジトリ・データベースのデプロイについては、4.2項「アクティブ/パッシブ高可用性環境でのGrid Controlリポジトリの構成」を参照してください。

4.4 アクティブ/パッシブ環境用のフェイルオーバーのターゲットの構成

この項では、コールド・フェイルオーバー・クラスタ(CFC)・ターゲットを既存の管理エージェントから別の管理エージェントに再配置するGrid Control管理者のために、その操作の概要を説明します。これらのターゲットは複数のノードで実行することもできますが、CFC環境ではアクティブ・ノードでのみ実行します。

CFC環境では、一般に、クラスタ・ソフトウェアの組合せによって仮想ホスト名とIPアドレスが提供され、相互接続されたホストおよびストレージのシステムが情報を共有して、アプリケーションの高可用性を実現します。仮想ホスト名およびIPのフェイルオーバーの自動化とともに、Enterprise Managerターゲットの再配置、およびパッシブ・ノードでのアプリケーションの再起動を行うには、Oracle Enterprise Managerコマンドライン・インタフェース(EM CLI)と(Oracle Databaseリリース10gまたは11gを実行している)Oracleクラスタウェアまたはサード・パーティのクラスタ・ソフトウェアを使用する必要があります。Oracleのパートナ・ベンダー数社は、この領域のクラスタウェア・ソリューションを提供しています。

Enterprise Managerコマンドライン・インタフェース(EM CLI)を使用すると、様々なオペレーティング・システムに対応したテキスト・ベースのコンソール(端末セッション)からEnterprise Manager Grid Control機能にアクセスできます。EM CLIを使用して、Enterprise Manager Grid Controlコンソール・ベースの操作を実行できます。これには、ターゲット、ジョブ、グループ、ブラックアウト、通知およびアラートの監視や管理などの操作があります。詳細は、『Oracle Enterprise Managerコマンドライン・インタフェース』を参照してください。

4.4.1 アクティブ/パッシブ環境でのターゲットの再配置

Oracle Enterprise Manager 10gリリース10.2.0.5以降では、クラスタ内の各ノードで実行されている単一のOracle Management Agentが、アクティブ/パッシブ高可用性を実現するために構成されているターゲットを監視できます。パッシブ・ノードへのフェイルオーバーの場合、Enterprise Managerは一連のEMCLIコマンドを使用して、障害が発生したノード上の管理エージェントから、新しくアクティブ化されたノード上の別の管理エージェントへHA監視ターゲットを移動できます。このため、CFCクラスタの各物理ノードで必要な管理エージェントは1つのみです。

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

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

4.4.2 インストールおよび構成

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

4.4.2.1 前提条件

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

4.4.2.2 構成手順

次の項では、OMSプロセスと通信する既存の管理エージェントを使用してCFC構成をサポートするようEnterprise Managerを構成する方法について説明します。後述の例は、1つのフェイルオーバー・グループを持つ2ノード・クラスタの構成に基づいています。CFCアクティブ/パッシブ環境で実行されているターゲットの詳細は、My Oracle Supportノート406014.1を参照してください。

  1. EM CLIの構成

    ターゲットの再配置を設定および構成するには、Oracle Enterprise Managerコマンドライン・インタフェース(EM CLI)を使用します。EM CLIおよび管理プラグインの詳細は、『Oracle Enterprise Managerコマンドライン・インタフェース』および『Oracle Enterprise Manager拡張ガイド』を参照してください。

  2. 管理エージェントのインストール

    クラスタ内の各ノード上のローカル・ディスク・ボリュームに管理エージェントをインストールします。インストールした後、管理エージェントはGrid Controlコンソールに表示されます。

  3. ターゲットの検出

    アクティブ/パッシブ・ターゲットが構成された後、Grid Controlコンソール内の管理エージェントの検出画面を使用してターゲット(データベース、リスナー、アプリケーション・サーバーなど)を追加します。新規ターゲットを現在ホストしているノードであるアクティブ・ノードで、検出を実行します。

4.4.3 フェイルオーバー手順

ノードのフェイルオーバー後にターゲットの再配置を短時間で行うには、ターゲットのフェイルオーバーを自動的に開始するために必要なコマンドを含むスクリプトを使用して、次の手順を構成します。通常、クラスタ・ソフトウェアには、Enterprise Manager内のターゲットを再配置するためのスクリプトを自動的に実行できるメカニズムが採用されています。また、サンプル・スクリプトの詳細は、4.4.6項「スクリプト例」も参照してください。

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

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

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

    仮想IPおよび共有記憶域で動作するすべてのアプリケーションを停止します。

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

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

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

    新規アクティブ・ノード上の管理エージェントにターゲットを再配置するには、フェイルオーバー操作後に再配置する必要があるターゲット・タイプ(リスナー、アプリケーション・サーバーなど)ごとにEM CLI RELOCATE TARGETコマンドを発行します。次に例を示します。

    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が管理エージェントのデフォルト・ポートです。使用している構成に適したポート番号を確認するには、この管理エージェントのemd.propertiesファイル内のEMD_URLパラメータの値を使用します。

    注意:フェイルオーバー・イベント時には、ソース・エージェントは実行されません。ただし、RELOCATE操作を実行するためにソース管理エージェントを実行する必要はありません。EM CLIがOMSクライアントとして、管理リポジトリに対してRELOCATE操作を直接実行します。

4.4.4 フォールバック手順

HAターゲットを元のアクティブ・ノードまたは他の任意のクラスタ・メンバー・ノードに戻すには、次のようにします。

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

  2. Grid Controlコンソールでターゲットのステータスを検証します。

4.4.5 EM CLIパラメータ参照

再配置操作中にフェイルオーバー(またはスイッチオーバー)されるターゲット・タイプごとに同じコマンドを発行します。たとえば、同じEM CLIコマンドを発行し、リスナーやアプリケーション・サーバーなどを再配置します。表4-1に、ターゲットを再配置するために使用するEM CLIパラメータを示します。

表4-1    EM CLIパラメータ 
EM CLIパラメータ  説明 

-src_agent 

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

-dest_agent 

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

-target_name 

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

-target_type 

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

-copy_from_src 

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

-force 

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

4.4.6 スクリプト例

次の項では、スクリプト例を示します。

4.4.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

# stop the listener target.  Have to go out to a OS script to use the 'lsnrctl set
current_listener' function

emcli execute_hostcmd -cmd="/bin/ksh" -osscript="FILE" -
input_file="FILE:/scratch/oraha/cfc_test/listener_stop.ksh" -
credential_set_name="HostCredsNormal" -
targets="host1.us.oracle.com:host"
  if [[ $? != 0 ]]; then exit 1; fi

# now, stop the database

emcli execute_sql -sql="shutdown abort" -
targets="db1:oracle_database" -
credential_set_name="DBCredsSYSDBA"
  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  -
changed_param=MachineName:host1vip.us.oracle.com
  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  -
changed_param=MachineName:host1vip.us.oracle.com
  if [[ $? != 0 ]]; then exit 1; fi

# Now, restart database and listener on the new host

emcli execute_hostcmd -cmd="/bin/ksh" -osscript="FILE" -
input_file="FILE:/scratch/oraha/cfc_test/listener_start.ksh" -
credential_set_name="HostCredsNormal" -
targets="host2.us.oracle.com:host"
  if [[ $? != 0 ]]; then exit 1; fi

emcli execute_sql -sql="startup" -
targets="db1:oracle_database" -
credential_set_name="DBCredsSYSDBA"
  if [[ $? != 0 ]]; then exit 1; fi

# Time to end the blackout and let the targets become visible

emcli stop_blackout -name="relocating active passive test targets"
  if [[ $? != 0 ]]; then exit 1; fi

# and finally, recheck the status of the targets

emcli get_targets -
targets="db1:oracle_database;listener_db1:oracle_listener" -noheader
  if [[ $? != 0 ]]; then exit 1; fi

4.4.6.2 リスナーの開始スクリプト

#!/bin/ksh

export 
ORACLE_HOME=/oradbshare/app/oracle/product/11.1.0/db
export PATH=$ORACLE_HOME/bin:$PATH

lsnrctl << EOF
set current_listener listener_db1
start
exit
EOF

4.4.6.3 リスナーの停止スクリプト

#!/bin/ksh
export 
ORACLE_HOME=/oradbshare/app/oracle/product/11.1.0/db
export PATH=$ORACLE_HOME/bin:$PATH

lsnrctl << EOF
set current_listener listener_db1
stop
exit
EOF

4.5 アクティブおよびパッシブ環境で使用するための追加のOracle Enterprise管理エージェントの構成

コールド・フェイルオーバー・クラスタ環境では、1つのホストがアクティブ・ノード(アプリケーションが動作中)とみなされ、共有記憶域に保存されているデータにアクセスします。
2つ目のノードはスタンバイ・ノードとみなされ、障害発生時に、現在プライマリ・ノードで提供されているアプリケーションを動作させることができます。クラスタ・ソフトウェアは、論理ホスト名とIPアドレスを示すように構成されます。このアドレスにより、アプリケーション実行用の、アクティブ・ノードまたはスタンバイ・ノードのいずれにも固定されない一般位置が指定されます。

アクティブ・ノードで障害が発生すると、アプリケーションがハードウェア障害またはクラスタ・ソフトウェアによって停止されます。停止されたアプリケーションは、同じ論理ホスト名およびIPアドレスを使用してパッシブ・ノードで再起動されるので、わずかな中断時間で動作を再開できます。仮想ホスト名およびIPのフェイルオーバーの自動化と、パッシブ・ノードでのアプリケーションの起動には、サード・パーティのクラスタ・ソフトウェアが必要です。Oracleのパートナ・ベンダー数社は、この領域の高可用性ソリューションを提供しています。

4.5.1 インストールおよび構成

Enterprise Managerは、Oracle Management Serviceプロセスと通信する追加の管理エージェントを使用してこの形式のコールド・フェイルオーバー・クラスタをサポートするように構成できます。

使用するアプリケーションがアクティブおよびパッシブ環境で実行されている場合、アクティブ・データベースが停止すると、クラスタウェアは、パッシブまたはスタンバイのデータベース・インスタンスを起動します。このような状況でもEnterprise Managerがアプリケーション・インスタンスの監視を継続できるようにするには、既存の管理エージェントに追加の構成が必要です。

この環境に対する追加の構成の手順には、次が含まれます。

つまり、この構成では、3つの管理エージェント(ハードウェア・ノードごとに1つとクラスタ・ソフトウェアが生成するIPアドレス用に1つ)がインストールされます。理論的には、クラスタ・ソフトウェアが、複数の高可用性環境をサポートするために複数の仮想IPアドレスの生成をサポートする場合、ここで概要を示すソリューションは、その環境をサポートするために拡張される必要があります。

次の表に、CFC環境の管理エージェントの構成に必要な手順を示します。

表4-2    コールド・フェイルオーバー・クラスタ環境の管理エージェントの構成に必要な手順 
操作  方法  説明/結果  検証 

ベンダー固有のクラスタ・ソフトウェアをインストールします。 

インストール方法は、クラスタ・ベンダーによって異なります。 

最小要件は、仮想または浮動IPアドレスと共有記憶域をサポートする2ノード・クラスタです。 

pingコマンドを使用して、浮動IPアドレスの存在を検証します。

nslookup(または同等の)コマンドを使用して、環境内のIPアドレスを検証します。

tracerouteやtracertなどのツールを使用して、ネットワーク上でマシンが使用可能であることを確認します。 

ノード名として物理IPアドレスまたはホスト名を使用して、クラスタの各物理ノードに管理エージェントをインストールします。 

Oracle Universal Installer(OUI)を使用して、管理エージェントをクラスタの各ノードにインストールします。 

完了すると、OUIは、Grid Controlコンソールに表示される各ノードへの管理エージェントのインストールを完了します。 

管理エージェント、ホスト、およびターゲットがEnterprise Manager環境に表示されていることを確認します。 

クラスタ・ソフトウェアを使用して、高可用性向けに構成するターゲットを削除します。 

Grid Controlコンソールを使用して、前述のインストール手順で検出された、クラスタ・ソフトウェアによって管理されるすべてのターゲット(管理エージェントとホストを除く)を削除します。 

Grid Controlコンソールには、管理エージェント、ハードウェア、および高可用性向けに構成されていないすべてのターゲットが表示されます。 

Grid Controlコンソールを調べて、浮動IPアドレスで動作している管理エージェントに割り当てられるすべてのターゲットが、固定IPアドレスを監視する管理エージェントから削除されていることを確認します。 

3つ目の管理エージェントを、論理IPまたは論理ホスト名を使用して、インストール時にOUIで指定されるホストとしてインストールします。

注意:このインストールでは、複数のノードの検出または複数のノードへのインストールを行わないでください。 

この管理エージェントは、クラスタ・ソフトウェアを使用してノード間を移動する(論理IPアドレスを使用して共有記憶域にインストールした)すべてのアプリケーションと同じ規則のすべてに従う必要があります。

このインストールには、インストール時にコマンドラインで使用される追加のオプションが必要です。次の例のように、HOSTNAMEフラグを設定する必要があります。

(/144)-

>./runInstaller HOSTNAME=<Logical IP address or host name> 

3つ目の管理エージェントがインストールされ、物理IPを実行するホストで検出されるすべてのターゲットを監視しています。 

管理エージェントが適切に構成されていることを検証するには、コマンドラインでemctl status agentと入力し、論理IPまたは仮想ホスト名の使用を確認します。また、管理エージェントが適切な管理サービスURLに設定されていることと、管理エージェントがファイルをアップロードしていることを確認します。

管理エージェントが動作し、データをアップロードしている場合は、Grid Controlコンソールを使用して、フェイルオーバー動作時にスタンバイ・ノードに移動するターゲットを管理エージェントが適切に検出していることを確認してください。 

論理IPを監視している管理エージェントから、フェイルオーバー時にパッシブ・ノードに切り替わらないターゲットをすべて削除します。 

Grid Controlコンソールを使用して、スイッチオーバーまたはフェイルオーバー・シナリオでホスト間を移動しないターゲットをすべて削除します。これらは、フェイルオーバーのためにこの論理IPアドレスにアタッチされていないターゲットや、冗長性のために構成されていないターゲットである場合があります。 

Grid Controlコンソールは、3つの管理エージェントを実行しています。クラスタ・ソフトウェアを使用してスイッチオーバーのために構成されているターゲットはすべて、スイッチオーバーまたはフェイルオーバー動作時に移行する管理エージェントによって監視されます。 

動作は、Grid Controlコンソールを調べることによっても検証されます。ノード間を移動するすべてのターゲットは、仮想ホスト名で動作する管理エージェントによって監視されます。残りのターゲットはすべて、個々のノードで動作する管理エージェントによって監視されます。 

新しい論理ホストをクラスタ定義に追加します。 

Grid Controlコンソールの「すべてのターゲット」タブを使用して、クラスタ・ターゲットを検索し、新しく検出された論理ホストを既存のクラスタ・ターゲット定義に追加します。 

クラスタのノードを使用して新しいコンポジット・ターゲットを作成し、「すべてのターゲット」タブの「クラスタ・ターゲットの追加」オプションを(必要に応じて)使用することも可能です。  

Grid Controlコンソールには、クラスタに関連付けられているすべてのホストが適切に表示されます。 

論理IPで動作する管理エージェント・プロセスがクラスタ・ソフトウェアによって制御されるようにします。 

この方法は、クラスタ・ソフトウェア・ベンダーによって異なります。 

管理エージェントがアプリケーションとともに移行します。

推奨される操作順序については、次の項を参照してください。 

クラスタ・ソフトウェアを使用して、管理エージェントを停止して、スタンバイ・ノードで再起動できることを確認します。 

4.5.2 スイッチオーバーの手順

各クラスタ・ベンダーは、スイッチオーバーまたはフェイルオーバーを異なる方法で実行するために必要な手順のラッパーを構築するプロセスを実装します。その手順自体は一般的なものであり、次のとおりです。

管理エージェントを最初に停止し、他のアプリケーションが起動した後に管理エージェントを再起動することにより、Enterprise Managerが不適切なターゲット・ダウン・アラートをトリガーすることを防止できます。この順序で操作しないと、スイッチオーバーまたはフェイルオーバー時にアラートが発生します。

4.5.3 パフォーマンスへの影響

論理的には、アクティブ・ホストで2つの管理エージェント・プロセスが動作することによるパフォーマンスの低下が想定されますが、テストでは、そのようなパフォーマンスの低下は見られませんでした。管理エージェントがこのドキュメントで説明されているように構成されている場合は、物理ホストIPを監視する管理エージェントが保持する監視対象ターゲットは2つのみです。このため、追加のオーバーヘッドは、2つの管理エージェント・プロセス自体と、それらが管理エージェントおよびオペレーティング・システムを監視するために発行するコマンドのみです。テストでは、CPU使用率1〜2%のオーバーヘッドの発生が確認されました。

4.5.4 要約

全体として、コールド・フェイルオーバー環境をサポートするためのEnterprise Managerの構成には、次の手順があります。


戻る 次へ
Oracle
Copyright © 2003, 2009 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引