Sun Cluster 3.0 U1 データサービスのインストールと構成

第 2 章 Sun Cluster HA for Oracle のインストールと構成

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

Sun Cluster HA for Oracle データサービスは、フェイルオーバーサービスとして構成する必要があります。データサービス、リソースグループ、リソース、関連事項については、第 1 章「Sun Cluster データサービスの計画」および『Sun Cluster 3.0 U1 の概念』を参照してください。


注 -

このデータサービスのインストールと構成には、SunPlex Manager が使用できます。詳細は、SunPlex Manager のオンラインヘルプを参照してください。


Sun Cluster HA for Oracle のインストールと構成

表 2-1 に、インストールと構成作業について説明している節を示します。

表 2-1 作業マップ: Sun Cluster HA for Oracle のインストールと構成

作業 

参照箇所 

Sun Cluster HA for Oracle データサービスをインストールする準備 

「Sun Cluster HA for Oracle のインストール準備」

Oracle アプリケーションソフトウェアのインストール 

「Oracle サーバーソフトウェアのインストール」

Oracle データベースの作成 

「Oracle データベースの作成」

Oracle データベースのアクセス権の設定 

「Oracle データベースのアクセス権の設定」

Sun Cluster HA for Oracle パッケージのインストール 

「Sun Cluster HA for Oracle パッケージのインストール」

リソースタイプの登録と、リソースグループおよびリソースの構成 

「Sun Cluster HA for Oracle の登録と構成」

Sun Cluster HA for Oracle のインストールの確認 

「Sun Cluster HA for Oracle のインストールの確認」

拡張プロパティの設定 

「Sun Cluster HA for Oracle 拡張プロパティの構成」

障害モニターの情報の表示 

「Sun Cluster HA for Oracle の障害モニター」

Sun Cluster HA for Oracle のインストール準備

Sun Cluster HA for Oracle データサービスをインストールする場合には、まず、次のファイルのインストール場所を指定する必要があります。

Oracle サーバーソフトウェアのインストール

この節で説明する手順を使用して、以下の操作を行います。


注 -

Sun Cluster HA for Oracle データサービスの設定を開始する前に、『Sun Cluster 3.0 U1 ソフトウェアのインストール』で説明されている手順を使用し、各ノード上で Sun Cluster ソフトウェアを構成する必要があります。


ノードを準備する

Oracle アプリケーションソフトウェアのインストール用にクラスタノードを準備する方法について説明します。


注意 - 注意 -

ここで説明する手順は、すべての Sun Cluster ノードで実行してください。すべてのノードですべての手順を実行しないと、Oracle のインストールが不完全なため、Sun Cluster HA for Oracle データサービスは起動に失敗します。



注 -

この手順を実行する前に、Oracle のマニュアルを参照してください。


