Sun Cluster 3.1 Data Service for Oracle ガイド

Sun Cluster HA for Oracle の登録と構成

ここでは Sun Cluster HA for Oracle の構成手順について説明します。

Sun Cluster HA for Oracle 拡張プロパティ

表 1–2 の拡張プロパティを使用して、リソースを作成します。リソースを作成するときに、コマンド scrgadm -x parameter=value を使用して拡張プロパティを構成します。リソースが作成済みの場合は、『Sun Cluster 3.1 データサービスの計画と管理』の「データサービスリソースの管理」に記載されている手順で、拡張プロパティを構成します。拡張プロパティの中には動的に変更できるものがあります。それ以外の拡張プロパティは、リソースを作成するか無効にするときにしか更新できません。そのプロパティをいつ変更できるかについては、説明欄の「調整 : 」を参照してください。 Sun Cluster の全プロパティの詳細は、『Sun Cluster 3.1 データサービスの計画と管理』の「標準プロパティ」を参照してください。

表 1–2 Sun Cluster HA for Oracle リスナー拡張プロパティ

名前 / データタイプ 

説明 

LISTENER_NAME (文字列)

Oracle リスナーの名前 

 

初期値 : LISTENER

範囲 : なし

調整 : 無効時 (When_ disabled)

 

ORACLE_HOME (文字列)

Oracle ホームディレクトリへのパス 

 

初期値 : なし

範囲 : 最小 = 1

調整 : 無効時 (When_ disabled)

User_env (文字列)

環境変数が含まれているファイル。リスナーの起動と停止の前に設定されます。Oracle の初期値と値が異なる環境変数は、このファイルに定義する必要があります。 

たとえば、ユーザーの listener.ora ファイルが、 /var/opt/oracle ディレクトリまたは $ORACLE_HOME/network/admin ディレクトリにないことがあります。 この場合、TNS_ADMIN 環境変数を定義する必要があります。

各環境変数の定義は、VARIABLE_NAME = VARIABLE_VALUE という書式で行う必要があります。これらの環境変数は、それぞれ環境ファイル内で 1 行に 1 つずつ指定する必要があります。

 

初期値 : ““

範囲 : なし

調整 : 任意の時点 (Anytime)

表 1–3 に、Oracle サーバーに設定できる拡張プロパティを示します。Oracle サーバーの場合、設定する必要があるのは、次の拡張プロパティだけです。

表 1–3 Sun Cluster HA for Oracle サーバー拡張プロパティ

名前 / データタイプ 

説明 

Alert_log_file (文字列)

Oracle 警告ログファイル 

 

初期値 : なし

範囲 : 最小 = 1

調整 : 任意の時点 (Anytime)

Auto_End_Bkp (ブール)

Oracle リレーショナルデータベース管理システム (RDBMS) のホットバックアップが中断した場合に、次の回復処理を実行するかどうかを指定します。

  • ホットバックアップモードのままのファイルが原因で、データベースが開かない状況を認識する。この確認処理は Sun Cluster HA for Oracle の起動時に行われる。

  • ホットバックアップモードのままになっているファイルをすべて識別して解放する。

  • データベースを使用できるように開く。

このプロパティに指定できる値は、次のとおりです。  

  • False – 回復処理を実行しないことを指定します。これが初期値です。

  • True – 回復処理を実行することを指定します。

初期値 : False

範囲 : なし

調整 : 任意の時点 (Anytime)

Connect_cycle (整数)

データベースを切断するまでにサーバー障害モニターが実行する検証の回数 

 

初期値 : 5

範囲 : 099,999

調整 : 任意の時点 (Anytime)

Connect_string (文字列)

サーバー障害モニターがデータベースに接続するのに使用する Oracle ユーザーとパスワード 

 

初期値 : なし

範囲 : 最小 = 1

調整 : 任意の時点 (Anytime)

Custom_action_file (文字列)

Sun Cluster HA for Oracle サーバー障害モニターのカスタム動作を定義したファイルの絶対パス 

 

初期値 : ““

範囲 : なし

調整 : 任意の時点 (Anytime)

導入されたリリース : 3.1 10/03

