HADBを使用して実際にHADBの構成を組んでみたいと思います。HADBの構成を組む前に事前にOS側で準備して置かなければならない事が3点あります。準備1:OSのカーネルパラメータの編集1点目は、OSのカーネルパラメータの編集です。共有メモリとセマフォの値を設定して下さい。同一システム上でHADB以外のアプリケーションが共有メモリやセマフォを使用している場合、HADBに必要な値を加算して共有メモリやセマフォの設定を行って下さい。共有メモリは、Solaris上では/etc/systemファイルにshminfo_shmmaxを編集して設定を行います。shminfo_shmmaxは、該当のホスト上で、共有メモリセグメントの最大サイズを指定しますが、実際にはこの値はHADBをインストールするホストの物理メモリの合計サイズを16進数表記で指定します。2GB以上の値は指定しないで下さい。下記のように1GBの物理メモリを保持するシステムの場合、16進数表記では、0x40000000を指定します。使用されなくなりました。下記のように1プロセス辺りのセグメント数を指定して下さい。shmsys:shminfo_shmseg=36次に、セマフォ識別子数の最大値をseminfo_semmniで指定します。全てのHADBノードでは必ず一つのセマフォ識別子を必要とします。1台の物理的なマシン上に6つのHADBノードを構築可能ですが、6つのHADBノードを構築する場合でも下記の値で問題ありません。semsys:seminfo_semmni=10次に、システム上でのセマフォの最大数をseminfo_semmnsで指定します。全てのHADBノードでそれぞれ8つのセマフォを必要とします。6つのHADBノードを構築する場合でも下記の値で問題ありません。semsys:seminfo_semmns=60最後に、システム上でセマフォの取り消し機能を使用する最大数をseminfo_semmnuで指定します。1つの接続(NumberOfSessionsで接続数を指定、デフォルト100)に対して1つの取り消し機能が必要です。6つのHADBノードを構築する場合で下記の値で問題ありません。semsys:seminfo_semmnu=600上記を設定した後、OSのリブートを行ってください。リブートを行う前に、手動でノードエージェントの停止・ドメインの停止を行ってください。ノードエージェントの停止・ドメインの停止を行わないでリブートした場合、MQのプロセスでロックファイルが削除されずに残ってしまう場合があります。時間の設定値(FAILURE_DETECTION_TIME)を変更する必要があります。下記のように値を1,000ミリ秒に設定して下さい。システムの時刻関連サービス」を参照し、HADBのノード間の時刻を同期して下さい。上記で、準備が完了です。9.1のドメインとノードエージェントをそれぞれ起動して下さい。successfully.それでは、実際にHADBを使用するように設定を行いましょう。Agent)を起動して下さい。startを実行して下さい。//<–追加2.アプリケーションに対する設定HADBの管理エージェントが起動したので、まずはデプロイ済みのアプリケーションに対して可用性を有効にする設定を行います。Application」→「clusterjsp」と展開して下さい。「Save」ボタンを押下して下さい。すると下記の画面が表示されます。Availabilityにするために下記のコマンドを実行して下さい。下記のコマンドはクラスタに対する設定の他、データベースのテーブルを作成する処理等も行います。そこで、データベース中に作成するデバイスサイズ(devicesize)の大きさに応じてコマンドの終了までに要する時間は異なります。appserver02」のホストを指定しHADBを2ノード作成しています。successfully.上記以外で指定可能なコマンドオプションについては、下記のオンラインヘルプを御参照ください。(name=value)[:name-value]*]{clusterName}上記コマンドが完了した後、システム上にはhadbに関連する下記の8プロセスが自動的に起動されます。-Dsql_th仮にプロセス数が少ない場合は、HADBが正常に起動できていない可能性があるため、HADBの管理エージェントのログを御確認頂き、エラーが出力されていないか確認してください。/sun/SUNWappserver91/hadb/4/log/ma.log4.動作確認それでは、HADBの構成が完了しましたので、動作確認をしてみましょう。Server経由(192.168.0.3)でデプロイしたアプリケーション(clusterjsp)にアクセスして見ましょう。ブラウザで接続すると下記のような画面が表示されます。DATA」ボタンを押下して下さい。すると、ページの下側に入力した文字列(aaaa,bbbb等)が表示されます。ここで、1点確認しておいて下さい。Address:」の欄にそれぞれ、アプリケーションを実際に実行しているアプリケーションサーバ名とIPアドレスがそれぞれ表示されています。下記の例では、アプリケーションは「appserver01」、「192.168.0.1」で実行されている事が確認できます。アプリケーションに接続しているブラウザの画面を閉じずそのままの画面にしたまま、下記の手順を行ってください。「appserver01」のインスタンスを停止してみましょう。→「appserver01-instance1」を選択します。Instance」ボタンを押下して下さい。Instance」ボタンを押下すると下記の画面が表示されます。インスタンスが停止した事を確認し、再度ブラウザに戻ってください。PAGE」ボタンを押下してください。すると、下記の画面が表示されます。内容は殆ど同じですが、変更点を確認してみましょう。画面を再読み込みすると「appserver02」、「192.168.0.2」にかわっている事が確認できます。画面下部には先ほど入力した内容(aaaa,bbbb等)が、そのまま表示されている事が確認できるかと思います。引き続き���ービスを提供できる事ができます。以上で、HADB2ノード構成のシステムを構築しましたが、実際にはHADB2ノードでは耐障害性は十分ではありません、スペアノードを作成し、より可用性レベルの高いシステムを構築する事が必要になってまいりますが、その方法についてはまた改めて説明したいと思います。5.HADBシステムの停止方法HADBの環境はプライマリーとミラーの両ノード間で通信を行っています。仮に相手と通信ができなくなった場合、自分のミラーとして使用していたセグメントレプリカをプライマリに変更し、自分が両方のプライマリを持っていると判断します。このようにHADBは対となるノードに障害が発生した場合、一時的に片ノードだけでサービスを提供します。そこでHADBの環境下でシステムを停止する際は、必ず片ノードづつリブートを行うようにして下さい。(片方が完全に立ち上がった事を確認しもう片方をリブートして下さい。)仮に両ノードが同時に停止すると両方のノードが自分がプライマリとして判断しデータベースが壊れてしまいます。そのような場合、データベースを再構築しなくてはなりません。(その方法は別途紹介します。)計画停電等でどうしても両ノードを停止する必要がある場合は、下記のコマンドを実行しHADBのプロセスを明示的に停止して下さい。stopped.最後に、補足事項を下記に説明します。下記にHADBを実行する事により起動されるプロセスの一覧とその意味をまとめます。node毎に起動します。Supervisorは5つの子プロセスを監視し、ハートビートがなくなったときそれらを再起動します。CLIから接続可能です。instructionにコンパイルし、TRANSに送信します。その結果を受信しクライアントに返します。クライアント接続毎に1つのサブサーバを持ちます。トランザクションサーバプロセス分散されたノード上のトランザクションを調整します。主な役割として次のものがあります。sort/join等の関係代数クエリーを調整・実行する。segmentを管理するサーバプロセス。cacheを管理する。agentがhadbmから発行された管理コマンドを実行するために使用します。nodeの最新の状態を把握し、nodeが停止したときと同じ状態で起動します。補足2:HADBの状態確認hadbmコマンドを使用するとHADBの状態を確認する事ができます。HADBは内部的に、下記の6つの状態を判定します。データベースに耐障害性があり、DRU毎にすくなくとも1つのスペアノードを備えている。全てのミラーノードペアが実行中である。各ミラーノードペアの内少なくとも1つのノードが実行中である。1つ以上のミラーノードペアで、両方のノードが無くなっている。データベース内に実行中のノードが存在しない。データベースの状態を判定できない。Tolerant)が確保されています。高い可用性を確保する為には、HADBのスペアノードを追加し、HADBノードの障害時にノードを切り替えられるようにする必要があります。HADBのデバイス情報の確認方法:下記のコマンドでHADBのデバイスに関する使用状況や空きサイズ等の情報を取得可能です。HADBのリソースの確認方法:下記のコマンドでHADBのリソースに関する使用状況や空きサイズ等の情報を取得可能です。Serverが正常に起動できなくなる事があります。そのような場合、MQのlockファイルを手動で削除した後、再度ドメインを起動して下さい。数分待ってページを再読み込みしてください。使用に同意したとみなされます。ポリシー%d人のブロガーが「いいね」をつけました。