Sun Cluster ノードを準備し、Oracle ソフトウェアをインストールする手順は、次のとおりです。

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

  2. /etc/nsswitch.conf ファイルを次のように構成します。これによって、スイッチオーバーやフェイルオーバーが起こったときに、データサービスの起動と停止が正しく行われます。

    SSun Cluster HA for Oracle データサービスが動作する論理ホストをマスターできる各ノードで、次の group エントリのどれかを /etc/nsswitch.conf ファイルに指定します。


    group:
    group:		 	files
    group:		 	files [NOTFOUND=return] nis
    group:		 	files [NOTFOUND=return] nisplus

    Sun Cluster HA for Oracle データサービスは、su user コマンドを使ってデータベースノードの開始や停止を行います。一方、クラスタノードのパブリックネットワークに異常が起こると、ネットワーク情報ネームサービスが使用不能になることがあります。group に上のどれかのエントリが指定されていると、su(1M) コマンドは、ネットワーク情報ネームサービスが使用不能なら NIS/NIS+ ネームサービスを参照しません。

  3. Sun Cluster HA for Oracle データサービス用のクラスタファイルシステムを構成します。

    データベースを raw デバイスに格納する場合は、広域デバイスを raw デバイスアクセス用に構成します。広域デバイスの構成方法については、『Sun Cluster 3.0 U1 ソフトウェアのインストール』を参照してください。

    Solstice DiskSuite ボリューム管理ソフトウェアを使用する場合は、UNIX ファイルシステム (UFS) ロギングか raw ミラー化メタデバイスを使用するように Oracle ソフトウェアを構成します。raw ミラー化メタデバイスの構成方法については、Solstice DiskSuite のマニュアルを参照してください。

  4. ローカルディスクまたは多重ホストディスクに $ORACLE_HOME ディレクトリを作成します。


    注 -

    Oracle バイナリをローカルディスクにインストールする場合は、できるだけ別のディスクを使用してください。Oracle バイナリを別のディスクにインストールすると、オペレーティング環境の再インストール時にバイナリが上書きされるのを防止できます。


  5. 各ノードの /etc/group ファイルにデータベース管理者 (DBA) グループのエントリを作成し、予定するユーザーをこのグループに追加します。

    DBA グループには、通常 dba という名前を付けます。rootoracle_id ユーザーが dba グループのメンバーになっているか確認し、必要に応じて他の DBA ユーザーのエントリを追加します。このグループ ID は、Sun Cluster HA for Oracle データサービスが動作するどのノードでも同じでなければなりません。次にその例を示します。


    dba:*:520:root,oracle 

    グループエントリをネットワークネームサービス (NIS や NIS+ など) に作成することができます。その場合には、ネットワークネームサービスに依存するのを避けるために、これらのエントリをローカルの /etc/inet/hostsファイルにも追加します。

  6. 各ノードで、Oracle ユーザー ID (oracle_id) のエントリを作成します。

    Oracle ユーザー ID には、通常 oracle という名前を付けます。次のコマンドでは、/etc/passwd/etc/shadow ファイルに Oracle ユーザー ID のエントリを作成します。


    # useradd -u 120 -g dba -d /Oracle-home oracle
    

    oracle_id ユーザーエントリは、Sun Cluster HA for Oracle データサービスが動作するどのノードでも同じでなければなりません。

Oracle ソフトウェアをインストールする

Oracle ソフトウェアをインストールする手順は次のとおりです。

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

  2. Oracle インストールの要件に注意してください。

    Oracle バイナリは、次のどちらかにインストールする必要があります。

    • クラスタノードのローカルディスク

    • クラスタファイルシステム


      注 -

      Oracle ソフトウェアをクラスタファイルシステムにインストールする場合には、まず、Sun Cluster ソフトウェアを起動し、ディスクデバイスグループの所有者になる必要があります。


    Oracle ソフトウェアをどこにインストールするかについては、「Sun Cluster HA for Oracle のインストール準備」を参照してください。

  3. Oracle ソフトウェアをインストールします。

    Oracle ソフトウェアをどこにインストールする場合でも、Oracle の標準的なインストール手順を使用する場合と同じように、各ノードの /etc/system ファイルを変更する必要があります。その後で再起動してください。

    この手順を行うときには、oracle_id でログインし、ディレクトリ全体を所有する必要があります。Oracle ソフトウェアのインストール方法については、Oracle の適切なインストールおよび構成ガイドを参照してください。

Oracle のインストールを確認する

Oracle のインストールを確認する手順は次のとおりです。

  1. oracle_id ユーザーと dba グループが $ORACLE_HOME/bin/oracle ディレクトリを所有していることを確認します。

  2. $ORACLE_HOME/bin/oracle のアクセス権が次のように設定されていることを確認します。


    -rwsr-s--x
  3. リスナーバイナリが $ORACLE_HOME/bin にあることを確認します。

次の作業

この節での作業を終了したら、「Oracle データベースの作成」に進みます。

Oracle データベースの作成

この節で説明する 2 つの手順を完了し、Sun Cluster 構成で初期 Oracle データベースを構成し作成します。追加のデータベースを作成し、構成する場合は、「Oracle データベースを作成する」を省略します。

Solstice DiskSuite による Oracle データベースアクセスを構成する

