この章では、Sun Cluster ノード上で Sun Cluster HA for Informix データサービスを構成、管理する方法について説明します。
この章で説明する手順は次のとおりです。
この節の説明に従って、Sun Cluster ノードに Sun Cluster HA for Informix をインストールする準備をしてください。
Informix のバイナリは、物理ホストのローカルディスクにインストールすることも、あるいは共有多重ホストディスク (論理ホスト) にインストールすることもできます。インストール場所を決定するには、表 7-1 を参考にしてください。
表 7-1 Informix のインストール場所の比較
スイッチオーバーやフェイルオーバーの場合にデータサービスを正しく起動および停止するには、/etc/nsswitch.conf ファイルを次のように設定する必要があります。
Sun Cluster HA for Informix を実行する論理ホストをマスターできる各ノードにおいて、/etc/nsswitch.conf ファイルの group には次のエントリの 1 つが必要です。
group: group: files group: files [NOTFOUND=return] nis group: files [NOTFOUND=return] nisplus |
Sun Cluster HA for Informix は、データベースサーバーを起動および停止するときに su user コマンドを使用します。この設定により、クラスタノード上のパブリックネットワークの障害のためにクラスタノード上でネットワーク情報ネームサービスが利用できなくなったときに、su user コマンドは NIS や NIS+ を参照しなくなります。
Solstice DiskSuite を使用している場合は、Sun Cluster HA for Informix が UFS ロギングあるいはミラー化 raw メタデバイスを使用するように構成できます。メタデバイスの構成についての詳細は、付録 B 「Solstice DiskSuite の構成」 を参照してください。
VERITAS Volume Manager (VxVM) を使用している場合は、Sun Cluster HA for Informix が VxFS ロギングあるいは raw デバイスを使用するように構成できます。詳細は、VERITAS Volume Manager のマニュアルを参照してください。
Sun Cluster ノードの準備と Informix ソフトウェアのインストール、 Informix データベースの作成、Sun Cluster HA for Informix の構成は、この節の手順に従って行なってください。
Sun Cluster HA for Informix を構成する前に、第 3 章「Sun Cluster ソフトウェアのインストールと構成」で説明している手順に従って、各ノード上で Sun Cluster ソフトウェアを構成しておく必要があります。
クラスタ内で Sun Cluster HA for NFS と Sun Cluster HA for Informix の両方を実行する場合は、データサービスを任意の順序で構成できます。
Sun Cluster ノードに Informix ソフトウェアをインストールする準備をして、実際に Informix ソフトウェアをインストールするための主な作業は次のとおりです。
$INFORMIXDIR ディレクトリ用の場所を選択する
Informix 用の /etc/group および /etc/passwd ファイルエントリを作成する
Informix ソフトウェアをインストールする
すべての Sun Cluster ノードに対して、この節で説明しているすべての手順を行なってください。
この手順を行う前に、Informix のマニュアルを参照してください。
Sun Cluster ノードの準備をして、Informix ソフトウェアをインストールする詳細な手順は、次のとおりです。
Informix ソフトウェアをインストールする準備をします。
ローカルディスクまたは多重ホストディスクから $INFORMIXDIR ディレクトリの作成場所を選択します。
ローカルディスクに $INFORMIXDIR をインストールする場合は、できるかぎり、オペレーティング環境とは別の専用のディスク上に 1 つのファイルシステムとして $INFORMIXDIR を選択します。そうすることにより、オペレーティング環境を再インストールした場合でも、Informix が上書きされなくなります。
各ノードで、/etc/group ファイルに informix グループ用のエントリを作成します。
通常、このグループの名前は informix です。root および informix がこの informix グループのメンバーになっていることを確認してください。次のようになります。
informix:*:520:root,informix |
NIS あるいは NIS+ などのネットワークネームサービス内にネームサービスのエントリを作成して、Sun Cluster HA for Informix クライアントからその情報を利用できるようにすることができますが、ローカルの /etc ファイルにもエントリを作成して、ネットワークネームサービスに依存しないようにしてください。
すべてのノードで、この情報の複製を作成する必要があります。
各ノードの /etc/passwd ファイルに informix ユーザー (informix_id) 用のエントリを作成します。
通常、このエントリには informix という名前を付けます。たとえば、次のようにします。informix.
# useradd -u 135 -g informix -d $INFORMIXDIR informix |
$INFORMIXDIR ディレクトリが informix_id によって所有され、informix グループに含まれていることを確認します。
# chown informix $INFORMIXDIR # chgrp informix $INFORMIXDIR |
$INFORMIXDIR が Informix ホームディレクトリへのシンボリックリンクの場合は、次のコマンドを使用します。
# chown informix $INFORMIXDIR # chgrp informix $INFORMIXDIR # chown -h $INFORMIXDIR # chgrp -h $INFORMIXDIR |
Informix のインストール条件を確認します。
Informix のバイナリは、物理ホストのローカルディスクにインストールすることも、あるいは多重ホストディスクにインストールすることもできます。詳細は、「Sun Cluster HA for Informix のインストール場所の選択」を参照してください。
多重ホストディスクに Informix ソフトウェアをインストールする場合は、まず、Sun Cluster を起動して、ディスクグループの所有権を取得する必要があります。また、installesql を使用して、Sun Cluster HA for Informix を実行するすべてのノードの /var/opt/informix ファイルに、INFORMIX_ESQL Embedded Languages Runtime Facility 製品をインストールする必要があります。詳細は、「Informix データベースの作成と Sun Cluster HA for Informix の構成」を参照してください。
Informix ソフトウェアをインストールします。
この手順を行う前に informix でログインして、ディレクトリ全体の所有権を確保してください。多重ホストディスクに Informix をインストールした場合は、全クラスタノードについて、/var/opt/informix/bin ディレクトリが Informix 所有者の informix_id によって所有されていることを確認します。Informix をローカルディスクにインストールした場合、この必要はありません。
Informix ソフトウェアのインストール方法に関する詳細は、 Informix のマニュアルを参照してください。
この節で説明する 手順を使用して、Sun Cluster 構成内に初期 Informix データベースを作成、構成してください。データベースを追加、構成する場合は、「Informix データベースを作成するには」および 「Sun Cluster HA for Informix を構成するには」で説明している手順だけ実行します。
Sun Cluster が起動していて、使用ノードがディスクグループを所有していることを確認します。
root で scadmin(1M) コマンドを実行し、クラスタを起動します。クラスタが起動され、指定したノードにディスクグループの所有権が割り当てられます。
# scadmin startcluster physicalhost clustername |
クラスタがすでに存在し、指定するノードがクラスタ内にある場合は、次のコマンドを使ってディスクグループの所有権を確保します。
# haswitch physicalhost logicalhost |
ボリュームマネージャがディスクデバイスを使用できるように構成します。
Solstice DiskSuite を使用している場合は、Sun Cluster HA for Informix を実行するすべてのノードで UFS ロギングあるいはミラー化 raw メタデバイスを構成できます。
ミラー化 raw デバイスを使用してデータベースを格納する場合は、すべてのミラー化 raw メタデバイスの所有者とグループ、モードを変更してください。ミラー化 raw デバイスを使用しない場合は、この手順を省略してください。
Informix は raw 物理デバイスと raw メタデバイス (ミラー化を問わず) の両方に対する raw 入出力をサポートしていますが、Sun Cluster はミラー化 raw ボリュームまたはメタデバイスに対する Informix の raw 入出力のみサポートしています。このため、Sun Cluster 上で /dev/rdsk/c1t1d1s2 などのデバイスを使用して、Informix データを格納することはできません。
ミラー化メタデバイスの作成方法は、付録 B 「Solstice DiskSuite の構成」 で説明しています。
ミラー化 raw デバイスを作成する場合は、その都度、次のコマンドを使用します。
# vxvol set owner=informix_id group=dba_id mode=600 ¥ /dev/vx/rdsk/diskgroup_name/volume_name ... # chown informix_id /dev/md/diskset/rdsk/dn # chgrp informix_id /dev/md/diskset/rdsk/dn # chmod 600 /dev/md/diskset/rdsk/dn |
VERITAS Volume Manager を使用している場合は、すべての Sun Cluster ノードに VxFS ログあるいは raw デバイスを設定できます。
raw デバイスを使用してデータベースを格納する場合は、すべてのミラー化 raw メタデバイスの所有者とグループ、モードを変更してください。ミラー化 raw デバイスを使用しない場合は、この手順を省略してください。詳細は、VERITAS Volume Manager のマニュアルを参照してください。raw デバイスを作成する場合は、その都度、次のコマンドを使用します。
# chown informix_id /dev/vx/rdsk/diskgroup_name/volume_name # chgrp informix_id /dev/vx/rdsk/diskgroup_name/volume_name # chmod 600 /dev/vx/rdsk/diskgroup_name/volume_name |
Informix データベースを作成するための主な作業は、次のとおりです。
Informix 環境を準備する
$ONCONFIG ファイルを作成し、カスタマイズする
sqlhosts ファイルにおける Informix エントリを作成する
/etc/services ファイルを設定する
Informix データベースを作成する詳細な手順は、次のとおりです。
Informix 環境の準備をします。
csh から次のコマンドを使用して、Informix 環境を準備します。
# setenv INFORMIXDIR base_dir # setenv INFORMIXSERVER server_name # setenv ONCONFIG file_name # setenv INFORMIXSQLHOSTS $INFORMIXDIR/etc/sqlhosts |
$ONCONFIG ファイルを作成、カスタマイズし、クラスタ内の他のすべてのノードにコピーします。
$INFORMIXDIR/etc ディレクトリに $ONCONFIG ファイルを作成して、この $ONCONFIG ファイル内の ROOTPATH、ROOTSIZE、PHYSFILE 変数をカスタマイズし、DBSERVERNAME = $INFORMIXSERVER を設定してください。$INFORMIXDIR を物理ホストのローカルディスクにインストールした場合は、$ONCONFIG ファイルをカスタマイズした後、クラスタ内の他のすべてのノードにそのファイルをコピーします。
$INFORMIXSQLHOSTS ファイルに Informix のエントリを作成します。
sqlhosts ファイルのエントリは、次の 4 つのフィールドで構成されます。
DBSERVERNAME - これは $INFORMIXSERVER です。
NETTYPE - ONSOCTCP または ONTLITCP を選択します。
HOSTNAME - 論理ホスト名
SERVICENAME - /etc/services ファイル内の SERVICENAME エントリの内容と同じである必要があります。
多重ホストディスクに Informix のバイナリをインストールする場合は、両方のローカルディスクと多重ホストディスクの /var/opt/informix 内に sqlhosts ファイルの複製を作成します。Informix のバイナリをローカルディスクにインストールする場合は、両方のローカルディスクに sqlhosts ファイルの複製を作成します。
/etc/services ファイルの設定をします。
この手順を行うには、スーパーユーザーになる必要があります。テキストエディタで /etc/services ファイルを開いて、 SERVICENAME とリスナーのポート番号を追加してください。リスナーのポート番号は、固有である必要があります。Sun Cluster や Solaris によって予約されているポート番号は選択しないでください。詳細は、101 ページの「Sun Cluster の予約済みデフォルトポート番号」を参照してください。
TCP/IP 接続プロトコルを使用する場合、sqlhosts ファイル内の SERVICENAME エントリの内容は、/etc/services ファイル内の SERVICENAME エントリの内容に対応している必要があります。
Sun Cluster HA for Informix を構成するための主な作業は、次のとおりです。
/var/opt/informix/inftab ファイルを更新する
Informix データサービスを起動する
障害監視におけるユーザーとパスワードの使用を許可する
Informix データベースを停止する
Sun Cluster ソフトウェアとクラスタデーモンのインストールを確認する
Sun Cluster を起動する
hareg(1M) コマンドにより Informix データサービスを起動する
Sun Cluster HA for Informix による Informix の制御を開始する
Informix データベースの運用を開始する
Sun Cluster HA for Informix を構成する詳細な手順は、次のとおりです。
$ONCONFIG の情報に基づいて、/var/opt/informix/inftab ファイルを更新します。
Sun Cluster HA for Informix を実行するすべてのノード上の /var/opt/informix/inftab ファイルに、データベースに関連付けられているすべての $ONCONFIG ファイル用のエントリを含める必要があります。フェイルオーバーが成功するには、Sun Cluster HA for Informix を実行するすべてのノード上で、このファイルを最新に保つ必要があります。データベースサーバーを追加あるいは削除した場合は、手動でファイルを更新してください。
/var/opt/informix/inftab ファイル内のエントリの形式は、次のとおりです。
$ONCONFIG:$INFORMIXDIR |
$ONCONFIG は、ONCONFIG ファイルの名前です。$INFORMIXDIR は、Informix のインストールディレクトリへのパスです。たとえば、inftab ファイルの内容は次のようになります。
onconfig.node1:/export/home/informix |
Informix データサービスを起動します。
ユーザー informix としてログインして、oninit コマンドを実行してください。oninit コマンドは、ROOTPATH 変数の指定に従って $ONCONFIG ファイルで割り当てられた raw ディスクまたは UFS ファイル空間をフォーマットします。
# oninit -iy |
/etc/hosts.equiv または ‾informix/.rhosts ファイルに、他のクラスタノードからのデータベースへのアクセス権を informix ユーザーに付与するエントリを作成します。
hostname informix |
hostname は他のクラスタノードの名前、informix はユーザー名です。
障害監視におけるユーザーとパスワードの使用を許可します。
dbaccess dbname コマンドを実行して、適切な dbaccess 画面に次の行を追加してください。
# dbaccess dbname - ... grant connect to root; grant resource to root; grant dba root; grant select on sysprofile to root; |
データベース名 (dbname) によって、HA の障害モニターが検証するデータベースを特定します。dbname が sysmaster と定義されていない場合は、dbaccess dbname コマンドを使用して、適切な dbaccess 画面に次の行を追加します。
create synonym sysprofile for sysmaster:informix_owner.sysprofile; |
Informix データベースを停止します。
ユーザー informix で、onmode コマンドを使用して、Informix データベースを停止してください。
# onmode -ky |
Sun Cluster HA for Informix を実行するすべてのノードに Sun Cluster がインストールされ、動作していることを確認します。
スーパーユーザーで hastat コマンドを使用して、構成を確認してください。
# hastat |
クラスタノードがまだ起動していない場合は、起動してください。最初のノードは、scadmin startcluster コマンドを使用して起動する必要があります。最初のノードを起動したら、scadmin startnode コマンドを使用して、他のすべてのノードを起動します。クラスタの起動についての詳細は、scadmin(1M) のマニュアルページを参照してください。
hareg(1M) コマンドを使用して、Informix データサービスを登録して起動します。
1 つのホスト上でだけ hareg(1M) コマンドを実行してください。
Informix データサービスをまだ登録していない場合は、hareg(1M) コマンドを使用して、登録してください。論理ホスト上でだけデータサービスを登録するには、-h オプションを使用して、論理ホスト名を指定します。
# hareg -s -r informix [-h logicalhost] |
クラスタをすでに起動している場合は、次の hareg(1M) コマンドを使用して、Informix データサービスを起動します。
# hareg -y informix |
次のコマンドを使用して、Informix を Sun Cluster HA for Informix の制御下に置きます。
次のコマンドを実行して、インスタンスが Sun Cluster によって監視されるようにしてください。
# hainformix insert $ONCONFIG logicalhost 60 10 120 300 ¥ dbname $INFORMIXSERVER |
このコマンド行に含まれている要素の意味は、次のとおりです。
hainformix insert - コマンドとサブコマンド
$ONCONFIG - Informix の構成ファイル名
logicalhost - $ONCONFIG にサービスを提供する論理ホスト (物理ホストではない)
60 10 120 300 - 検証サイクル時間 60 秒、接続検証サイクル数 10 回、検証タイムアウト 120 秒、再起動遅延時間 300 秒を指定したパラメータ
dbname - NSun Cluster 2.2 が監視するデータベース名
$INFORMIXSERVER - Informix サーバー名
hainformix(1M) のオプションについての詳細は、hainformix(1M) のマニュアルページを参照してください。
Sun Cluster HA for Informix データベースの運用を開始します。
hainformix(1M) コマンドを実行することによって、Sun Cluster HA for Informix データベースの運用を開始してください。
# hainformix start $ONCONFIG |
Informix OnLine サーバーが起動していない状態で、この手順が実行された場合は、Sun Cluster によって Informix OnLine サーバーが自動的に起動されます。
クライアントは、常に、物理ホスト名ではなく、論理ホスト名を使用して Sybase データベースを参照する必要があります。論理ホストがネットワーク上で応答している場合は、起動中を除いて、常にデータベースを利用できるようにします。
Sun Cluster HA for Informix のスイッチオーバーが発生すると、Informix のクライアントサーバー接続が切断されます。このため、クライアントアプリケーションは、必要に応じて、切断と再接続、あるいは回復に対処する必要があります。トランザクションモニターによって、アプリケーションの処置が簡単になることがあります。Sun Cluster HA for Informix サーバーの回復時間は、アプリケーションに依存します。
アプリケーションが RDBMS 動的リンクライブラリの機能を使用する場合は、フェイルオーバーが発生したときでも、それらのライブラリが利用できる必要があります。 このためには、次のいずれかを行います。
クライアントに動的リンクライブラリをインストールする。
クラスタが Sun Cluster HA for NFS サービスを提供する場合は、動的リンクライブラリを論理ホストにコピーして、環境変数にそのディレクトリパスを設定し、NFS を使用してそのディレクトリをクライアントに共有させる。
次の検査を行なって、Sun Cluster HA for Informix のインストールが正しく行われたことを確認してください。
これらの妥当性検査の目的は、Sun Cluster HA for Informix を実行するすべてのノードが Informix OnLine サーバーを起動することができ、また、構成内のすべてのノードが互いに Informix OnLine サーバーに正しくアクセスできることを確認することにあります。
論理ホストをマスターしている Sun Cluster ノードにログインして、Informix の環境変数を設定します。
論理ホストをマスターしているノードに informix でログインし、INFORMIXDIR、INFORMIXSERVER、ONCONFIG、INFORMIXSQLHOSTS 環境変数を設定してください。
論理ホストをクラスタ内の別の Sun Cluster ノードに転送します。
haswitch(1M) コマンドを使用して、Informix OnLine サーバーを含む論理ホストを別のノードに転送してください。
新たに論理ホストをマスターしているノードにログインして、手順 1 で行なった検査を繰り返します。
新しいマスターノードに informix でログインし、Informix OnLine サーバーと対話できることを確認します。