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

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

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


注 –

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


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

表 2–1 は、Sun Cluster HA for Oracle のインストールと構成のための作業を示しています。ここに示されている順に作業を実行してください。

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

作業 

参照箇所 

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

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

ノードとディスクの準備 

ノードおよびディスクの準備

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

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 のインストールの確認 

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 3.1 ご使用にあたって』 のデータサービスワークシートに、これらの確認事項に対する答えを記入してください。

ノードおよびディスクの準備

この節では、ノードおよびディスクを準備する手順について説明します。

ノードの準備

次の手順を使用して、Oracle ソフトウェアのインストールと構成用にノードを準備します。


注意 – 注意 –

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



注 –

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


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

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

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

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


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

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

  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 が動作するどのノードでも同じでなければなりません。

Solstice DiskSuiteTM によるOracle データベースアクセスの構成

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

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

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

  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 Volume Manager による Oracle データベースアクセスの構成

次の手順を使用して、VERITAS Volume Manager ソフトウェアにより Oracle データベースを構成します。

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

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

  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 ソフトウェアのインストール

この節では、Oracle ソフトウェアのインストール手順について説明します。

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

次の手順を使用して、Oracle ソフトウェアをインストールします。

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

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

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

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

    • 高可用性なローカルファイルシステム

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


      注 –

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


    Oracle ソフトウェアのインストール場所については、ノードおよびディスクの準備 を参照してください。

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

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

    この手順を行うときには、oracle でログインし、ディレクトリ全体を所有する必要があります。Oracle ソフトウェアのインストール方法については、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 データベースの作成

この節では、Sun Cluster 環境で初期 Oracle データベースを構成し作成する手順について説明します。追加のデータベースを作成し、構成する場合は、 Oracle データベースの作成を省略します。

Oracle データベースの作成

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

    すべてのデータベース関連ファイル (データファイル、REDO ログファイル、制御ファイル) を、共有 raw 広域デバイスまたはクラスタファイルシステムに格納します。インストール場所については、ノードおよびディスクの準備を参照してください。

    場合によっては、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 データベースのアクセス権の設定

次の手順を使用して、Oracle 8i および Oracle 9i 用に Oracle データベースのアクセス権を設定します。

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

    • 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;
    • 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;
  2. Sun Cluster ソフトウェア用に NET8 を構成します。

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


    注 –

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

    ora9

    hadbms4

    LISTENER-ora9

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


    LISTENER-ora9 =
    	(ADDRESS_LIST =
    			(ADDRESS =
    				(PROTOCOL = TCP)
    				(HOST = hadbms4)
    				(PORT = 1530)
    			)
    		)
    SID_LIST_LISTENER-ora9 =
    	(SID_LIST =
    			(SID_DESC =
    				(SID_NAME = ora9)
    			)
    		)
    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))
    )
    ora9 =
    (DESCRIPTION =
      (ADDRESS_LIST =
            (ADDRESS = 
    				(PROTOCOL = TCP) 
    				(HOST = hadbms4) 
    				(PORT = 1530))
      )
      	(CONNECT_DATA = (SID = ora9))
    )
  3. Sun Cluster ソフトウェアがインストールされ、すべてのノードで実行されていることを確認します。


    # scstat
    

次に進む手順

Sun Cluster HA for Oracle パッケージのインストール へ進み、Sun Cluster HA for Oracle の登録と構成を行ってください。

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

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

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

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

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

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

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

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

  3. メニューオプション「新しいデータサービスのサポートをこのクラスタノードに追加」を選択します。

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

  4. Sun Cluster 3.1 Agents 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 を構成する手順について説明します。

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

表 2–2 の拡張プロパティを使用して、リソースを作成します。リソースを作成するときは、コマンド行 scrgadm -x parameter=value を使用して、拡張プロパティを構成します。すでにリソースを作成してある場合は、第 15 章「データサービスリソースの管理」の手順を使用して拡張プロパティを構成してください。拡張プロパティの中には動的に変更できるものもありますが、それ以外の拡張プロパティは、リソースを作成するか無効にするときにしか更新できません。「調整可能」の欄には、そのプロパティをいつ変更できるかが示されています。 Sun Cluster のすべてのプロパティの詳細については、『Sun Cluster 3.1 データサービスのインストールと構成 』の「付録 A」を参照してください。

表 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

調整: 任意の時点

Auto_End_Bkp (ブール値)

Oracle RDBMS のホットバックアップが中断された場合に、次の回復操作を実行する機能。 

  • ホットバックアップモードに残されたファイルが原因でデータベースが開かないことを認識します。この確認プロセスは、Sun Cluster HA for Oracle の起動時に発生します。

  • ホットバックアップモードに残されたすべてのファイルを識別し、解放します。

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

この機能は、ON または OFF に切り替えることができます。

 

デフォルト:False

範囲: なし

調整:任意の時点

Connect_ cycle (整数)

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

 

デフォルト: 5

範囲: 099,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

調整: 任意の時点

Restart_type (文字列)

このリソースで障害が検出された場合、 RESOURCE_RESTART の値は、このリソースの再起動のみを保証します。RESOURCE_GROUP_RESTART の値は、再起動するリソースグループ内のすべてのリソースを保証します。

デフォルト: RESOURCE_GROUP_RESTART

範囲: なし

調整: 任意の時点

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 をフェイルオーバーデータサービスとして構成します。この手順では、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 の場合、次のように、2 つのリソースタイプ SUNW.oracle_server および SUNW.oracle_listener を登録します。


    # 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

    各ノード上の IP Networking Multipathing グループをコンマで区切って指定します (省略可能)。netiflist 内の各要素の書式は、 netif@node でなければなりません。netif は、sc_ipmp0 などの IP Networking Multipathing グループ名として指定できます。ノードは、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 \
     
    [データベースがクラスタファイルサービス上にある場合は、広域ファイルシステムとローカルファイルシステムのマウントポイントを指定する ]
    -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
      -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 ホームディレクトリへのパスを設定します。


    注 –

    Oracle サーバーリソース内で障害が発生して再起動が発生した場合、リソースグループ全体が再起動します。リソースグループ内の他のリソース (Apache や DNS など) は自分自身に障害がなくても再起動します。他のリソースが Oracle サーバーリソースと一緒に再起動するのを避けるためには、他のリソースを別のリソースグループに格納します。

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


  10. scswitch コマンドを実行して、次の作業を完了します。

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


    # scswitch -Z -g resource-group
    
    -Z

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

    -g resource-group

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

例 – Sun Cluster HA for Oracle の登録

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


クラスタ情報
ノード名: phys-schost-1, phys-schost-2
論理ホスト名: schost-1
リソースグループ: resource-group-1 (フェイルオーバーリソースグループ)
リソース: oracle-server-1, oracle-listener-1
Oracle インスタンス: ora-lsnr (リスナー), ora-srvr (サーバー)
 
(Oracle リソースタイプを登録する)
# scrgadm -a -t SUNW.oracle_server
# scrgadm -a -t SUNW.oracle_listener
 
(すべてのリソースを含むようにフェイルオーバーリソースグループを追加する)
# scrgadm -a -g resource-group-1 -h phys-schost-1,phys-schost-2
 
(論理ホスト名リソースをリソースグループに追加する)
# scrgadm -a -L -g resource-group-1 -l schost-1 
 
(リソースグループに 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 のインストールの確認 に進みます。

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 コマンドと、connect_string プロパティで定義されている user/password 変数を使用します。


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