Solstice DiskSuite ボリューム管理ソフトウェアを使用する場合は、次の手順に従って Solstice DiskSuite ボリューム管理ソフトウェアにより Oracle データベースアクセスを構成します。

  1. Solstice DiskSuite ソフトウェアが使用するディスクデバイスを構成します。

    Solstice DiskSuite ソフトウェアの構成方法については、『Sun Cluster 3.0 U1 ソフトウェアのインストール』を参照してください。

  2. データベースを raw デバイスに格納する場合は、次のコマンドを実行して各 raw ミラー化メタデバイスの所有者、グループ、モードを変更します。

    raw デバイスを使用しない場合は、次の各手順を実行しないでください。

    1. raw デバイスを作成する場合は、Oracle リソースグループをマスターできる各ノードでデバイスごとに次のコマンドを実行します。


      # chown oracle_id /dev/md/metaset/rdsk/dn
      # chgrp dba_id /dev/md/metaset/rdsk/dn
      # chmod 600 /dev/md/metaset/rdsk/dn
      
      metaset

      ディスクセットの名前を指定します。

      /rdsk/dn

      metaset ディスクセット内の raw ディスクデバイスの名前を指定します。

    2. 変更が有効になっているか確認します。


      # ls -lL /dev/md/metaset/rdsk/dn
      

VERITAS ボリューム管理ソフトウェアによる Oracle データベースアクセスを構成する

VxVM ソフトウェアを使用する場合は、次の手順に従って、VxVM ソフトウェアによる Oracle データベースアクセスを構成します。

  1. VxVM ソフトウェアが使用するディスクデバイスを構成します。

    VERITAS ボリューム管理ソフトウェアの構成方法については、『Sun Cluster 3.0 U1 ソフトウェアのインストール』を参照してください。

  2. データベースを raw デバイスに格納する場合は、現在のディスク-グループ主ノードで次のコマンドを実行して各デバイスの所有者、グループ、モードを変更します。

    raw デバイスを使用しない場合は、この手順を実行しないでください。

    1. raw デバイスを作成する場合は、raw デバイスごとに次のコマンドを実行します。


      # vxedit -g diskgroup set user=oracle_id group=dba mode=600 volume
      
      diskgroup

      ディスクグループの名前を指定します。

      volume

      ディスクグループ内の raw ボリュームの名前を指定します。

    2. 変更が有効になっているか確認します。


      # ls -lL /dev/vx/rdsk/diskgroup/volume
      

    3. ディスクデバイスグループをクラスタに再登録して、クラスタ内での VxVM 名前空間の整合性を確保します。


      # scconf -c -D name=diskgroup
      

Oracle データベースを作成する

  1. データベース構成ファイルを準備します。

    すべてのデータベース関連ファイル (データファイル、redo ログファイル、制御ファイル) を、共有 raw 広域デバイスまたはクラスタファイルシステムに格納します。インストール場所については、「Sun Cluster HA for Oracle のインストール準備」を参照してください。

    場合によっては、init$ORACLE_SID.ora または config$ORACLE_SID.ora ファイル内の control_filesbackground_dump_dest の設定を、制御ファイルとアラートファイルの格納場所を示すように変更する必要があります。


    注 -

    データベースへのログインに Solaris の認証機能を使用している場合は、init$ORACLE_SID.ora ファイル内の remote_os_authent 変数を True に設定します。


  2. データベースを作成します。

    Oracle インストーラを起動し、データベースを作成するオプションを選択します。Oracle のバージョンによっては、Oracle の svrmgrl (1M) コマンドを使用してデータベースを作成できます。

    作成中、すべてのデータベース関連ファイルが、共有広域デバイスまたはクラスタファイルシステムの適切な場所に配置されていることを確認してください。

  3. 制御ファイルのファイル名が、構成ファイル内のファイル名と一致していることを確認します。

  4. v$sysstat ビューを作成します。

    カタログスクリプトを実行して v$sysstat ビューを作成します。Sun Cluster の障害モニタースクリプトでこのビューが使用されます。

次の作業

この節での作業を終了したら、「Oracle データベースのアクセス権の設定」に進みます。

Oracle データベースのアクセス権の設定

この節で説明する手順を使用し、Oracle データベースのアクセス権を設定します。

Oracle データベースのアクセス権を設定する