Debug_level (整数)

記録する Sun Cluster HA for Oracle デバッグメッセージのレベル 

 

初期値 : 1

範囲 : 1 – 100

調整 : 任意の時点 (Anytime)

ORACLE_HOME (文字列)

Oracle ホームディレクトリへのパス 

 

初期値 : なし

範囲 : 最小 = 1

調整 : 無効時 (When_ disabled)

ORACLE_SID (文字列)

Oracle システム識別子 

 

初期値 : なし

範囲 : 最小 = 1

調整 : 無効時 (When_ disabled)

Parameter_file (文字列)

Oracle パラメータファイル。指定しない場合は、Oracle プロパティのデフォルトが使用されます。 

 

初期値 : ““

範囲 : 最小 = 0

調整 : 任意の時点 (Anytime)

Probe_timeout (整数)

Oracle サーバーインスタンスの検証にサーバー障害モニターが使用するタイムアウト時間 (秒) 

 

初期値 : 60

範囲 : 099,999

調整 : 任意の時点 (Anytime)

Restart_type (文字列)

障害に対する応答再開時に、サーバー障害モニターが再起動するエンティティを指定します。このプロパティに指定できる値は、次のとおりです。 

  • RESOURCE_GROUP_RESTART – このリソースが含まれているリソースグループ内のすべてのリソースを再起動する

  • RESOURCE_RESTART – このリソースだけを再起動する

初期値 : RESOURCE_GROUP_RESTART

範囲 : なし

調整 : 任意の時点 (Anytime)

User_env (文字列)

環境変数が含まれているファイル。サーバーの起動と停止の前に設定される。Oracle の初期値と値が異なる環境変数は、このファイルに定義する必要があります。 

たとえば、ユーザーの listener.ora ファイルが、 /var/opt/oracle ディレクトリまたは $ORACLE_HOME/network/admin ディレクトリにないことがあります。その場合は、TNS_ADMIN 環境変数を定義する必要があります。

各環境変数の定義は、VARIABLE_NAME = VARIABLE_VALUE という書式で行う必要があります。これらの環境変数は、それぞれ環境ファイル内で 1 行に 1 つずつ指定する必要があります。

 

初期値 : NULL

範囲 : なし

調整 : 任意の時点 (Anytime)

Wait_for_online (ブール)

データベースがオンラインになるまで START メソッドで待機します。

 

初期値 : True

範囲 : なし

調整 : 任意の時点 (Anytime)

 

Sun Cluster HA for Oracle を登録して構成する

次の手順に従って、Sun Cluster HA for Oracle をフェイルオーバーデータベースサービスとして構成します。この手順は、Sun Cluster の初回のインストール時にデータサービスパッケージをインストールしたことを前提としています。Sun Cluster の初回のインストール時に Sun Cluster HA for Oracle パッケージをインストールしなかった場合は、Sun Cluster HA for Oracle パッケージのインストール を参照して、データサービスパッケージをインストールしてください。それ以外の場合は、次の手順で Sun Cluster HA for Oracle を構成します。

