Sun Cluster 2.2 ソフトウェアのインストール

Sun Cluster HA for Oracle を構成するには

Sun Cluster HA for Oracle を構成するための主な作業は、次のとおりです。

Sun Cluster HA for Oracle を構成する詳細な手順は、次のとおりです。

  1. Sun Cluster HA for Oracle データベースの全データベースインスタンスに対する SID エントリを作成します。

    Sun Cluster HA for Oracle を実行するすべてのノード上の /var/opt/oracle/oratab ファイルに、データベースに関連付けられているインスタンスの SID を含める必要があります。フェイルオーバーが成功するには、Sun Cluster HA for Oracle を実行するすべてのノード上で、このファイルを最新に保つ必要があります。SID を追加あるいは削除した場合は、手動でファイルを更新してください。oratab ファイルに矛盾があると、エラーメッセージが返されて、haoracle start コマンドの実行は失敗します。

    Solaris の再起動時にインスタンスが自動的に起動しないようにするには、/var/opt/oracle/oratab ファイル内のすべてのエントリに :N オプションを指定します。

    oracle_sid:/oracle:N
  2. Oracle または Solaris のどちらの認証機能を使用するか従って、次のいずれかの作業を行います。

    1. 障害監視におけるユーザーとパスワードの使用を許可します。

      手順 b で説明している方法で Solaris 認証を有効にしない場合は、この手順を使用する必要があります。

      次の例では、ユーザーは scott、パスワードは tiger です。Oracle 認証を使用する場合、このユーザーとパスワードのペアは、手順 6 で使用するペアと同じである必要があることに注意してください。

      srvmgrl(1M) コマンドによって表示される画面に次のスクリプトを入力することによって、アクセスを有効にします。この方法は、サポートされているすべてのバージョンの Oracle で共通です。

      # svrmgrl
      
       	connect internal;
       			grant connect, resource to scott identified by tiger;
       			alter user scott default tablespace system quota 1m on
       				system;
              			grant select on v_$sysstat to scott;
       			grant create session to scott;
       			grant create table to scott;
       	disconnect;
      
          exit;
    2. データベースへのアクセス権に Solaris 認証を使用するようにします。

      手順 2 を行わなかった場合は、この手順を行う必要があります。

      次の入力例では、Solaris 認証を有効にしています。


      # svrmgrl
      
       	connect internal;
       			create user ops$root identified by externally
       				default tablespace system quota 1m on system;
       			grant connect, resource to ops$root;
             			grant select on v_$sysstat to ops$root;
       			grant create session to ops$root;
       			grant create table to ops$root;
       	disconnect;
      
          exit;
  3. Sun Cluster 用に SQL*Net V2 を構成します。


    注 -

    すべてのノードの /var/opt/oracletnsnames.oralistener.ora ファイルを作成して、更新してください。


    Sun Cluster HA for Oracle には、リスナー名に関する制限はありません。 有効な Oracle リスナー名を使用できます。

    次のコード例は、listener.ora 内の更新されている行を特定します。

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

    次のコード例、tnsnames.ora 内の更新されている行を特定します。


    service_name =
     	.
     			.
     						(ADDRESS = <- listener address
     								(HOST = server_name)	<- logical host name
     								(PORT = 1527) <- must match port in LISTENER.ORA
     						)
     				)
     				(CONNECT_DATA =
     						(SID = <SID>)) <---database name, default is ORCL

    Sun Cluster HA for Oracle は、/var/opt/tnsnames.ora ファイルを開きます。SID = instance nameserver name=logical host を照合することによって、service_name までファイルを走査します。tnsnames.ora から取得した service_name は、Sun Cluster HA for Oracle の障害モニターがサーバーに接続するときに使用されます。

    "HOST = host name" の行には、listener.ora ファイル内のホスト名ではなく、論理ホスト名を入力してください。

    次の例は、Oracle インスタンスが表 5-1 の場合の listener.ora および tnsnames.ora ファイルの更新方法を示しています。

    表 5-1 Oracle 構成の例

    インスタンス 

    論理ホスト 

    リスナー 

    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))
     )
  4. Sun Cluster とクラスタのデーモンがすべてのホストにインストールされて、動作していることを確認します。

    # hastat
    

    まだ動作していない場合は、scadmin startnode コマンドを使用して起動してください。

  5. hareg(1M) コマンドを使用して、Sun Cluster HA for Oracle を登録して起動します。

    1 つのノード上でだけ hareg(1M) コマンドを実行してください。

    Oracle サーバーをまだ登録していない場合は、hareg(1M) コマンドを使用して登録してください。論理ホスト上でだけデータサービスを登録するには、-h オプションを使用して、論理ホスト名を指定します。

    # hareg -s -r oracle [-h logicalhost]

    クラスタをすでに起動している場合は、次の hareg(1M)コマンドを使用して、Oracle データサービスを起動します。

    # hareg -y oracle
    
  6. Sun Cluster HA for Oracle 構成情報を設定します。

    次のコマンドを実行して、Sun Cluster によってインスタンスが監視されるようにしてください。

    # haoracle insert $ORACLE_SID logicalhost 60 10 120 300 ¥
     user/password /logicalhost/.../init$ORACLE_SID.ora listener 
    

    このコマンド行に含まれている要素の意味は、次のとおりです。

    • haoracle insert - コマンドとサブコマンド。

    • $ORACLE_SID - Oracle データベースインタンスの名前。

    • logicalhost - $ORACLE_SID にサービスを提供する論理ホスト (物理ホストではない)。

    • -60、-10、-120、-300 - 検証サイクル時間 60 秒、接続検証サイクル数 10 回、検証タイムアウト 120 秒、再起動遅延時間 300 秒を指定したパラメータ。

    • user/password - 障害監視に使用するユーザーとパスワード。手順 2 で付与したアクセス権レベルと同じである必要があります。Solaris の認証を使用する場合は、ユーザー名とパスワードではなくスラッシュ (/) を入力します。

    • /logicalhost/.../init$ORACLE_SID.ora - データベースの起動に使用する pfile を示します。論理ホストのディスクグループ上に存在する必要があります。

    • listener - SQL*Net V2 リスナーです。この名前を使用して、リスナーが起動、監視されます。このフィールドは省略可能で、デフォルトは LISTENER です。

    haoracle(1M) に対する全オプションについての詳細は、haoracle(1M) のマニュアルページを参照してください。

  7. データベースインスタンスの運用を開始します。

    haoracle(1M) コマンドを実行することによって、Sun Cluster HA for Oracle データベースの運用を開始してください。このインスタンスに対する監視が自動的に開始されます。

    # haoracle start $ORACLE_SID
    

    注 -

    Oracle インスタンスが起動していない状態で、haoracle(1M) コマンドが実行された場合は、Sun Cluster によって Oracle インスタンスが自動的に起動されます。