手順 1 では、Oracle 認証方式か Solaris 認証方式を選択し、構成する必要があります。これは、障害監視アクセスで使用されます。

  1. 障害モニターに使用されるユーザーとパスワードに対するアクセスを有効にします。

    そのためには、次のどちらかを行います。

    • Oracle 認証方式を使用する場合: サポートされるすべての Oracle リリースに対し、srvmgr1 コマンドの表示画面に次のスクリプトを入力してアクセスを有効にします。


      # svrmgrl
       
      	connect internal;
      			grant connect, resource to user identified by passwd;
      			alter user user default tablespace system quota 1m on
      				system;
             			grant select on v_$sysstat to user;
      			grant create session to user;
      			grant create table to user;
      	disconnect;
       
         exit;
    • Solaris 認証方式を使用する場合: Solaris 認証を使用するデータベースのアクセス権を付与します。


      注 -

      Solaris 認証を有効にするユーザーは、$ORACLE_HOME ディレクトリ下のファイルを所有するユーザーです。次のコード例では、ユーザー oracle が、これらのファイルを所有しています。



      # svrmgrl
       
      	connect internal;
      			create user ops$oracle identified by externally
      				default tablespace system quota 1m on system;
      			grant connect, resource to ops$oracle;
            			grant select on v_$sysstat to ops$oracle;
      			grant create session to ops$oracle;
      			grant create table to ops$oracle;
      	disconnect;
       
         exit;
  2. Sun Cluster ソフトウェア用に NET8 を構成します。

    listener.ora および tnsnames.ora ファイルは、クラスタ内のすべてのノードからアクセスできるようにしてください。これらのファイルは、Oracle リソースを実行することができる各ノードのクラスタファイルシステム下、またはローカルファイルシステム内に配置できます。


    注 -

    listener.ora ファイルと tnsnames.ora ファイルを /var/opt/oracle または $ORACLE_HOME/network/admin ディレクトリ以外の場所に置く場合は、ユーザー環境ファイルで TNS_ADMIN またはそれに相当する Oracle 変数 (詳細は、Oracle のマニュアルを参照) を指定する必要があります。さらに、scrgadm(1M) コマンドを実行して、ユーザー環境ファイルを指定するリソース拡張パラメータ User_env を設定してください。


    Sun Cluster HA for Oracle データサービスでは、リスナー名に制限はありません。任意の有効な Oracle リスナー名を指定できます。

    次のコード例は、listener.ora ファイル内で更新された行を示しています。


    LISTENER =
    	(ADDRESS_LIST =
    			(ADDRESS =
    				(PROTOCOL = TCP) 
    					(HOST = logical-hostname) <- use logical hostname
    				(PORT = 1527)
    			)
    	)
    .
    .
    SID_LIST_LISTENER =
    	.
    			.
    						(SID_NAME = SID) <- Database name, default is ORCL	

    次のコード例は、クライアントマシンで更新された tnsnames.ora ファイルの行を示しています。


    service_name =
    	.
    			.
    						(ADDRESS = 
    								(PROTOCOL = TCP)
    								(HOST = logicalhostname)	<- logical hostname
    								(PORT = 1527) <- must match port in LISTENER.ORA
    						)
    				)
    				(CONNECT_DATA =
    						(SID = <SID>)) <- database name, default is ORCL

    以下の例は、次の Oracle インスタンスを指定して listener.ora および tnsnames.ora ファイルを更新する方法を示しています。

    インスタンス 

    論理ホスト 

    リスナー 

    ora8

    hadbms3

    LISTENER-ora8

    ora7

    hadbms4

    LISTENER-ora7

    対応する listener.ora エントリは次のようになります。


    LISTENER-ora7 =
    	(ADDRESS_LIST =
    			(ADDRESS =
    				(PROTOCOL = TCP)
    				(HOST = hadbms4)
    				(PORT = 1530)
    			)
    		)
    SID_LIST_LISTENER-ora7 =
    	(SID_LIST =
    			(SID_DESC =
    				(SID_NAME = ora7)
    			)
    		)
    LISTENER-ora8 =
      (ADDRESS_LIST =
        (ADDRESS= (PROTOCOL=TCP) (HOST=hadbms3)(PORT=1806))
      )
    SID_LIST_LISTENER-ora8 =
      (SID_LIST =
         (SID_DESC =
    			(SID_NAME = ora8)
    		 )	
      )

    対応する tnsnames.ora エントリは次のようになります。


    ora8 =
    (DESCRIPTION =
       (ADDRESS_LIST = 
    			(ADDRESS = (PROTOCOL = TCP) 
    			(HOST = hadbms3) 
    			(PORT = 1806))
       	)    
    	(CONNECT_DATA = (SID = ora8))
    )
    ora7 =
    (DESCRIPTION =
      (ADDRESS_LIST =
            (ADDRESS = 
    				(PROTOCOL = TCP) 
    				(HOST = hadbms4) 
    				(PORT = 1530))
      )
      	(CONNECT_DATA = (SID = ora7))
    )
  3. Sun Cluster ソフトウェアがインストールされ、すべてのノードで実行されていることを確認します。


    # scstat
    

