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

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

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

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


注 -

このデータサービスのインストールと構成には、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 12/01 ソフトウェアのインストールSun Cluster 3.0 12/01 Software Installation Guide』で説明されている手順を使用し、各ノード上で Sun Cluster ソフトウェアを構成する必要があります。


ノードを準備する

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


注意 - 注意 -

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



注 -

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


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

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

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

    Sun 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 12/01 ソフトウェアのインストール』を参照してください。

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

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


    注 -

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


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

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


    dba:*:520:root,oracle 

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

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

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


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

    oracle ユーザーエントリは、Sun Cluster HA for Oracle を実行するすべてのノードで同じでなければなりません。

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

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

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

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

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

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

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


      注 -

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


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

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

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

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

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

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

  1. oracle ユーザーと 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 DiskSuiteTM による Oracle データベースアクセスを構成する

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

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

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

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

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

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


      # chown oracle /dev/md/metaset/rdsk/dn
      # chgrp dba /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 12/01 ソフトウェアのインストール』を参照してください。

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

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

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


      # vxedit -g diskgroup set user=oracle 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 データベースのアクセス権を設定する

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

  1. 使用している Oracle リリースを確認します。

    Oracle 8i を使用している場合は、手順 2 へ進んでください。

    Oracle 9i を使用している場合は、手順 3 へ進んでください。

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


    注 -

    Oracle 9i を使用している場合は、手順 3 へ進んでください。


    この手順では以下の作業のどちらか一方を実行し、その後 手順 4 へ進んでください。

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


      # 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;
    • Oracle 8i 用の 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;
  3. Oracle 9i の障害モニターに使用されるユーザーとパスワードに対するアクセスを有効にします。


    注 -

    Oracle 8i を使用している場合は、手順 2 へ進んでください。


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


      # sqlplus "/as sysdba"
       
      			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;
       
         exit;
    • Oracle 9i 用の Solaris 認証方式を使用する場合 - Solaris 認証を使用するデータベースのアクセス権を付与します。


      注 -

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



      # sqlplus "/as sysdba"
       
      			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;
       
         exit;
  4. 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 を設定してください。書式の詳細は、表 2-2 または表 2-3 を参照してください。


    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))
    )
  5. 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 3.0 Agents 12/01 CD-ROM が必要です。Sun Cluster HA for Oracle を実行するすべてのクラスタノードでこの手順を実行してください。

  1. Sun Cluster 3.0 Agents 12/01 CD-ROM をCD-ROM ドライブに挿入します。

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

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

  3. メニューオプション「Add Support for New Data Service to This Cluster Node」を選択します。

    scinstall ユーティリティーにより、ほかの情報を入力するためのプロンプトが表示されます。

  4. Sun Cluster 3.0 Agents 12/01 CD-ROM のパスを指定します。

    このユーティリティーには、この CD は "data services cd" と示されます。

  5. インストールするデータサービスを指定します。

    選択したデータサービスが scinstall ユーティリティーによって示され、この選択の確認が求められます。

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

  7. ドライブから 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 12/01 の概念』を参照してください。

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 [-n netiflist] 
    -l logical-hostname

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

    [-n netiflist]

    各ノードの NAFO グループをコンマで区切って指定します。リソースグループの nodelist 内のすべてのノードが、netiflist に含まれている必要があります。このオプションを指定しないと、scrgadm(1M) が、nodelist のノードごとに、hostname リストに指定されているネットアダプタをサブネットから発見します。例: -n nafo0@nodename, nafo0@nodename2

  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 サーバーに障害が発生して再起動が起きる場合、そのリソースグループ全体が起動されます。つまり、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 でログインします。

  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 でログインします。

  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 を実行して構成します。拡張プロパティは、第 13 章「データサービスリソースの管理」に示す手順を使ってあとで構成することもできます。Sun Cluster の全プロパティについては、付録 A 「標準プロパティ」 を参照してください。

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

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

名前/データタイプ 

説明

LISTENER_ NAME (文字列)

Oracle リスナーの名前。 

 

デフォルト: LISTENER

範囲: なし

調整: 無効化されたとき

 

ORACLE_ HOME (文字列)

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

 

デフォルト: なし

範囲: 最小 = 1

調整: 無効化されたとき

User_env (文字列))

環境変数が含まれているファイル。リスナーの起動と停止の前に設定される。Oracle デフォルトと異なる値を持つ環境変数は、このファイル内に定義する必要があります (たとえば /var/opt/oracle または $ORACLE_HOME/network/admin の下に listener.ora ファイルが存在しない場合、TNS_ADMIN 環境変数を定義する必要があります)。 また、各環境変数の定義は、VARIABLE_NAME=VARIABLE_VALUE という書式で行う必要があります。これらの環境変数は、それぞれ環境ファイル内で 1 行に 1 つずつ指定しなければなりません。

 

デフォルト: ""

範囲: なし

調整: 任意の時点

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

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

名前/データタイプ 

説明 

Alert_log_ file (文字列)

Oracle 警告ログファイル。 

 

デフォルト: なし

範囲: 最小 = 1

調整: 任意の時点

Connect_ cycle (整数)

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

 

デフォルト: 5

範囲: 0 - 99,999

調整: 任意の時点

Connect_ string (文字列)

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

 

デフォルト: なし

範囲: 最小 = 1

調整: 任意の時点

ORACLE_ HOME (文字列)

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

 

デフォルト: なし

範囲: 最小 = 1

調整: 無効化されたとき

ORACLE_ SID (文字列)

Oracle システム識別子。 

 

デフォルト: なし

範囲: 最小 = 1

調整: 無効化されたとき

Parameter_ file (文字列)

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

 

デフォルト: ""

範囲: 最小 = 0

調整: 任意の時点

Probe_ timeout (整数)

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

 

デフォルト: 60

範囲: 0 - 99,999

調整: 任意の時点

 

User_env (文字列))

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

Oracle デフォルトと異なる値を持つ環境変数は、このファイル内に定義する必要があります (たとえば /var/opt/oracle または $ORACLE_HOME/network/admin の下に listener.ora ファイルが存在しない場合、TNS_ADMIN 環境変数を定義する必要があります)。 また、各環境変数の定義は、VARIABLE_NAME=VARIABLE_VALUE という書式で行う必要があります。これらの環境変数は、それぞれ環境ファイル内で 1 行に 1 つずつ指定しなければなりません。

 

デフォルト: ""

範囲: なし

調整: 任意の時点

Wait_for_ online (ブール値)

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

 

デフォルト: True

範囲: なし

調整: 任意の時点

 

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 リソースプロパティで設定した値で決定されます。最大回数まで再起動を試みても検証が成功しない場合は、障害モニターを停止し、リソースグループのスイッチオーバーは行いません。