この手順を実行するには、次の情報を確認しておく必要があります。

  1. クラスタメンバー上でスーパーユーザーになります。

  2. scrgadm コマンドを実行して、データサービスのリソースタイプを登録します。

    Sun Cluster HA for Oracle の場合は、次のように、SUNW.oracle_server および SUNW.oracle_listener の 2 つのリソースタイプを登録します。


    # scrgadm -a -t SUNW.oracle_server
    # scrgadm -a -t SUNW.oracle_listener
    
    -a

    データサービスのリソースタイプを追加します。

    -t SUNW.oracle_ type

    当該データサービス用にあらかじめ定義されているリソースタイプを指定します。

  3. ネットワークとアプリケーションのリソースを格納するためのフェイルオーバーリソースグループを作成します。

    次のように -h オプションを使用すると、データサービスを実行できるノードのセットを選択できます。


    # scrgadm -a -g resource-group [-h nodelist]
    -g resource-group

    リソースグループの名前を指定します。どのような名前でもかまいませんが、クラスタ内のリソースグループごとに一意である必要があります。

    -h nodelist

    潜在マスターを識別するための物理ノード名または ID をコンマで区切って指定します (省略可能)。フェイルオーバー時、ノードはこのリスト内の順番に従ってプライマリとして判別されます。


    注 –

    ノードリストの順番を指定するには、-h オプションを使用します。クラスタ内にあるすべてのノードが潜在マスターである場合、-h オプションを使用する必要はありません。


  4. 使用するすべてのネットワークリソースがネームサービスデータベースに追加されていることを確認します。

    Sun Cluster のインストール時に、この確認を行っておく必要があります。


    注 –

    ネームサービスの検索における問題を回避するために、すべてのネットワークリソースがサーバーとクライアントの /etc/inet/hosts ファイルに存在することを確認します。


  5. ネットワークリソースをフェイルオーバーリソースグループに追加します。


    # scrgadm -a -L -g resource-group -l logical-hostname [-n netiflist] 
    -l logical-hostname

    ネットワークリソースを指定します。ネットワークリソースは、クライアントが Sun Cluster HA for Oracle にアクセスするときに使用する論理ホスト名または共有アドレス (IP アドレス) です。

    [-n netiflist]

    各ノード上の ネットワークマルチパス グループをコンマで区切って指定します (省略可能)。 netiflist の各要素は、netif@node の形式で指定する必要があります。netif は ネットワークマルチパス グループ名 (sc_ipmp0 など) として指定できます。 ノードは、sc_ipmp0@1sc_ipmp@phys-schost-1 などのノード名またはノード IDで特定できます。


    注 –

    現在 Sun Cluster では、netif にアダプタ名は使用できません。


  6. SUNW.HAStoragePlus リソースタイプをクラスタに登録します。


    # scrgadm -a -t SUNW.HAStoragePlus

  7. タイプSUNW.HAStoragePlus のリソース oracle-hastp-rs を作成します。


    # scrgadm -a -j oracle-hastp-rs -g oracle-rg -t SUNW.HAStoragePlus \
     
    [データベースが raw デバイスにある場合は、広域デバイスパスを指定します。]
    -x GlobalDevicePaths=ora-set1,/dev/global/dsk/dl \
     
    [データベースが Cluster File Service にある場合は、 
    広域ファイルシステムとローカルファイルシステムマウントポイントを指定します。]
    -x FilesystemMountPoints=/global/ora-inst,/global/ora-data/logs,/
    local/ora-data \
     
    [AffinityOn を TRUE に設定します。]
    -x AffinityOn=TRUE
    


    注 –

    フェイルオーバーを行うためには、AffinityOn が TRUE に設定され、ローカルファイルシステムが広域ディスクグループ上に存在する必要があります。


  8. scswitch コマンドを実行して次の作業を完了し、リソースグループ oracle-rg をクラスタノード上でオンラインにします。


    注意 – 注意 –

    切り替えは、リソースグループレベルに限定して行なってください。デバイスグループレベルで切り替えると、リソースグループが混乱し、フェイルオーバーが発生します。


    • リソースグループを MANAGED (管理) 状態にします。

    • リソースグループをオンラインにします。

    このノードは、デバイスグループ ora-set1 および raw デバイス /dev/global/dsk/d1 のプライマリになります。ファイルシステムに関連するデバイスグループ (/global/ora-inst/global/ora-data/logs など) もこのノード上でプライマリになります。


    # scswitch -Z -g oracle-rg
    
  9. Oracle アプリケーションリソースをフェイルオーバーリソースグループに作成します。

    • Oracle サーバーリソース :


      # scrgadm -a -j resource -g resource-group \
      -t SUNW.oracle_server \ 
      -x Connect_string=user/passwd \
      -x ORACLE_SID=instance \
      -x ORACLE_HOME=Oracle-home \
      -x Alert_log_file=path-to-log \
      -x Restart_type=entity-to-restart
      -y resource_dependencies=storageplus-resource
      
    • Oracle リスナーリソース :


      # scrgadm -a -j resource -g resource-group \
      -t SUNW.oracle_listener \ 
      -x LISTENER_NAME=listener \
      -x ORACLE_HOME=Oracle-home
      -y resource_dependencies=storageplus-resource
      
    -j resource

    追加するリソースの名前を指定します。

    -g resource-group

    リソースを格納するリソースグループの名前を指定します。

    -t SUNW.oracle_server/listener

    追加するリソースのタイプを指定します。

    -x Alert_log_file =path-to-log

    サーバーメッセージログ用のパスを $ORACLE_HOME の下に指定します。

    -x Connect_string =user/passwd

    障害モニターがデータベースに接続するために使用するユーザー名とパスワードを指定します。ここでの設定は、Oracle データベースのアクセス権を設定するで設定したアクセス権と一致する必要があります。Solaris の承認を使用する場合は、ユーザー名とパスワードの代わりにスラッシュ (/) を入力します。

    -x ORACLE_SID =instance

    Oracle システム識別子を設定します。

    -x LISTENER_NAME =listener

    Oracle リスナーインスタンスの名前を設定します。この名前は、listener.ora 内の対応するエントリに一致する必要があります。

    -x ORACLE_HOME =Oracle-home

    Oracle ホームディレクトリへのパスを設定します。

    -x Restart_type= entity-to-restart

    障害に対する応答再開時に、サーバー障害モニターが再起動するエンティティを指定します。次のように、entity-to-restart を設定します。

    • このリソースが含まれているリソースグループ内のすべてのリソースを再起動する場合は、entity-to-restartRESOURCE_GROUP_RESTART を設定します。デフォルトでは、このリソースを含むリソースグループが再起動します。

      entity-to-restart RESOURCE_GROUP_RESTART を設定すると、障害が発生していない場合でも、リソースグループ内の他のすべてのリソース (Apache、DNS など) が再起動します。したがって、リソースグループには、Oracle サーバーリソースの再起動時に再起動する必要があるリソースだけを含めます。

    • このリソースだけを再起動する場合は、 entity-to-restartRESOURCE_RESTART を設定します。


    注 –

    Oracle データサービスに属する拡張プロパティを設定して、そのデフォルト値を変更できます。どのような拡張プロパティがあるかについては、Sun Cluster HA for Oracle 拡張プロパティ を参照してください。


  10. リソースと障害の監視を有効にします。


    # scswitch -Z -g resource-group
    
    -Z

    リソースとモニターを有効にし、リソースグループを MANAGED 管理状態にし、リソースグループをオンラインにします。

    -g resource-group

    リソースグループの名前を指定します。