次の作業

Sun Cluster HA for Oracle データサービスを登録して構成するには、「Sun Cluster HA for Oracle パッケージのインストール」へ進みます。

Sun Cluster HA for Oracle パッケージのインストール

scinstall(1M) ユーティリティを使って、SUNWscor (Sun Cluster HA for Oracle データサービスパッケージ) をクラスタにインストールします。このときに、非対話型の scinstall にすべてのデータサービスパッケージをインストールする -s オプションを指定しないでください。

Sun Cluster のインストール時に SUNWscor データサービスパッケージをすでにインストールしている場合は、「Sun Cluster HA for Oracle の登録と構成」に進んでください。まだインストールしていない場合は、次の手順に従って SUNWscor パッケージをインストールします。

Sun Cluster HA for Oracle パッケージをインストールする

この手順を実行するには、Sun Cluster Agents CD が必要です。Sun Cluster HA for Oracle データサービスを実行するすべてのクラスタノードで、この手順を実行してください。

  1. Agents CD を CD-ROM ドライブに挿入します。

  2. オプションは指定せずに、scinstall ユーティリティを実行します。

    scinstall ユーティリティが対話型モードで起動します。

  3. 「Add support for new data service to this cluster node.」メニューオプションを選択します。

    このオプションは、CD 内にある任意のデータサービスのソフトウェアを読み込むことができます。

  4. scinstall ユーティリティを終了します。

  5. ドライブから CD を取り出します。

次の作業

Sun Cluster HA for Oracle データサービスを登録し、データサービス用にクラスタを構成するには、「Sun Cluster HA for Oracle の登録と構成」を参照してください。

Sun Cluster HA for Oracle の登録と構成

Sun Cluster HA for Oracle データサービスは、フェイルオーバーデータサービスとして登録して構成します。そのためには、Oracle サーバーおよびリスナー用に、データサービスを登録し、リソースグループとリソースを構成する必要があります。リソースとリソースグループの詳細については、第 1 章「Sun Cluster データサービスの計画」および『Sun Cluster 3.0 U1 の概念』を参照してください。

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

この手順は、scrgadm コマンドを使って 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/hosts ファイルにすべての論理ホスト名が登録されていることを確認してください。


  5. 論理ホスト名をフェイルオーバーリソースグループに追加します。


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

    論理ホスト名を指定します。

    -j resource

    論理ホスト名リソースに名前を指定します (任意)。名前を指定しない場合、リソース名は、デフォルトで -l オプションで最初に指定した名前になります。

    -n netiflist

    各ノードの NAFO グループをコンマで区切って指定します。リソースグループの nodelist 内のすべてのノードが netiflist に含まれている必要があります。このオプションを指定しない場合は、scrgadm は、nodelist 内の各ノードの hostname リストによって識別されるサブネット上からネットアダプタを見つけようとします。

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

    # scrgadm -a -j resource -g resource-group ¥
    -t SUNW.oracle_listener ¥ 
    -x LISTENER_NAME=listener ¥
    -x ORACLE_HOME=Oracle-home
    
    -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 ホームディレクトリのパスを設定します。


    注 -

    再起動の原因になるような障害が Oracle サービスリソースの 1 つに起こると、そのリソースグループ全体が再起動されます。つまり、Apache や DNS など、障害が発生していない同じリソースグループの他のリソースも再起動されます。Oracle サーバーリソースの障害によって他のリソースが再起動されるのを防ぐには、それらのリソースを別のリソースグループに入れます。

    必要に応じて、Oracle データサービスに属する拡張プロパティをさらに設定し、デフォルト値を上書きできます。拡張プロパティの一覧については、「Sun Cluster HA for Oracle 拡張プロパティの構成」を参照してください。


  7. scswitch コマンドを実行して次の作業を行います。

    • リソースと障害モニターを有効にします。

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

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


    # scswitch -Z -g resource-group
    
    -Z

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

    -g resource-group

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

例 - Sun Cluster HA for Oracle の登録

次に、2 ノードクラスタに Sun Cluster HA for Oracle データサービスを登録する例を示しています。


Cluster Information
Node names: phys-schost-1, phys-schost-2
Logical Hostname: schost-1
Resource group: resource-group-1 (フェイルオーバーリソースグループ)
Oracle Resources: oracle-server-1, oracle-listener-1
Oracle Instances: 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

SUNW.HAStorage リソースタイプを構成する

SUNW.HAStorage リソースタイプは、HA 記憶装置とデータサービス間の動作を同期させます。Sun Cluster HA for Oracle データサービスは、ディスクに負荷がかかることが多いため、SUNW.HAStorage リソースタイプを設定する必要があります。

詳細は、SUNW.HAStorage(5) マニュアルページおよび 「リソースグループとディスクデバイスグループの関連性」を参照してください。手順については、「新しいリソース用に SUNW.HAStorage リソースタイプを設定する」を参照してください。

次の作業

Sun Cluster HA for Oracle データサービスの登録と構成が終わったら、「Sun Cluster HA for Oracle のインストールの確認」へ進みます。

Sun Cluster HA for Oracle のインストールの確認

次の確認テストを実行し、Sun Cluster HA for Oracle データサービスが正しくインストールされていることを確認してください。

これらの妥当性検査によって、Sun Cluster HA for Oracle データサービスを実行するすべてのノードで Oracle インスタンスが起動され、構成内のほかのノードから Oracle インスタンスにアクセスできることが保証されます。これらの妥当性検査を実行し、Sun Cluster HA for Oracle データサービスから Oracle ソフトウェアを起動するときに発生する問題を特定してください。

Sun Cluster HA for Oracle のインストールを確認する

  1. Oracle リソースグループを現在マスターしているノードに oracle_id でログインします。

  2. 環境変数 ORACLE_SID および ORACLE_HOME を設定します。

  3. このノードから Oracle インスタンスを起動できることを確認します。

  4. Oracle インスタンスに接続できることを確認します。

    sqlplus コマンドと、tnsnames.ora ファイルで定義されている tns_service 変数を使用します。


    # sqlplus user/passwd@tns_service
    

  5. Oracle インスタンスを停止します。

    Oracle インスタンスは、Sun Cluster によって制御されるため、Sun Cluster ソフトウェアは後でこのインスタンスを再起動します。

  6. Oracle データベースリソースが含まれているリソースグループを、そのクラスタ内の別のクラスタメンバーに切り替えます。

    次に、このステップを完成する例を示します。


    # scswitch -z -g resource-group -h node 
    
  7. そのリソースグループがあるノードに oracle_id でログインします。

  8. 手順 3手順 4 を繰り返し行って、Oracle インスタンスの起動とそれへの接続が正常に行われることを確認します。

Oracle クライアント

クライアントは、物理ホスト名 (マシン名) ではなく、論理ホスト名 (フェイルオーバー時に、物理ノード間で移動できる IP アドレス) を使用し、常にデータベースを参照する必要があります。

たとえば、tnsnames.ora ファイルでは、データベースインスタンスを実行するホストとして、論理ホスト名を指定する必要があります。詳細は、「Oracle データベースのアクセス権を設定する」を参照してください。


注 -

Oracle のクライアントとサーバー間の接続は、Sun Cluster HA for Oracle スイッチオーバーが発生すると切り離されます。このため、クライアントアプリケーションは、必要に応じて、切り離しと再接続、あるいは回復に対処する必要があります。トランザクションモニターによって、アプリケーションの処理が簡単になることがあります。また、Sun Cluster HA for Oracle のノードの回復時間は、アプリケーションに依存します。


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

この節では、Sun Cluster HA for Oracle 拡張プロパティについて説明します。通常は、拡張プロパティは Oracle サーバーリソースやリスナーリソースを作成するときに、コマンド行から scrgadm -x parameter=value を実行して構成します。拡張プロパティは、第 11 章に示す手順を使って後で構成することもできます。Sun Cluster の全プロパティについては、付録 A を参照してください。