例 — Sun Cluster HA for Oracle の登録

次に、2 ノード構成のクラスタで Sun Cluster HA for Oracle を登録する例を示します。


クラスタ情報
ノード名 : phys-schost-1, phys-schost-2
論理ホスト名 : schost-1
リソースグループ : resource-group-1 (フェイルオーバーリソースグループ)
Oracle リソース : oracle-server-1, oracle-listener-1
Oracle インスタンス : ora-lsnr (リスナー), ora-srvr (サーバー)
 
(フェイルオーバーリソースグループを追加して全てのリソースを含めます。)
# scrgadm -a -g resource-group-1
 
(論理ホスト名リソースをリソースグループに追加します。)
# scrgadm -a -L -g resource-group-1 -l schost-1 
 
(Oracle リソースタイプを登録します。)
# scrgadm -a -t SUNW.oracle_server
# scrgadm -a -t SUNW.oracle_listener
 
(Oracle アプリケーションリソースをリソースグループに追加します。)
# scrgadm -a -j oracle-server-1 -g resource-group-1 \
-t SUNW.oracle_server -x ORACLE_HOME=/global/oracle \
-x Alert_log_file=/global/oracle/message-log \
-x ORACLE_SID=ora-srvr -x Connect_string=scott/tiger
 
# scrgadm -a -j oracle-listener-1 -g resource-group-1 \
-t SUNW.oracle_listener -x ORACLE_HOME=/global/oracle \
-x LISTENER_NAME=ora-lsnr
 
(リソースグループをオンラインにします。)
# scswitch -Z -g resource-group-1

次の作業

Sun Cluster HA for Oracle の登録と構成が完了したら、Sun Cluster HA for Oracle のインストールの確認 に進みます。