表 2-2 は、Oracle リスナーリソースのために設定できる拡張プロパティを示したものです。Oracle リスナーリソースの作成に欠かせない拡張プロパティは ORACLE_HOME プロパティです。拡張プロパティによっては、動的に更新できるものもあります。しかし、それ以外の拡張プロパティは、リソースを作成するときにしか更新できません。次の表の「調整」列は、そのプロパティをいつ更新できるかを示しています。

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

名前/データタイプ 

デフォルト 

範囲 

調整 

説明 

LISTENER_ NAME (文字列)

LISTENER

なし 

無効化されたとき 

Oracle リスナーの名前。 

ORACLE_ HOME (文字列)

なし 

最小 = 1 

無効化されたとき 

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

User_env (文字列)

"" 

なし 

任意の時点 

環境変数が含まれているファイル。リスナーの起動と停止の前に設定される。 

表 2-3 に、Oracle サーバーに設定できる拡張プロパティを示します。Oracle サーバーに対して設定する必要のある拡張プロパティは、ORACLE_HOMEORACLE_SIDAlert_log_fileConnect_string プロパティです。

表 2-3 Sun Cluster HA for Oracle サーバーの拡張プロパティ

名前/データタイプ 

デフォルト 

範囲 

調整 

説明 

Alert_log_ file (文字列)

なし 

最小 = 1 

任意の時点 

Oracle 警告ログファイル。 

Connect_ cycle (整数)

5

0 - 99,999

任意の時点 

データベースから切り離されるまでの障害モニターの接続検証サイクル数。 

Connect_ string (文字列)

なし 

最小 = 1 

任意の時点 

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

ORACLE_ HOME (文字列)

なし 

最小 = 1 

無効化されたとき 

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

ORACLE_ SID (文字列)

なし 

最小 = 1 

無効化されたとき 

Oracle システム識別子identifier。 

Parameter_ file (文字列)

"" 

最小 = 0 

任意の時点 

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

Probe_ timeout (整数)

60

0 - 99,999

任意の時点 

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

User_env (文字列))

"" 

なし 

任意の時点 

環境変数が含まれているファイル。リスナーの起動と停止の前に設定される。 

Wait_for_ online (ブール値)

True

なし 

任意の時点 

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

Sun Cluster HA for Oracle の障害モニター

Sun Cluster HA for Oracle データサービスには、サーバーモニターとリスナーモニターの 2 つの障害モニターがあります。

Oracle サーバーの障害モニター

Oracle サーバーの障害モニターは、サーバーの状態を照会する要求をサーバーに送信します。

サーバーの障害モニターは、次の 2 つのプロセスから成ります。

検証機能からデータベースへのすべての接続は、ユーザー Oracle で実行されます。障害モニターの主プロセスは、データベースがオンラインで、トランザクション中にエラーが返されていない場合に、操作が正常に終了したと判断します。

データベースのトランザクションに失敗した場合、主プロセスは、実行するアクションについて内部アクションテーブルを調べ、あらかじめ定義されているアクションを実行します。そのアクションが外部プログラムを実行する場合は、そのプログラムは別プロセスとしてバックグラウンドで処理されます。起りうるアクションには、次のものがあります。

検証機能は、Probe_timeout リソースプロパティで設定されるタイムアウト値を使用し、Oracle を正常に検証するための試行時間を判断します。

サーバーの障害モニターは、Oracle の alert_log_file を走査し、障害モニターで見つけたエラーに基づいてアクションを実行します。

サーバーの障害モニターは、モニターを高可用性にするために pmfadm によって開始されます。モニターが、何らかの理由により強制終了されても、Process Monitor Facility(PMF) によって自動的に再開します。

Oracle リスナーの障害モニター

Oracle リスナーの障害モニターは、Oracle リスナーの状態を調べます。

リスナーが実行されている場合、Oracle リスナーの障害モニターは検証に成功したと判断します。障害モニターがエラーを検知すると、リスナーが再起動されます。

リスナー検証は、高可用性にするために pmfadm によって開始されます。リスナー検証が強制終了されても、PMF によって自動的に再開します。

検証中にリスナーで問題が発生した場合、検証機能はリスナーの再起動を試みます。再起動の試行最大回数は、Retry_count リソースプロパティで設定した値で決定されます。最大回数まで再起動を試みても検証が成功しない場合は、障害モニターを停止し、リソースグループのスイッチオーバーは行いません。