この章では、Sun Java System Application Server Enterprise Edition 環境における高可用性データベース (HADB) について説明します。HADB を設定および管理する方法について解説します。HADB の作成および管理をする前に、まずシステムのトポロジを決定して、各種マシンに HADB ソフトウェアをインストールする必要があります。
この章では、次ののトピックについて説明します。
管理エージェント ma は HADB ホスト上で管理コマンドを実行します。HADB ノードスーパーバイザプロセスが失敗すると、管理エージェントはそのプロセスを再起動して、その可用性を確保します。
管理エージェント ma コマンドの構文は、次のとおりです。
ma [common-options] [ service-options] config-file
説明:
common-options は、「管理エージェントコマンドの構文」で説明されている 1 つ以上の共通オプションです。
service-options は、「管理エージェントコマンドの構文」で説明されている Windows サービスオプションのいずれかです。
config-file は、管理エージェント設定ファイルへのフルパスです。詳細については、「管理エージェント設定のカスタマイズ」を参照してください。
オプション |
説明 |
デフォルト |
---|---|---|
--define name=value-D |
プロパティー name に value を割り当てます。このプロパティーは「設定ファイル」に定義されているプロパティーのいずれかです。このオプションは、複数回繰り返すことができます。 |
なし |
--help-? |
ヘルプ情報を表示します。 |
False |
--javahome path-j |
path にある Java Runtime 環境 (1.4 以降) を使用します。 |
なし |
--systemroot path-y |
通常は %SystemRoot% で設定されているオペレーティングシステムルートへのパス。 |
なし |
--version-V |
バージョン情報を表示します。 |
False |
「管理エージェントコマンドの構文」では、管理サービスを Windows サービスとして起動するためのオプションを説明しています。-i、-r、および -s オプションは相互に排他的であるため、一度に 1 つだけを使用してください。
Windows では、設定ファイルまたはコマンド行にプロパティー値のパスを指定する際に、スペースを含むファイルパスを二重引用符 ( ") で囲んでエスケープします。コロン (:) ドライブセパレータと円記号 (\) ディレクトリセパレータは、二重引用符と円記号を用いて "\: および "\\ のようにエスケープします。
表 3–2 管理エージェントサービスオプション (Windows のみ)
オプション |
説明 |
デフォルト |
---|---|---|
--install-i |
エージェントを Windows サービスとしてインストールして、サービスを開始します。-i、-r、および -s オプションから、1 つだけを使用します。 |
False |
--name servicename-n |
ホスト上で複数のエージェントを実行している場合に、サービスに対して指定した名前を使用します。 |
HADBMgmtAgent |
--remove-r |
サービスを停止し、Windows のサービスマネージャーからエージェントを削除します。-i、-r、および -s オプションから、1 つだけを使用します。 |
False |
--service-s |
エージェントを Windows サービスとして実行します。-i、-r、および -s オプションから、1 つだけを使用します。 |
False |
HADB には設定ファイルが組み込まれており、管理エージェント設定のカスタマイズに使用できます。設定ファイルを指定せずに管理エージェントを起動した場合は、デフォルト値が使用されます。設定ファイルを指定した場合、管理エージェントはそのファイルの設定を使用します。同じ設定ファイルをドメイン内のすべてのホストで繰り返し使用することができます。
Java Enterprise System。ファイル内のすべてのエントリはコメントにされています。デフォルトの設定を使用する場合、変更の必要はありません。管理エージェント設定をカスタマイズするには、ファイルからコメントを削除し、必要に応じて値を変更してから、設定ファイルを引数に指定して、管理エージェントを起動します。
管理エージェント設定ファイルは次の場所にインストールされます。
Solaris および Linux: /etc/opt/SUNWhadb/mgt.cfg。
Windows: install_dir \lib\mgt.cfg 。
スタンドアロンインストールプログラムでは、管理エージェント設定ファイルは次の場所にインストールされます。
Solaris および Linux: HADB_install_dir /bin/ma.cfg。
Windows: HADB_install_dir \bin\ma.cfg 。
次の表で、設定ファイルの設定値について説明します。
表 3–3 設定ファイルの設定値
設定値名 |
説明 |
デフォルト |
---|---|---|
console.loglevel |
コンソールログレベル。有効な値は、SEVERE、ERROR、WARNING、INFO、FINE、FINER、FINEST。 |
WARNING |
logfile.loglevel |
ログファイルのログレベル。有効な値は、SEVERE、ERROR、WARNING、INFO、FINE、FINER、FINEST。 |
INFO |
logfile.name |
ログファイルの名前と場所。読み込み/書き込みアクセスに対して有効なパスである必要があります。 |
Solaris および Linux:/var/opt/SUNWhadb/ma/ma.log Windows: HADB_install_dir\ma.log |
ma.server.type |
クライアントプロトコル。JMXMP のみサポートされています。 |
jmxp |
ma.server. jmxmp.port |
内部 (UDP) および外部 (TCP) 通信用のポート番号。正の整数である必要があります。推奨される範囲は 1024 〜 49151 です。 |
1862 |
ma.server. mainternal.interfaces |
複数のインタフェースを持つマシンの内部通信用のインタフェース。有効な IPv4 アドレスマスクである必要があります。ドメイン内のすべての管理エージェントが必ず同じサブネットを使用する必要があります。 たとえば、ホストに 10.10.116.61 と 10.10.124.61 の 2 つのインタフェースがある場合、最初のインタフェースを使用するには 10.10.116.0/24 を指定します。スラッシュの後の数字は、サブネットマスクのビット数を示します。 |
なし |
ma.server. dbdevicepath |
HADB デバイス情報を格納するパス。 |
Solaris および Linux: /var/opt/SUNWhadb/4 Windows: HADB_install_dir \device |
ma.server. dbhistorypath |
HADB 履歴ファイルを格納するパス。 |
Solaris および Linux: /var/opt/SUNWhadb Windows: REPLACEDIR (実行時に実際の URL に置換される) |
ma.server. dbconfigpath |
ノード設定データを格納するパス。 |
Solaris および Linux: /var/opt/SUNWhadb/dbdef Windows: C:\Sun\SUNWhadb\dbdef |
repository.dr.path |
ドメインリポジトリファイルのパス。 |
Solaris および Linux: /var/opt/SUNWhadb/repository Windows: C:\Sun\SUNWhadb\repository |
管理エージェントは 2 とおりの方法で起動できます。
サービスとして本稼働環境で使用する場合。「サービスとしての管理エージェントの起動」を参照してください。 管理エージェントの有効性を確保するには、システムの再起動時に管理エージェントが自動的に起動することを確認してください。「管理エージェントの自動再起動の実現」を参照してください。
コンソールモードで、評価、テスト、または開発における通常のプロセスとして使用する場合。「コンソールモードでの管理エージェントの起動」を参照してください。
いずれの場合も、使用しているのが Java Enterprise System であるかスタンドアロン Application Server であるかによって、手順が異なります。
サービスとして管理エージェントを起動すると、システムが停止するかまたは操作によりシステムを明示的に停止するまで、実行を継続します。
管理エージェントをサービスとして起動するには、次のコマンドを使用します。
/etc/init.d/ma-initd start
サービスを停止するには、次のコマンドを使用します。
/etc/init.d/ma-initd stop
管理エージェントを Windows サービスとして起動するには、次のコマンドを使用します。 HADB_install_dir\bin\ma -i [config-file ]
省略可能な引数 config-file は、管理エージェントの設定ファイルを指定します。設定ファイルは、デフォルトの管理エージェント設定を変更する場合にのみ使用してください。
管理エージェントを停止してサービスから削除 (登録解除) するには、次のコマンドを使用します。HADB_install_dir\bin\ma -r [ config-file ]
管理を実行するには、「管理ツール 」->「サービス」を選択します。表示されるウィンドウで、サービスの起動と停止、自動起動の無効化などを行えます。
管理エージェントをサービスとして起動するには、次のコマンドを使用します。
HADB_install_dir/bin/ma-initd start
サービスを停止するには、次のコマンドを使用します。
HADB_install_dir/bin/ma-initd stop
管理エージェントを Windows サービスとして起動するには、次のコマンドを使用します。 HADB_install_dir\bin\ma -i [config-file ]
省略可能な引数 config-file は、管理エージェントの設定ファイルを指定します。設定ファイルは、デフォルトの管理エージェント設定を変更する場合にのみ使用してください。
管理エージェントを停止してサービスから削除 (登録解除) するには、次のコマンドを使用します。HADB_install_dir\bin\ma -r [ config-file ]
管理を実行するには、「管理ツール 」->「サービス」を選択します。表示されるウィンドウで、サービスの起動と停止、自動起動の無効化などを行えます。
Windows プラットフォームでは、管理エージェントをサービスとして起動した後に、Windows 管理ツールを使用して、サービスの「スタートアップの種類」を「自動」に設定し、必要に応じて「回復」オプションを指定します。
Solaris および Linux プラットフォームでは、この節の手順を用いて、ma プロセスが失敗する場合またはオペレーティングシステムが再起動する場合における管理エージェントの有効性を確実にしてください。本稼働配備環境で使用する場合は、この作業を行うことをお勧めします。
以の手順を行うと、システムが次のレベルになったときにのみ、管理エージェントが起動します。
Solaris での実行レベル 3 (デフォルト)。
RedHat Linux での実行レベル 5 (グラフィックモードでのデフォルト)。
それ以外の実行レベルになると、管理エージェントは停止します。
この節は、オペレーティングシステムの初期化と実行レベルについての基本を理解していることを前提としています。これらのトピックについては、使用しているオペレーティングシステムのマニュアルを参照してください。
システムのデフォルト実行レベルが 3 または 5 であることを確認します。
システムのデフォルト実行レベルを確認するには、/etc/inittab ファイルを調べ、ファイル上部にある次のような行を探します。
id:5:initdefault:
この例は、デフォルト実行レベル 5 を示しています。
ファイル /etc/init.d/ma-initd への次のソフトリンクを作成します。
/etc/rc0.d/K20ma-initd /etc/rc1.d/K20ma-initd /etc/rc2.d/K20ma-initd /etc/rc3.d/S99ma-initd /etc/rc5.d/S99ma-initd /etc/rcS.d/K20ma-initd |
マシンを再起動します。
エージェントの自動起動および停止を解除するには、これらのリンクを削除するか、リンク名中の文字 K とS を小文字に変更します。
シェルで、カレントディレクトリを HADB_install_dir /bin に変更します。
シェルスクリプト ma-initd を編集します。
スクリプト内の HADB_ROOT および HADB_MA_CFG のデフォルト値を確認して、インストールを反映させます。
HADB_ROOT は HADB インストールディレクトリ HADB_install_dir です。
HADB_MA_CFG は管理エージェント設定ファイルのある場所です。詳細については、「管理エージェント設定のカスタマイズ」を参照してください。
ma-initd をディレクトリ /etc/init.d にコピーします。
ファイル /etc/init.d/ma-initd への次のソフトリンクを作成します。
/etc/rc0.d/K20ma-initd /etc/rc1.d/K20ma-initd /etc/rc2.d/K20ma-initd /etc/rc3.d/S99ma-initd /etc/rc5.d/S99ma-initd /etc/rcS.d/K20ma-initd |
エージェントの自動起動および停止を解除するには、これらのリンクを削除するか、リンク名中の文字 K とS を小文字に変更します。
評価やテストのために、コンソールモードで管理エージェントを手動で起動することができます。本稼働環境ではこの方法で管理エージェントを起動しないでください。システムやプロセスの障害の後で ma プロセスが再起動しなかったり、コマンドウィンドウを閉じたときにプロセスが終了したりするからです。
コンソールモードで HADB 管理エージェントを起動するには、次のコマンドを使用します。
opt/SUNWhadb/bin/ma [config-file]
デフォルトの管理エージェント設定ファイルは /etc/opt/SUNWhadb/mgt.cfg です。
管理エージェントを停止するには、プロセスを終了するか、またはシェルウィンドウを閉じます。
コンソールモードで管理エージェントを起動するには、次のコマンドを使用します。
HADB_install_dir\bin\ma [config-file]
省略可能な引数 config-file は、管理エージェント設定ファイルの名前です。設定ファイルの詳細については、「管理エージェント設定のカスタマイズ」を参照してください。
エージェントを停止するには、プロセスを終了します。
コンソールモードで管理エージェントを起動するには、次のコマンドを使用します。
HADB_install_dir\bin\ma [config-file]
省略可能な引数 config-file は、管理エージェント設定ファイルの名前です。詳細については、「管理エージェント設定のカスタマイズ」を参照してください。
管理エージェントを停止するには、プロセスを終了します。
コンソールモードで HADB 管理エージェントを起動するには、次のコマンドを使用します。
HADB_install_dir/bin/ma [config-file]
デフォルトの管理エージェント設定ファイルは HADB_install_dir /bin/ma.cfg です。
管理エージェントを停止するには、プロセスを終了するか、またはシェルウィンドウを閉じます。
hadbm コマンド行ユーティリティーを使用して、HADB ドメイン、そのデータベースインスタンス、およびノードを管理します。hadbm ユーティリティー (管理クライアントとも呼ばれる) は、管理サーバーとして動作している、指定された管理エージェントに管理要求を送信します。管理エージェントにはリポジトリからデータベース設定へのアクセスがあります。
この節では、次のトピックで、hadbm コマンド行ユーティリティーについて説明します。
hadbm ユーティリティーは、HADB_install_dir /bin ディレクトリにあります。hadbm コマンドの汎用構文は次のとおりです。
hadbm subcommand [-short-option [option-value]] [--long-option [option-value]] [operands]
サブコマンドで実行する操作またはタスクを識別します。サブコマンドは大文字と小文字を区別します。ほとんどのコマンドはオペランドを 1 つ (通常は dbname) とりますが、オペランドをとらないコマンドやオペランドを 2 つとるコマンドもあります。
オプションを指定することにより、hadbm がサブコマンドを実行する方法を変更できます。オプションは大文字と小文字を区別します。各オプションには長い書式と短い書式があります。省略形の場合はダッシュ 1 つ (-) を前に付け、長い書式の場合はダッシュ 2 つ (--) を前に付けます。boolean 型のオプションを除くほとんどのオプションは引数値を必要とし、この引数値により機能がオンに切り替わります。オプションを指定しないとコマンドが正常に実行されないということではありません。
サブコマンドにデータベース名が必要な場合にデータベース名を指定しないと、hadbm はデフォルトデータベース hadb を使用します。
次に示すのは、status サブコマンドの例です。
hadbm status --nodes
セキュリティー上の理由で、すべての hadbm コマンドには管理者パスワードが必要です。データベースまたはドメインを作成する際に、--adminpassword オプションを使用してパスワードを設定します。それ以降、そのデータベースまたはドメイン上で操作を実行するときには、そのパスワードを指定する必要があります。
さらにセキュリティーを強化するには、パスワードをコマンド行に入力する代わりに、--adminpasswordfile オプションを使用してパスワードを含むファイルを指定します。次の行を用いてパスワードファイルにパスワードを定義します。
HADBM_ADMINPASSWORD=password
password をパスワードに置き換えてください。ファイル内のそれ以外の内容は無視されます。
--adminpassword と --adminpasswordfile の両方のオプションを指定すると、--adminpassword が優先されます。パスワードが必要なのに、コマンド中に指定されていない場合には、hadbm からパスワードを要求されます。
管理者パスワードはデータベースまたはドメインを作成するときにのみ設定することができ、後で変更することはできません。
管理者パスワードに加えて、データベーススキーマを変更する操作を実行するために、HADB ではデータベースパスワードも要求されます。次のコマンドを使用するときには、これらのパスワードが両方必要となります。hadbm create、hadbm addnodes、および hadbm refragment 。
--dbpassword オプションを使用して、コマンド行にデータベースパスワードを指定します。管理者パスワードと同じように、ファイルにパスワードを書き込み、--dbpasswordfile オプションでファイルの場所を指定することも可能です。次の行を用いてパスワードファイルにパスワードを定義します。
HADBM_DBPASSWORD=password
テストまたは評価の場合は、データベースまたはドメインを作成する際に --no-adminauthentication オプションを指定して、パスワード認証をオフにすることもできます。詳細については、「データベースの作成」および 「管理ドメインの作成」を参照してください。
次の表に、hadbm セキュリティーコマンド行オプションの要約を示します。
表 3–4 hadbm セキュリティーオプション
汎用コマンドオプションは、どの hadbm サブコマンドにも使用できます。すべてが boolean 型オプションで、デフォルトは false です。次の表で、hadbm 汎用コマンドオプションについて説明します。
表 3–5 hadbm 汎用オプション
オプション (省略形) |
説明 |
---|---|
--quiet -q |
説明メッセージを何も表示せずにサブコマンドを実行します。 |
--help -? |
このコマンドの簡単な説明とサポートされているすべてのサブコマンドを表示します。サブコマンドは不要です。 |
--version -V |
hadbm コマンドのバージョン詳細を表示します。サブコマンドは不要です。 |
--yes -y |
非対話型モードでサブコマンドを実行します。 |
--force -f |
非対話式にコマンドを実行し、コマンドの後置条件をすでに満たしている場合には、エラーをスローしません。 |
--echo -e |
サブコマンドを、すべてのオプションとそれらについてユーザーが定義した値またはデフォルト値とともに表示してから、サブコマンドを実行します。 |
--agent=URL -m |
管理エージェントの URL。URL の書式は hostlist:port です。ここで、hostlist はホスト名または IP アドレスのコンマ区切りリストで、port は管理エージェントが動作しているポート番号です。 デフォルトは localhost: 1862 です。 注: このオプションは hadbm addnodes には無効です。 |
便宜上、コマンドオプションを指定する代わりに、環境変数を設定することもできます。次の表で、hadbm コマンドオプションに対応する環境変数について説明します。
表 3–6 HADB オプションと環境変数
長い書式 |
短い書式 |
デフォルト |
環境変数 |
---|---|---|---|
--adminpassword |
-w |
なし |
$HADBM_ADMINPASSWORD |
--agent |
--m |
localhost:1862 |
$HADBM_AGENT |
--datadevices |
-a |
1 |
$HADBM_DATADEVICES |
dbname |
なし |
hadb |
$HADBM_DB |
--dbpassword |
-p |
なし |
$HADBM_DBPASSWORD |
--dbpasswordfile |
-P |
なし |
$HADBM_DBPASSWORDFILE |
--devicepath |
-d |
Solaris および Linux: /var/opt/SUNWhadb Windows: C:\Sun\AppServer\SUNWhadb\vers。ここで、vers は HADB バージョン番号です。 |
$HADBM_DEVICEPATH |
--devicesize |
-z |
なし |
$HADBM_DEVICESIZE |
--echo |
-e |
False |
$HADBM_ECHO |
--fast |
-F |
False |
$HADBM_FAST |
--force |
-f |
False |
$HADBM_FORCE |
--help |
-? |
False |
$HADBM_HELP |
--historypath |
-t |
Solaris および Linux: /var/opt/SUNWhadb Windows: REPLACEDIR (実行時に実際の URL に置換される) |
$HADBM_HISTORYPATH |
--hosts |
-H |
なし |
$HADBM_HOSTS |
--interactive |
-i |
True |
$HADBM_INTERACTIVE |
--no-refragment |
-r |
False |
$HADBM_NOREFRAGMENT |
--portbase |
-b |
15200 |
$HADBM_PORTBASE |
--quiet |
-q |
False |
$HADBM_QUIET |
--repair |
-R |
True |
$HADBM_REPAIR |
--rolling |
-g |
True |
$HADBM_ROLLING |
--saveto |
-o |
なし |
$HADBM_SAVETO |
--set |
-S |
なし |
$HADBM_SET |
--spares |
-s |
0 |
$HADBM_SPARES |
--startlevel |
-l |
normal |
$HADBM_STARTLEVEL |
--version |
-V |
False |
$HADBM_VERSION |
--yes |
-y |
False |
$HADBM_YES |
この節では、次の基本的な HADB 設定作業について説明します。
コマンド hadbm createdomain を実行すると、指定した HADB ホストを含む管理ドメインが作成されます。このコマンドは、ホストと持続性設定ストアとの間の内部通信チャネルを初期化します。
コマンドの構文は次のとおりです。
hadbm createdomain [--adminpassword=password |--adminpasswordfile= file | --no-adminauthentication] [--agent=maurl] hostlist
hostlist オペランドは、それぞれが有効な IPv4 ネットワークアドレスである HADB ホストのコンマ区切りリストです。新規ドメインに組み込むすべてのホストを hostlist に含めてください。
コマンドオプションの説明は、「汎用オプション」を参照してください。
このコマンドを使用する前に、HADB 管理エージェントが hostlist に含まれているすべてのホスト上で実行中であるかを確認してください。さらに、管理エージェントは次の条件を満たしている必要があります。
既存のドメインのメンバーではない。
同一のポートを使用するように設定されている。
UDP や TCP を介して、および IP マルチキャストを使用して相互に通信できる。
hadbm が管理ドメインを作成すると、ドメイン内のすべてのホストが使用可能になります。これで、管理エージェントがデータベースを管理する用意は整いました。HADB ドメインを作成したら、次のステップは、HADB データベースの作成です。HADB データベースの作成に関する詳細については、「データベースの作成」を参照してください。
次の例では、指定した 4 つのホスト上に管理ドメインが作成されます。
hadbm createdomain --adminpassword= password host1,host2,host3,host4
hadbm がコマンドを正常に実行すると、次のメッセージが表示されます。
「ドメイン host1、host2、host3、host4 が作成されました。」
HADB ドメインを作成した後、HADB パッケージのパスとバージョンを管理エージェントに登録します。
hadbm create コマンドを使用して、データベースを手動で作成します。
このコマンドを使用してデータベースを作成する前に、管理ドメインを作成し、HADB パッケージを登録します。hadbm create を実行する時点でこの 2 つのステップをまだ行なっていない場合は、コマンドによってそれらのステップが暗黙に実行されます。このようにすれば行う作業は減るように思えますが、いずれかのコマンドでエラーが生じたときに、デバッグが困難になる場合があります。さらに、hadbm create は不可分ではありません。つまり、暗黙的なコマンドのいずれかが失敗した場合に、正常に実行されたコマンドはロールバックされません。したがって、ドメインを作成し HADB パッケージを登録した後にのみ、データベースを作成するのが最善です。
たとえば、hadbm createdomain と hadbm registerpackage は正常に実行されるものの hadbm create database は失敗する場合、 hadbm createdomain と hadbm registerpackage によって加えられた変更は持続します。
管理ドメインを作成します。
詳細については、「管理ドメインの作成」を参照してください。
HADB パッケージを登録します。
詳細については、「HADB パッケージの登録」を参照してください。
hadbm create コマンドを使用してデータベースを作成します。
コマンド構文については、次の節を参照してください。
dbname オペランドには データベース名を指定します。この名前は一意でなければなりません。データベース名が一意であることを確認するために、hadbm list コマンドを使用して既存のデータベース名を一覧表示します。複数のデータベースを作成する必要がなければ、デフォルトのデータベース名を使用してください。たとえば、同じセットの HADB マシン上に独立データベースで複数のクラスタを作成するには、クラスタごとに別個のデータベース名を使用します。
hadbm create コマンドは、エラーメッセージをログファイルではなくコンソールに書き込みます。
表 3–7 には、 hadbm create コマンドの特殊なオプションが説明されています。追加のコマンドオプションの説明は、「汎用オプション」を参照してください。
表 3–7 hadbm create オプション
オプション (省略形) |
説明 |
デフォルト |
---|---|---|
-a |
各ノード上のデータデバイスの数。1〜8 を含みます。データデバイスには 0 から始まる番号が付けられます。 |
1 |
-d |
デバイスへのパス。デバイスには次の 4 つがあります。
|
Solaris および Linux: /var/opt/SUNWhadb Windows: C:\Sun\AppServer\SUNWhadb\vers。ここで、vers は HADB バージョン番号です。 デフォルトは、管理エージェント設定ファイル内の ma.server.dbdevicepath によって指定されます。詳細については、「設定ファイル」を参照してください。 |
-z |
各ノードのデバイスサイズ。詳細については、「デバイスサイズの指定」を参照してください。 「既存ノードへの記憶スペースの追加」の説明に従って、デバイスサイズを増やします。 |
1024M バイト 最大サイズは、オペレーティングシステムのファイルサイズまたは 256G バイトの小さい方となります。最小サイズは次のとおりです。 (4 x LogbufferSize + 16M バイト) / n ここで、n は --datadevices オプションで指定されたデータデバイスの番号です。 |
-t |
履歴ファイルへのパス。このパスはすでに存在していて、書き込み可能であることが必要です。 履歴ファイルの詳細については、「履歴ファイルの消去と保存」を参照してください。 |
デフォルトは、管理エージェント設定ファイル内の ma.server.dbhistorypath によって指定されます。詳細については、「設定ファイル」を参照してください。 Solaris および Linux:/var/opt/SUNWhadb Windows: REPLACEDIR (実行時に実際の URL に置換される) |
-H |
データベース内のノードのホスト名または IP アドレス (IPv4 のみ) のコンマ区切りリスト。DNS 検索への依存を避けるため、IP アドレスを使用してください。ホスト名は必ず絶対名にします。localhost や 127.0.0.1 をホスト名として使用することはできません。Host names 詳細については、「ホストの指定」を参照してください。 |
なし |
--package=name -k |
HADB パッケージの名前 (バージョン)。パッケージが見つからない場合は、デフォルトパッケージが登録されます。 このオプションは推奨されていません。hadbm registerpackage コマンドを使用して、パッケージをドメインに登録してください。 |
なし |
--packagepath=path-L |
HADB ソフトウェアパッケージへのパス。パッケージがドメインに登録されていない場合にのみ使用します。 このオプションは推奨されていません。hadbm registerpackage コマンドを使用して、パッケージをドメインに登録してください。 |
なし |
-b |
ノード 0 に使用するポートベース番号。 後続のノードには、この番号から 20 刻みでポートベース番号が自動的に割り当てられます。各ノードはそれ自身のポートベース番号とそれに続く 5 つの連続する番号のポートを使用します。 同じマシン上で複数のデータベースを実行するには、明示的にポート番号を割り当てるように計画します。 |
15200 |
-s |
スペアノードの数。この数は、偶数かつ --hosts オプションに指定したノード数より少ない数でなければいけません。 |
0 |
-S |
name =value 書式のデータベース設定属性のコンマ区切りリスト。データベース設定属性の説明は、「履歴ファイルの消去と保存」を参照してください。 |
なし |
次に示すのは、データベースを作成するコマンドの例です。
hadbm create --spares 2 --devicesize 1024 --dbpassword secret123 --hosts n0,n1,n2,n3,n4,n5
--hosts オプションを使用して、データベース内のノードのホスト名または IP アドレスのコンマ区切りリストを指定します。hadbm create コマンドは、リスト内のホスト名 (または IP アドレス) ごとに 1 つのノードを作成します。ノードの数は偶数でなければなりません。重複するホスト名を使用すると、同じマシン上に異なるポート番号が指定された複数のノードが作成されます。同じマシン上のノードがミラーノードではないことを確認してください。
ノードには、このオプションでリストされている順番で、ゼロから始まる番号が付けられます。最初のミラー化されたペアはノード 0 と 1、2 番目のミラーペアはノード 2 と 3 となり、以下同様です。奇数番号のノードが一方の DRU に配置され、偶数番号のノードは他方の DRU に配置されます。--spares オプションを指定すると、最も大きい番号のノードがスペアノードとなります。
二重ネットワークインタフェースの設定については、「ネットワーク冗長性の設定」を参照してください。
--devicesize オプションを使用して、デバイスサイズを指定します。推奨されているデバイスサイズは次のとおりです。
(4x / nd + 4l/d) / 0.99
説明:
x は、ユーザーデータの合計サイズです。
n は、--hosts オプションで指定されたノード数です。
d は、--datadevices オプションで指定された、ノードあたりのデバイス数です。
l は、属性 LogBufferSize で指定されたログバッファーサイズです。
hadbm addnodes を使用するなどして再度の断片化が行われる可能性がある場合は 、推奨されるデバイスサイズは次のようになります。
(8x / nd + 4l/d) / 0.99
ノードまたはサービスごとに異なるデバイスパスを設定するには、hadbm create の -- set オプションを使用します。デバイスには、DataDevice、NiLogDevice (ノード内部ログデバイス)、RelalgDevice (関係代数クエリーデバイス)、および NoManDevice (ノードマネージャーデバイス) の 4 種類があります。各 name =value ペアの構文は次のとおりです。ただし、-devno は、device が DataDevice の場合にのみ必要です。
node-nodeno.device-devno.Devicepath
次に例を示します。
--set Node-0.DataDevice-0.DevicePath=/disk0, Node-1.DataDevice-0.DevicePath=/disk 1
次のようにして、履歴ファイルへの異機種システム混在パスを設定することも可能です。
node-nodeno.historypath=path
履歴ファイルについては、「履歴ファイルの消去と保存」を参照してください。
特定のノードまたはデバイス用に設定されていないデバイスパスは、すべて --devicepath の値にデフォルト設定されます。
デバイスパスおよび履歴ファイルの場所の変更は、hadbm set および hadbm addnodes コマンドを使用して行います。
データベースの作成がうまくいかない場合は、次の点をチェックしてください。
すべてのホスト上で管理エージェントを起動し、HADB ドメインを定義したことを確認します。詳細については、「管理エージェントの起動」を参照してください。
ファイルおよびディレクトリのアクセス権は、次のユーザーに対して、インストールパス、履歴パス、デバイスパス、設定パスへの読み取り、書き込み、および実行のアクセスを許可するように設定されている必要があります。
Sun Java System Application Server 管理ユーザー (インストール時に設定)
HADB システムユーザー
ユーザーアクセス権の設定に関する詳細については、「HADB の設定の準備」を参照してください。
Application Server および HADB ポート割り当てが、同じマシン上の他の ポート割り当てと競合しないようにする必要があります。推奨されているデフォルトのポート割り当ては次のとおりです。
Sun Java SystemMessage Queue: 7676
IIOP: 3700
HTTP サーバー: 80
管理サーバー: 4848
HADB ノード: 各ノードは連続する 6 つのポートを使用します。たとえば デフォルトポート 15200 の場合、ノード 0 は 15200 〜 15205、ノード 1 は 15220 〜 15225 を使用し、以下同様です。
ディスク容量が適切であることも必要です。『Sun Java System Application Server リリースノート』を参照してください。
データベース設定属性の表示および変更は、それぞれ hadbm get および hadbm set コマンドを使用して行えます。
設定属性の値を取得するには、hadbm get コマンドを使用します。有効な属性のリストについては、「設定属性」を参照してください。コマンド構文は次のとおりです。
hadbm get attribute-list | --all [dbname] [--adminpassword=password | --adminpasswordfile=file] [--agent=maurl]
dbname オペランドにはデータベース名を指定します。デフォルトは hadb です。
attribute-list オペランドは、コンマで区切られたまたは引用符で囲まれスペースで区切られた、属性のリストです。--all オプションはすべての属性の値を表示します。hadbm get のすべての属性のリストについては、「設定属性」を参照してください。
コマンドオプションの説明は、「汎用オプション」を参照してください。
hadbm get JdbcUrl,NumberOfSessions
設定属性の値を設定するには、hadbm set コマンドを使用します。有効な属性のリストについては、「設定属性」を参照してください。
hadbm set [dbname] attribute =value[,attribute= value...] [--adminpassword=password | --adminpasswordfile=file] [--agent=maurl]
dbname オペランドにはデータベース名を指定します。デフォルトは hadb です。
attribute=value リストは、コンマで区切られたまたは引用符で囲まれスペースで区切られた、属性のリストです。
コマンドオプションの説明は、「汎用オプション」を参照してください。
このコマンドが正常に実行されると、データベースは以前の状態またはよりよい状態で再起動されます。データベースの状態については、「HADB の状態の取得」を参照してください。「データベースの再起動」で説明されている手順に従って、HADB を再起動します。
次の属性は、hadbm set では設定できません。その代わりに、データベース作成時に設定します (「データベースの作成」を参照)。
DatabaseName
DevicePath
HistoryPath
NumberOfDatadevices
Portbase
JdbcUrl (この値は、データベース作成時に --hosts および --portbase オプションに基づいて設定される)。
hadbm set を使用して ConnectionTrace と SQLTraceMode 以外のいずれかの設定属性を設定すると、HADB の順次再起動が実行されます。順次再起動では、各ノードが停止し、一度に 1 つずつ新規の設定で起動します。このとき HADB サービスは中断されません。
ConnectionTrace または SQLTraceMode を設定した場合、順次再起動は実行されませんが、変更は Application Server インスタンスから作成された新規の HADB 接続に対してのみ反映されます。
次の表に、hadbm set での変更と hadbm get での検出が可能な設定属性を一覧表示します。
表 3–8 設定属性
属性 |
説明 |
デフォルト |
範囲 |
---|---|---|---|
True に設定すると、クライアント接続 (JDBC、ODBC) が開始または終了したときに、メッセージが HADB 履歴ファイルに記録されます。 |
False |
True または False |
|
デフォルト値を変更しないでください。 |
False |
True または False |
|
データベースの名前。 |
hadb | ||
共用メモリーに割り当てられるデータバッファプールのサイズ。 |
200M バイト |
16 〜 2047M バイト |
|
ノードのデバイスサイズを指定します。推奨される DataDeviceSize のサイズについては、「デバイスサイズの指定」を参照してください。 最大値は、256G バイトとオペレーティングシステムの最大ファイルサイズの小さい方です。最小値は次のとおりです。 (4 x LogbufferSize + 16M バイト) / n ここで、n はデータデバイスの番号です。 |
1024M バイト |
32 〜 262144M バイト |
|
PackageName |
データベースが使用する HADB ソフトウェアパッケージの名前。 |
V4.x.x.x |
なし |
デバイスの場所。デバイスは次のとおりです。
|
Solaris および Linux: /var/opt/SUNWhadb Windows: C:\Sun\AppServer\SUNWhadb\vers。ここで、vers は HADB バージョン番号です。 | ||
通常または高速処理 (eager) アイドルセッション有効期限を使用するかどうかを判別します。 通常のアイドルセッション有効期限では、アイドル状態が SessionTimeout 秒を超過したセッションが期限切れとなります。 並行セッションの数がセッション最大数の EagerSessionThreshold パーセントを超えている場合は、アイドル状態が EagerSessionTimeout 秒を超過したセッションが期限切れとなります。 |
NumberOfSessions 属性の半分 |
0 〜 100 |
|
高速処理 (eager) セッション有効期限を使用している場合に、データベース接続がアイドル状態になってから期限切れになるまでの秒数。 |
120 秒 |
0 〜 2147483647 秒 |
|
データベースイベントが記録されるイベントバッファーのサイズ。0 に設定すると、イベントバッファーへのロギングは実行されません。 障害が起きている間、イベントバッファーはダンプされます。これは、障害の原因に関する有用な情報を提供し、試験的な配備の際に役立ちます。 イベントをメモリーに書き込むと、パフォーマンスが犠牲になります。 |
0M バイト |
0 〜 2097152M バイト |
|
HADB 履歴ファイルの場所。このファイルの内容は、情報、警告、およびエラーメッセージです。 これは読み取り専用属性です。 |
Solaris および Linux: /var/opt/SUNWhadb Windows: REPLACEDIR (実行時に実際の URL に置換される) | ||
ノード内部ログデバイスのサイズ。データの格納に関連する操作のトラックが保持されます。 |
12M バイト |
4 〜 128M バイト |
|
データベースの JDBC 接続 URL。 これは読み取り専用属性です。 |
なし | ||
ログバッファーのサイズ。データに関連する操作のトラックをが保持されます。 |
48M バイト |
4 〜 2048M バイト |
|
HADB データベース内で許可される表の最大数。 |
1100 |
100 〜 1100 |
|
HADB ノードで使用されるデータデバイスの数。 これは読み取り専用属性です。 |
1 |
1 〜 8 |
|
HADB ノードによって割り当てられるロックの数。 |
50000 |
20000 〜 1073741824 |
|
HADB ノード用に開くことが可能なセッション (データベース接続) の最大数。 |
100 |
1 〜 10000 |
|
異なる HADB プロセス用に異なるポート番号を作成する際に使用するベースポート番号。 これは読み取り専用属性です。 |
15200 |
10000 〜 63000 |
|
関係代数クエリーに使用するデバイスのサイズ。 |
128M バイト |
32 〜 262144M バイト |
|
通常のセッション有効期限を使用している場合に、データベース接続がアイドル状態になってから期限切れになるまでの時間。 |
1800 秒 |
0 〜 2147483647 秒 |
|
履歴ファイルに書き込まれる実行された SQL クエリーに関する情報の量。 SHORT に設定すると、SQL セッションのログインとログアウトが記録されます。FULL に設定すると、準備中および実行中のすべての SQL が、パラメータ値を含めて記録されます。 |
NONE |
NONE/SHORT/FULL |
|
スペアノードが、障害の発生したアクティブノードに対してノード復旧の実行を許可する最大時間。障害の発生したノードがこの時間内に回復できない場合、スペアノードが障害の発生したノードのミラーからデータのコピーを開始してアクティブになります。デフォルト値を変更しないことをお勧めします。 |
20 秒 |
0 〜 100000 秒 |
|
HADB ノードがスループットと応答時間の統計情報を履歴ファイルに書き込む間隔。無効にする場合は、0 に設定します。 次に示すのは、統計情報の行の例です。 Req-reply time: # 123, min= 69 avg= 1160 max= 9311 %=100.0 ハッシュ記号 (#) の後の数字は、StatInterval の間に処理された要求の数です。次の 3 つの数字は、StatInterval の間に完了したトランザクションが処理に要した時間の最小値、平均値、最大値をマイクロ秒で表したものです。パーセント記号 (%) の後の数字は、StatInterval の間に 15 ミリ秒以内で正常に完了したトランザクションの数です。 |
600 秒 |
0 〜 600 秒 |
|
syslog にレポートするときに使用する機能。syslog デーモンを設定しておくことをお勧めします (詳細は man syslogd.conf を参照)。 同じマシン上で実行中の他のアプリケーションによって使用されていない機能を使用します。 syslog ロギングを無効にするには、none に設定します。 |
local0 |
local0、local1、local2、local3、local4、local5、local6、local7、kern、user、mail、daemon、auth、syslog、lpr、news、uucp、cron、none |
|
True に設定すると、HADB ノードは情報をオペレーティングシステムの syslog ファイルに書き込みます。 |
True |
True または False |
|
オペレーティングシステムの syslog に保存される HADB メッセージの最小レベル。指定したレベル以上のすべてのメッセージが記録されます。たとえば、「info」に設定した場合は、すべてのメッセージが記録されます。 |
warning |
nonealert errorwarninginfo |
|
HADB によって書き込まれるすべての syslog メッセージの前に挿入されるテキスト文字列。 |
hadb -dbname | ||
ノードに障害が発生してから、処理がミラーに引き継がれるまでの時間。デフォルト値を変更しないでください。 |
10000 (ミリ秒) |
500 〜 16000 ミリ秒 |
Application Server は Java Database Connectivity (JDBC) API を使用して HADB と通信します。asadmin configure-ha-cluster コマンドは、クラスタ cluster-name 用に JDBC 接続プールを自動的に作成して HADB と共用します。接続プールの名前は cluster-name-hadb-pool です。JDBC リソースの JNDI URL は jdbc/cluster-name -hastore です。
通常、接続プールは初期設定のままで十分です。ノードを追加する場合は、通常プールサイズを変更して、アクティブな HADB ノードがそれぞれ 8 つの接続を持つようにします。「ノードの追加」を参照してください。
この章では、次のトピックを扱います。
接続プールと JDBC リソースに関する一般情報については、『管理ガイド』を参照してください。
JDBC 接続ツールをセットアップする前に、次のように hadbm get コマンドを使用して、 HADB の JDBC URL を決定する必要があります。
hadbm get JdbcUrl [dbname]
次に例を示します。
hadbm get JdbcUrl
このコマンドを実行すると、JDBC URL が次の書式で表示されます。
jdbc:sun:hadb:host:port, host:port,...
jdbc:sun:hadb: 接頭辞を削除した host:port, host:port... の部分を、表 3–10 で説明されている serverList 接続プールプロパティーの値として使用します。
次の表に、HADB 用に必須の接続プール設定を要約します。ノードを追加する際には「通常プールサイズ」を変更し、それ以外の設定は変更しないでください。
表 3–9 HADB 接続プール設定
次の表に、HADB 用に必須の接続プールのプロパティーを要約します。ノードを追加する際には serverList を変更し、それ以外のプロパティーは変更しないでください。
表 3–10 HADB 接続プールプロパティー
プロパティー |
説明 |
---|---|
asadmin create-session-store コマンドに使用する storeuser の名前。 |
|
asadmin create-session-store コマンドに使用するパスワード (storepassword)。 |
|
HADB の JDBC URL。この値を特定するには、「JDBC URL の取得」を参照してください。 データベースにノードを追加する場合は、この値を変更する必要があります。「ノードの追加」を参照してください。 |
|
必要に応じて false を指定すると、Connection.getMetaData() を呼び出すことによってデータベースが呼び出され、接続が有効になります。 |
|
必要に応じて true を指定すると、重複するコミットおよびロールバックの要求の削除、およびトランザクションが開いていない場合にはそれらの要求の無視により、パフォーマンスが向上します。 |
|
開いている接続あたりのドライバ文プールにキャッシュされる文の最大数。このプロパティーは 20 に設定します。 |
次に示すのは、HADB JDBC 接続プールを作成する asadmin create-jdbc-connection-pool コマンドの例です。
asadmin create-jdbc-connection-pool --user adminname --password secret --datasourceclassname com.sun.hadb.jdbc.ds.HadbDataSource --steadypoolsize=32 --isolationlevel=repeatable-read --isconnectvalidatereq=true --validationmethod=meta-data --property username=storename:password=secret456:serverList= host\:port,host\:port, host\\:port,host\:port, host\:port,host\:port :cacheDatabaseMetaData=false:eliminateRedundantEndTransaction=true hadbpool
Solaris では、プロパティー値に含まれるコロン文字 (:) は 2 つの円記号 (\\) でエスケープします。Windows では、コロン文字 (:) を 1 つの円記号 (\) でエスケープします。
次の表に、HADB 用に必須の JDBC リソース設定を要約します。
表 3–11 HADB JDBC リソース設定
設定 |
説明 |
---|---|
セッション持続性設定のデフォルトの JNDI 名はjdbc/hastore です。このデフォルト名または別の名前を使用することができます。 可用性サービスを使用可能にするには、store-pool-jndi-name 「持続性ストア」プロパティーの値にもこの JDNI 名を指定する必要があります。 |
|
リストから、この JDBC リソースが使用する HADB 接続プールの名前 (または ID) を選択します。詳細については、「ネットワーク冗長性の設定」を参照してください。 |
|
チェックする/True |
通常、ネットワーク、ハードウェア、オペレーティングシステム、または HADB ソフトウェアを交換またはアップグレードする際には、管理オペレーションを実行する必要があります。次の節では、さまざまな管理オペレーションについて説明します。
HADB ドメインで、次の操作を実行できます。
ドメインの作成。詳細については、「管理ドメインの作成」を参照してください。
コマンドオプションの説明は、「セキュリティーオプション」および 「汎用オプション」を参照してください。
extenddomain を使用して、既存の管理ドメインにホストを追加します。コマンド構文は次のとおりです。
hadbm extenddomain [--adminpassword=password | --adminpasswordfile=file] [--agent=maurl] hostlist
HADB ホストの IP アドレスは、IPv4 アドレスである必要があります。
詳細については、hadbm-extenddomain(1)を参照してください。
deletedomain を使用して、管理ドメインを削除します。コマンド構文は次のとおりです。
hadbm deletedomain [--adminpassword=password | --adminpasswordfile=file] [--agent=maurl]
詳細については、hadbm-deletedomain(1)を参照してください。
reducedomain を使用して、管理ドメインからホストを削除します。コマンド構文は次のとおりです。
hadbm reducedomain [--adminpassword=password | --adminpasswordfile=file] [--agent=maurl] host_list
詳細については、hadbm-reducedomain(1)を参照してください。
listdomain を使用して、管理ドメイン内に定義されているすべてのホストを一覧表示します。コマンド構文は次のとおりです。
hadbm listdomain [--adminpassword=password | --adminpasswordfile=file] [--agent=maurl]
詳細については、hadbm-listdomain(1)を参照してください。
個々のノードに対して、次の操作を実行できます。
ハードウェアやソフトウェアのアップグレードや交換のためにホストをオフラインにしたために、停止した HADB ノードを手動で起動する必要がある場合があります。また、二重障害以外の何らかの理由でノードが再起動に失敗すると、手動でのノードの起動が必要な場合があります。二重障害から回復する方法の詳細については、「データベースの解除」を参照してください。
たいていの場合には、まず normal 起動レベルを使用してノードの起動を試行することをお勧めします。normal 起動レベルで失敗するかまたはタイムアウトになる場合には、repair 起動レベルを使用する必要があります。
データベース内のノードを起動するには、hadbm startnode コマンドを使用します。構文は次のとおりです。
hadbm startnode [--adminpassword=password | --adminpasswordfile=file] [--agent=maurl] [--startlevel=level] nodeno [dbname]
dbname オペランドにはデータベース名を指定します。デフォルトは hadb です。
nodeno オペランドには起動するノードの番号を指定します。hadbm status を使用すると、データベース内のすべてのノードの番号を表示できます。
詳細については、hadbm-startnode(1)を参照してください。
hadbm startnode コマンドには、ノードの起動レベルを指定する、1 つの特別なオプション --startlevel (省略形 -l) があります。
ノード起動レベルは次のとおりです。
normal (デフォルト): ノード上 (メモリー内およびディスク上のデータデバイスファイル内) でローカルに検出されたデータを使用してノードを起動し、欠落している最新の更新内容をミラーとの間で同期します。
repair: ノードに対して、ローカルデータの破棄およびミラーからのそのデータのコピーを強制します。
clear: ノードのデバイスを再初期化し、ミラーノードから強制的にデータを修復します。デバイスファイルが損傷を受けたかまたはデバイスファイルを含むディスクを交換したため、デバイスファイルを初期化する必要がある場合に使用します。
その他のコマンドオプションの説明は、「汎用オプション」を参照してください。
hadbm startnode 1
ホストマシンのハードウェアやソフトウェアを修復またはアップグレードするために、ノードの停止が必要な場合があります。ノードを停止するには、hadbm stopnode コマンドを使用します。コマンド構文は次のとおりです。
hadbm stopnode [--adminpassword=password | --adminpasswordfile=file] [--agent=maurl] [--no-repair] nodeno [dbname]
nodeno オペランドには停止するノードの番号を指定します。このノード番号のミラーノードが実行中でなければなりません。hadbm status を使用すると、データベース内のすべてのノードの番号を表示できます。
dbname オペランドにはデータベース名を指定します。デフォルトは hadb です。
hadbm stopnode コマンドには、停止したノードを置き換えるスペアノードがないことを示す、1 つの特別なオプション --no-repair (省略形 -R) があります。このオプションを使用しない場合は、スペアノードが起動して、停止したノードの機能を引き継ぎます。
その他のコマンドオプションの説明は、「汎用オプション」を参照してください。詳細については、hadbm-stopnode(1)を参照してください。
hadbm stopnode 1
CPU の過剰な消費など異常な動作が見られる場合には、ノードの再起動が必要なこともあります。
データベース内のノードを再起動するには、hadbm restartnode コマンドを使用します。コマンド構文は次のとおりです。
hadbm restartnode [--adminpassword=password | --adminpasswordfile=file] [--agent=maurl] [--startlevel=level] nodeno [dbname]
dbname オペランドにはデータベース名を指定します。デフォルトは hadb です。
nodeno オペランドには再起動するノードの番号を指定します。hadbm status を使用すると、データベース内のすべてのノードの番号を表示できます。
hadbm restartnode コマンドには、ノードの起動レベルを指定する、1 つの特別なオプション --startlevel (省略形 -l) があります。詳細については、「起動レベルオプション」を参照してください。
その他のコマンドオプションの説明は、「汎用オプション」を参照してください。詳細については、hadbm-restartnode(1)を参照してください。
hadbm restartnode 1
HADB データベースで、次の操作を実行できます。
データベースを起動するには、hadbm start コマンドを使用します。このコマンドは、データベースが停止する前に実行していたすべてのノードを起動します。停止後にデータベースを起動しても、個別に停止されてオフラインになっているノードは起動されません。
コマンド構文は次のとおりです。
hadbm start [--adminpassword=password | --adminpasswordfile=file] [--agent=maurl] [dbname]
dbname オペランドにはデータベース名を指定します。デフォルトは hadb です。
コマンドオプションの説明は、「汎用オプション」を参照してください。詳細については、hadbm-start(1)を参照してください。
hadbm start
データベースを停止してから起動するまでの、データベースが停止している間は、データを使用することができません。データを使用可能にするために、「データベースの再起動」で説明されているようにデータベースを再起動できます。
次の目的で、データベースを停止します。
データベースを削除する。
すべての HADB ノードに影響するシステム保守を実行する。
データベースを停止する前に、そのデータベースを使用する依存 Application Server インスタンスを停止するか、またはそれらのインスタンスが ha 以外の「持続型」を使用するように設定します。
データベースを停止すると、データベース内で実行中のすべてのノードが停止し、データベースの状態が「停止中」になります。データベースの状態の詳細については、「HADB の状態の取得」を参照してください。
データベースを停止するには、hadbm stop コマンドを使用します。コマンド構文は次のとおりです。
hadbm stop [--adminpassword=password | --adminpasswordfile= file] [--agent=maurl] [dbname]
dbname オペランドにはデータベース名を指定します。デフォルトは hadb です。
コマンドオプションの説明は、「汎用オプション」を参照してください。詳細については、hadbm-stop(1)を参照してください。
hadbm stop
タイムアウトの問題が解消されないなどの異常な動作が見られる場合には、データベースの再起動が必要なこともあります。再起動で問題が解決する場合もあります。
データベースを再起動すると、データベースとそのデータは引き続き使用可能です。HADB を停止してから起動するまでの、HADB が停止している間は、データおよびデータベースサービスを使用することができません。これは、デフォルトで hadbm restart がノードの順次再起動を実行するためです。このときノードは 1 つずつ順番に停止して起動します。一方、hadbm stop を実行した場合には、すべてのノードが同時に停止します。
データベースを再起動するには、hadbm restart コマンドを使用します。コマンド構文は次のとおりです。
hadbm restart [--adminpassword=password | --adminpasswordfile=file] [--agent=maurl] [--no-rolling] [dbname]
dbname オペランドにはデータベース名を指定します。デフォルトは hadb です。
このコマンドには特別なオプションが 1 つあります。それは --no-rolling (省略形 -g) で、すべてのノードの一括再起動を指定するオプションですが、サービスの低下を招きます。このオプションを使用しない場合は、データベース内の各ノードが現在の状態またはよりよい状態で再起動されます。
その他のコマンドオプションの説明は、「汎用オプション」を参照してください。詳細については、hadbm-restart(1)を参照してください。
次に例を示します。
hadbm restart
HADB インスタンス内のすべてのデータベースを一覧表示するには、hadbm list コマンドを使用します。コマンド構文は次のとおりです。
hadbm list [--agent=maurl] [--adminpassword=password | --adminpasswordfile=file]
コマンドオプションの説明は、「汎用オプション」を参照してください。詳細については、hadbm-list(1)を参照してください。
次の場合には、データベースを解除します。
hadbm status コマンドから、データベースが稼働していないことがわかる。「HADB の状態の取得」を参照してください。
複数のノードが応答せず、長時間待機状態である。
セッションデータ破損から回復している。「データセッション破損からの回復」を参照してください。
hadbm clear コマンドはデータベースノードを停止し、データベースデバイスを解除してから、ノードを起動します。このコマンドは HADB 内の Application Server スキーマデータストア (テーブル、ユーザー名、パスワードを含む) を消去します。hadbm clear を実行した後で、asadmin configure-ha-cluster を使用してデータスキーマを再作成し、JDBC 接続プールを再設定し、セッション持続性ストアを再ロードしてください。
コマンド構文は次のとおりです。
hadbm clear [--fast] [--spares=number] [--dbpassword=password | --dbpasswordfile= file] [--adminpassword=password | --adminpasswordfile= file] [--agent=maurl] [dbname]
dbname オペランドにはデータベース名を指定します。デフォルトは hadb です。
次の表で、hadbm clear の特別なコマンドオプションについて説明します。その他のオプションの説明は、「汎用オプション」を参照してください。
詳細については、hadbm-clear(1)を参照してください。
表 3–12 hadbm clear オプション
オプション |
説明 |
デフォルト |
---|---|---|
-F |
データベースを初期化している間、デバイスの初期化をスキップします。ディスク記憶装置デバイスが破損している場合は、使用しないでください。 |
適用外 |
-s |
再初期化されたデータベースに配置されるスペアノードの数。この数は、偶数かつデータベース内のノードの数より少ない数である必要があります。 |
前回のスペアの数 |
次に例を示します。
hadbm clear --fast --spares=2 --dbpassword secret123
既存のデータベースを削除するには、hadbm delete コマンドを使用します。このコマンドは、データベースの設定ファイル、デバイスファイル、および履歴ファイルを削除し、共用メモリーリソースを解放します。削除対象のデータベースは、存在していてかつ停止している必要があります。「データベースの停止」を参照してください。
コマンド構文は次のとおりです。
hadbm delete [--adminpassword=password | --adminpasswordfile=file] [--agent=maurl] [dbname]
dbname オペランドにはデータベース名を指定します。デフォルトは hadb です。
コマンドオプションの説明は、「汎用オプション」を参照してください。詳細については、hadbm-delete(1)を参照してください。
コマンド
hadbm delete
は、デフォルトのデータベース hadb を削除します。
次のような症状が見られる場合、セッションデータが破損している可能性があります。
アプリケーションがセッション状態を保存しようとするたびに、Application Server システムログ (server.log ) にエラーメッセージが表示される。
サーバーログのエラーメッセージに、セッションが見つからなかったり、セッションアクティベーション中にセッションをロードできなかったことが示されている。
以前非アクティブにされていたセッションをアクティブにしたところ、そのセッションに空のセッションデータまたは不正なセッションデータが含まれている。
インスタンスに障害が発生する際に、処理を継続したセッションに、空のまたは不正なセッションデータが含まれている。
インスタンスに障害が発生し、処理を継続したセッションをロードしようとするインスタンスがエラーを起こし、サーバーログに、セッションが見つからなかったりロードできなかったことが示されている。
セッションストアが破損していると判断する場合には、次の手順に従って一貫性のある状態に戻します。
セッションストアを消去します。
この処置で問題が正されたかどうかを判定します。問題が正された場合は、これで処置は終わりです。引き続きサーバーログにエラーが表示されるなど、問題が正されていない場合は、処置を継続します。
すべてのノード上のデータスペースを再初期化して、データベース内のデータを消去します。
「データベースの解除」を参照してください。
この処置で問題が正されたかどうかを判定します。問題が正された場合は、これで処置は終わりです。引き続きサーバーログにエラーが表示されるなど、問題が正されていない場合は、処置を継続します。
データベースを削除して再作成します。
「データベースの削除」および 「データベースの作成」を参照してください。
元の HADB 設定を拡張する 2 つの理由があります。
保存されているセッションデータのボリュームが増えて、データデバイス内の既存の記憶スペースを超過している。データデバイスが満杯になったために、トランザクションが異常終了し始める可能性があります。
ユーザー側の負荷が増えて、システムリソースが使い果たされる。さらにホストを追加することが必要です。
この節では、Application Server クラスタまたはデータベースを停止せずに HADB を拡張する方法について説明します。特に、次の点を扱います。
「HADB マシンの管理」にある関連情報も参照してください。
次のような場合に、HADB 記憶スペースを追加します。
ユーザートランザクションが、次のいずれかのエラーメッセージを出して繰り返し異常終了する。
4592: データデバイスに空きブロックがありません
4593: データデバイスに未予約ブロックがありません
hadbm deviceinfo コマンドが終始空きサイズの不足を報告する。「デバイス情報の取得」を参照してください。
ノードに使用されていないディスクスペースがある場合やディスク容量を追加する場合は、既存のノードに記憶スペースを追加することもできます。推奨されているデータデバイスサイズについては、「デバイスサイズの指定」を参照してください。
ノードに記憶スペースを追加するには、hadbm set コマンドを使用してデータデバイスサイズを増やします。
hadbm set DataDeviceSize=size
ここで、size は M バイト単位でのデータデバイスサイズです。
コマンドオプションの説明は、「汎用オプション」を参照してください。
FaultTolerant またはそれ以上のシステム状態にあるデータベースでは、データデバイスサイズを変更することによって、データや可用性を犠牲にすることなくシステムはアップグレードされます。再設定の間も、データベースは稼働状態を維持します。FaultTolerant またはそれ以上の状態ではないシステムでデバイスサイズを変更すると、データの喪失が生じます。データベースの状態の詳細については、「データベースの状態」を参照してください。
次に示すのは、データデバイスサイズを設定するコマンドの例です。
hadbm set DataDeviceSize=1024
HADB が処理能力や記憶容量をさらに必要としている場合には、マシンを追加します。HADB を実行するマシンを新たに追加するには、第 2 章「高可用性 (HA) データベースのインストールと設定」で説明されている手順に従って、HADB パッケージをインストールします。このとき、Application Server を一緒にインストールしてもしなくてもかまいません。ノードトポロジの代替手段については、『Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Deployment Planning Guide』の第 3 章「Selecting a Topology」を参照してください。
新規ノード上で管理エージェントを起動します。
管理ドメインを新規ホストへ拡張します。
詳細については、hadbm extenddomain コマンドを参照してください。
この新規ホスト上で新規ノードを起動します。
詳細については、「ノードの追加」を参照してください。
HADB システムの処理能力と記憶容量を増やすには、新規ノードを作成してデータベースに追加します。
ノードを追加した後で、HADB JDBC 接続プールの次のプロパティーを更新します。
serverlist プロパティー。
通常プールサイズ。一般には、新規ノードにつき 8 つの接続を追加します。詳細については、『Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Deployment Planning Guide』の「System Sizing」を参照してください。
ノードを追加するには、hadbm addnodes コマンドを使用します。コマンド構文は次のとおりです。
hadbm addnodes [--no-refragment] [--spares=sparecount] [--historypath=path] [--devicepath=path] [--set=attr-name-value-list] [--dbpassword=password | --dbpasswordfile=file ] [--adminpassword=password | --adminpasswordfile=file] --hosts=hostlist [dbname]
dbname オペランドにはデータベース名を指定します。デフォルトは hadb です。データベースの状態は、HAFaultTolerant またはFaultTolerant である必要があります。データベースの状態の詳細については、「HADB の状態の取得」を参照してください。
--devicepath と --historypath オプションを指定しない場合、新規ノードは既存データベースと同じデバイスパスを持ち、同じ履歴ファイルを使用します。
ノードを追加すると、既存データの再断片化と再配布が実行されて、システムに新規ノードが組み込まれます。オンラインで再断片化を実行するには、再断片化が終了するまで古いデータと新しいデータを同時に保持できるだけの十分なスペースが HADB ノードのディスクに必要です。つまり、ユーザーデータサイズは、ユーザーデータに使用可能なスペースの 50% を超えてはいけません。詳細については、「デバイス情報の取得」を参照してください。
システムが軽くロードされるときにノードを追加するのが最善です。
次に例を示します。
hadbm addnodes --dbpassword secret123 -adminpassword= password --hosts n6,n7,n8,n9
次の表で、hadbm addnodes の特別なコマンドオプションについて説明します。その他のオプションの説明は、「汎用オプション」を参照してください。
表 3–13 hadbm addnodes オプション
オプション |
説明 |
デフォルト |
---|---|---|
-r |
ノード作成中はデータベースを再断片化しないでください。その場合には、後で hadbm refragment コマンドを使用してデータベースを再断片化し、新規ノードを使用します。再断片化の詳細については、「データベースの再断片化」を参照してください。 再断片化するための十分なデバイススペースがない場合は、より多い数のノードを持つデータベースを作成し直します。「データベースの再作成によるノードの追加」を参照してください。 |
適用外 |
-s |
すでに存在するスペアノードに追加する新規スペアノードの数。この数は、偶数、かつ追加するノードの数以下でなければなりません。 |
0 |
-d |
デバイスへのパス。デバイスは次のとおりです。
|
Solaris および Linux: HADB_install_dir/device Windows: C:\Sun\AppServer\SUNWhadb\vers。ここで、vers は HADB バージョン番号です。 |
-H |
データベース内の新規ノード用の新しいホスト名を一覧にしたコンマ区切りリスト。リスト中のコンマで区切られた項目ごとに 1 つのノードが作成されます。ノードの数は偶数でなければなりません。HADB ホストの IP アドレスは、IPv4 アドレスである必要があります。 重複するホスト名を使用すると、同じマシン上に異なるポート番号が指定された複数のノードが作成されます。同じマシン上のノードがミラーノードではないことを確認してください。 奇数番号のノードが一方の DRU に配置され、偶数番号のノードは他方の DRU に配置されます。--spares を使用すると、最も大きい番号のノードが新規スペアノードとなります。 二重のネットワークインタフェースを持つデータベースを作成した場合も、同じ方法で新規ノードを構成する必要があります。「ネットワーク冗長性の設定」を参照してください。 |
なし |
データベースを再断片化して、新たに作成したノードにデータを格納します。再断片化により、すべてのアクティブなノードにデータが均一に分散します。
データベースを再断片化するには、hadbm refragment コマンドを使用します。コマンド構文は次のとおりです。
hadbm refragment [--dbpassword=password | --dbpasswordfile=file] [--adminpassword=password | --adminpasswordfile=file] [--agent=maurl] [dbname]
dbname オペランドにはデータベース名を指定します。デフォルトは hadb です。データベースの状態は、HAFaultTolerant またはFaultTolerant である必要があります。データベースの状態の詳細については、「HADB の状態の取得」を参照してください。
コマンドオプションの説明は、「汎用オプション」を参照してください。詳細については、hadbm-refragment(1)を参照してください。
オンラインで再断片化を実行するには、再断片化が終了するまで古いデータと新しいデータを同時に保持できるだけの十分なスペースが HADB ノードのディスクに必要です。つまり、ユーザーデータサイズは、ユーザーデータに使用可能なスペースの 50% を超えてはいけません。詳細については、「デバイス情報の取得」を参照してください。
システムが軽くロードされるときにデータベースを再断片化するのが最善です。
何回試してもこのコマンドが失敗する場合は、「データベースの再作成によるノードの追加」を参照してください。
次に例を示します。
hadbm refragment --dbpassword secret123
新規ノードを追加して、データデバイススペースの不足やその他の理由からオンラインでの再断片化が何度も失敗する場合は、新規ノードを持つデータベースを再作成します。これは、既存のユーザーデータとスキーマデータの喪失を招きます。
次の手順により、プロセス全体の HADB 可用性を維持することができます。
各 Application Server インスタンスに対して、次のようにします。
ロードバランサの Application Server インスタンスを無効にします。
セッション持続性を無効にします。
Application Server インスタンスを再起動します。
ロードバランサの Application Server インスタンスを再度有効にします。
可用性を維持する必要がない場合は、ロードバランサのすべてのサーバーインスタンスを無効にしてすぐに再度有効にできます。こうすることで、時間を節約するとともに、古いセッションデータのフェイルオーバーを防ぎます。
「データベースの停止」で説明されている手順に従って、データベースを停止します。
「データベースの削除」で説明されている手順に従って、データベースを削除します。
「データベースの作成」で説明されている手順に従って、追加のノードでデータベースを再作成します。
「JDBC 接続プールの設定」で説明されている手順に従って、JDBC 接続プールを再設定します。
セッション持続性ストアを再ロードします。
各 Application Server インスタンスに対して、次のようにします。
ロードバランサの Application Server インスタンスを無効にします。
セッション持続性を有効にします。
Application Server インスタンスを再起動します。
ロードバランサの Application Server インスタンスを再度有効にします。
可用性を維持する必要がない場合は、ロードバランサのすべてのサーバーインスタンスを無効にしてすぐに再度有効にできます。こうすることで、時間を節約するとともに、古いセッションデータのフェイルオーバーを防ぎます。
次の方法で、HADB のアクティビティーを監視できます。
これらの節では、hadbm status、hadbm deviceinfo、および hadbm resourceinfo コマンドについて簡潔に説明します。HADB 情報の解釈については、『Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Performance Tuning Guide』の「Performance」を参照してください。
hadbm status コマンドを使用して、データベースまたはそのノードの状態を表示します。コマンド構文は次のとおりです。
hadbm status [--nodes] [--adminpassword=password | --adminpasswordfile=file] [--agent=maurl] [dbname]
dbname オペランドにはデータベース名を指定します。デフォルトは hadb です。
--nodes オプション (省略形 -n) は、データベース内の各ノードに関する情報を表示します。詳細については、「ノードの状態」を参照してください。その他のコマンドオプションの説明は、「汎用オプション」を参照してください。
詳細については、hadbm-status(1)を参照してください。
次に例を示します。
hadbm status --nodes
データベースの状態には、データベースの現在の状況が要約されます。次の表で、データベースが取りうる状態の種類について説明します。
表 3–14 HADB の状態
データベースの状態 |
説明 |
---|---|
高可用性耐障害 (HAFaultTolerant) |
データベースに耐障害性があり、DRU ごとに少なくとも 1 つのスペアノードを備えている。 |
耐障害 |
すべてのミラーノードペアが実行中である。 |
稼働 |
各ミラーノードペア内の少なくとも 1 つのノードが実行中である。 |
非稼働 |
1 つ以上のミラーノードペアで、両方のノードがなくなっている。 データベースが非稼働状態である場合は、「データベースの解除」で説明されている手順に従って、データベースを解除します。 |
停止 |
データベース内に実行中のノードがない。 |
不明 |
データベースの状態を判定できない。 |
--nodes オプションを使用して、hadbm status コマンドでデータベース内の各ノードに関する次の情報を表示させます。
ノード番号
ノードが実行中であるマシンの名前
ノードのポート番号
ノードのロール。ロールとその意味のリストについては、「ノードのロール」を参照してください。
ノードの状態。状態とその意味のリストについては、「ノードの状態」を参照してください。
対応するミラーノードの番号。
次の節に説明されているように、ノードのロールと状態は変更される場合があります。
ノードには作成時にロールが割り当てられます。次ののいずれかのロールを担います。
アクティブ:データを格納し、クライアントアクセスを許可します。アクティブノードはミラー化されたペアになっています。
スペア:クライアントアクセスを許可しますが、データを格納しません。データデバイスを初期化した後に、他のデータノードを監視して、あるノードが使用不能であれば修復を開始します。
オフライン:ロールが変更されるまでサービスを提供しません。再びオンラインになったときに、元のロールに戻される場合があります。
シャットダウン:アクティブとオフラインの中間の段階で、スペアノードによる機能の引き継ぎを待機している状態です。スペアノードによる引き継ぎが完了すると、ノードはオフラインになります。
ノードは次のいずれかの状態になります。
起動中:ノードは起動中です。
待機中:ノードは起動レベルを決定できず、オフラインになっています。ノードがこの状態のまま 2 分を経過した場合は、そのノードを停止し、repair レベルで起動してください。「ノードの停止」、「ノードの起動」、および 「データベースの解除」を参照してください。
実行中:ノードはロールに応じたすべてのサービスを提供しています。
停止中:ノードは停止処理を行なっています。
停止:ノードは停止しています。停止したノードの修復は禁止されています。
回復中:ノードは回復処理を行っています。ノードに障害が発生した場合、ミラーノードがそのノードの機能を引き継ぎます。障害が発生したノードは、メインメモリーまたはディスク内のデータとログレコードを使用して回復を試行します。また、ミラーノードのログレコードを使用して、障害発生時に実行していたトランザクションの回復に努めます。回復に成功した場合には、そのノードが再びアクティブになります。回復が失敗した場合は、ノードの状態が「修復中」に変更されます。
修復中:ノードは修復処理を行っています。この操作で、ノードは再初期化され、ミラーノードからデータとログレコードがコピーされます。修復には回復より時間がかかります。
次の目的で、HADB データ (ディスク記憶装置) デバイスの空き領域を監視します。
ディスク容量の使用傾向を定期的にチェックする。
予防保守の一環として。ユーザー側の負荷が増え、データベース設定の大きさの変更やスケールを考慮している場合。
データベースを拡大する操作の一部として。hadbm addnodes を実行して新規ノードをシステムに追加する前に、十分なデバイス空間があるかどうかをチェックします。ノードを追加するには、既存のノード上に 40 〜 50% ほどの空き領域が必要となることを念頭に置いてください。
履歴ファイルや server.log ファイルに次のようなメッセージが表示された場合。
No free blocks on data devices
No unreserved blocks on data devices .
hadbm deviceinfo コマンドを使用して、データデバイス内の空き領域に関する情報を取得します。このコマンドを実行すると、データベースの各ノードについて次の情報が表示されます。
割り当て済みの合計デバイスサイズ (Totalsize)。単位は M バイト。
空き領域 (Freesize)。単位は M バイト。
現在使用されているデバイスの比率 (Usage)
コマンド構文は次のとおりです。
hadbm deviceinfo [--details] [--adminpassword=password | --adminpasswordfile=file] [--agent=maurl] [dbname]
dbname オペランドにはデータベース名を指定します。デフォルトは hadb です。
--details オプションを指定すると、次の追加情報が表示されます。
デバイスが実行した読み取り操作の数。
デバイスが実行した書き込み操作の数。
デバイスの名前。
その他のコマンドオプションの説明は、「汎用オプション」を参照してください。
詳細については、hadbm-deviceinfo(1)を参照してください。
ユーザーデータ用に使用可能な空き容量を算定するには、合計デバイスサイズから HADB 用に予約済みの容量 (LogBufferSize の 4 倍 + デバイスサイズの 1%) を減算します。ログバッファーのサイズがわからない場合は、コマンド hadbm get logbufferSize を使用してください。たとえば、合計デバイスサイズが 128M バイトで LogBufferSize が 24M バイトの場合、ユーザーデータ用に使用可能な容量は 128 – (4 x 24) = 32M バイトです。この 32M バイトのうち、半分はレプリケートデータ用に使用され、約 1 % が索引用に使用されるため、実ユーザーデータに使用できるのは 25 % だけです。
ユーザーデータに使用可能な容量は、合計サイズと予約済みサイズの差です。将来的にデータを再断片化するのであれば、空き容量がユーザーデータに使用可能な領域の 50% にほぼ等しくなるようにする必要があります。再断片化がふさわしくない場合は、データデバイスを最大限度まで活用することができます。システムのデバイス容量が不足すると、リソース消費警告が履歴ファイルに書き込まれます。
HADB の調整に関する詳細については、『Sun Java System Application Server Performance Tuning Guide』を参照してください。
コマンド
hadbm deviceinfo --details
を実行すると、次の例のような結果が表示されます。
NodeNO Totalsize Freesize Usage NReads NWrites DeviceName 0 128 120 6% 10000 5000 C:\Sun\SUNWhadb\hadb.data.0 1 128 124 3% 10000 5000 C:\Sun\SUNWhadb\hadb.data.1 2 128 126 2% 9500 4500 C:\Sun\SUNWhadb\hadb.data.2 3 128 126 2% 9500 4500 C:\Sun\SUNWhadb\hadb.data.3
hadbm resourceinfo コマンドは、HADB ランタイムリソース情報を表示します。この情報を使用して、リソースの競合を識別し、パフォーマンス上のボトルネックを削減するのに役立てることができます。詳細については、『Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Performance Tuning Guide』の「Tuning HADB」を参照してください。
コマンド構文は次のとおりです。
hadbm resourceinfo [--databuf] [--locks] [--logbuf] [--nilogbuf] [--adminpassword=password | --adminpasswordfile=file] [--agent=maurl] [dbname]
dbname オペランドにはデータベース名を指定します。デフォルトは hadb です。
次の表で、hadbm resourceinfo の特別なコマンドオプションについて説明します。その他のコマンドオプションの説明は、「汎用オプション」を参照してください。
詳細については、hadbm-resourceinfo(1)を参照してください。
表 3–15 hadbm resourceinfo コマンドオプション
オプション |
説明 |
---|---|
-d |
データバッファープール情報を表示します。 詳細については、下記 「データバッファープール情報」を参照してください。 |
-l |
ロック情報を表示します。 詳細については、下記 「ロック情報」を参照してください。 |
-b |
ログバッファー情報を表示します。 詳細については、下記 「ログバッファー情報」を参照してください。 |
-n |
ノードの内部ログバッファー情報を表示します。 詳細については、下記 「ノード内部ログバッファー情報」を参照してください。 |
データバッファープール情報には、次の内容が含まれます。
NodeNo: ノード番号。
Avail: プール内の使用可能容量の合計。単位は M バイト。
Free: 使用可能な空き容量。単位は M バイト。
Access: 起動時から現在までにデータベースがデータバッファーにアクセスした累積回数。
Misses: データベース起動時から現在までに発生したページフォルトの累積回数。
Copy-on-Write: チェックポイントのためにデータバッファーに内部的にコピーされたページの累積数。
ユーザートランザクションがレコードに対して操作を実行するときには、そのレコードを含むページはデータバッファープール内になければなりません。そのようになっていないと、ミス またはページフォルトが生じます。すると、ディスク上のデータデバイスフィルからページが取り出されるまで、トランザクションは待機する必要があります。
ミスの比率が高い場合は、データバッファープールを増やしてください。ミスのカウントは累積回数なので、定期的に hadbm resourceinfo を実行し、二回分のカウントの差を調べて、ミスの比率の傾向を確認します。空き容量が非常に少ないとしても、チェックポイントメカニズムによって新たに使用可能なブロックが作成されるので、心配する必要はありません。
次に例を示します。
NodeNO Avail Free Access Misses Copy-on-Write 0 256 128 100000 50000 10001 256 128 110000 45000 950 |
ロック情報には、次の内容が含まれます。
NodeNo: ノード番号。
Avail: ノード上で使用可能なロックの合計数。
Free: 使用されていないロックの数。
Waits: ロックの獲得を待機しているトランザクションの数。これは累積数です。
1 つのトランザクションが、ノード上で利用可能なロックの 25% を超えて使用することはできません。そのため、規模の大きい操作を実行するトランザクションは、この制限を認識している必要があります。そのようなトランザクションはバッチ処理で実行するのが最善です。その場合、それぞれのバッチは別個のトランザクションとして扱われ、バッチごとにコミット操作を行うことになります。このようにする必要があるのは、繰り返し可能な読み取り遮断レベルで実行する読み取り操作、および削除、挿入、更新操作が、トランザクション終了後にのみ解放されるロックを使用するからです。
NumberOfLocks を変更するには、「履歴ファイルの消去と保存」を参照してください。
次に例を示します。
NodeNO Avail Free Waits 0 50000 20000 101 50000 20000 0 |
ログバッファー情報には、次の内容が含まれます。
NodeNo: ノード番号。
Available: ログバッファー用に割り当てられたメモリーの容量。単位は M バイト。
Free: 空きメモリーの容量。単位は M バイト。
空き容量が非常に少ないとしても、HADB がログバッファーの圧縮を開始するので、心配する必要はありません。HADB は、リングバッファの先頭から圧縮を開始し、連続するログレコードに対して圧縮を実行します。ノードが実行していないのにミラーノードが受信しているログレコードを HADB が検出すると、圧縮は続行できなくなります
次に例を示します。
NodeNO Avail Free 0 16 21 16 3 |
ノード内部ログバッファー情報には、次の内容が含まれます。
ノード番号。
Available: ログデバイス用に割り当てられたメモリーの容量。単位は Mバイト。
Free: 空きメモリーの容量。単位は M バイト。
次に例を示します。
NodeNO Avail Free
0 16 21 16 3
HADB は、ミラーノードにデータをレプリケートすることによって耐障害性を実現します。『Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Deployment Planning Guide 』に説明されているように、本稼働環境では、ミラーノードはミラーリング対象のノードとは別個の DRU 上に配置されます。
障害とは、ハードウェアの故障、停電、オペレーティングシステムの再起動など予期しない出来事のことです。HADB は、単一の障害に対する耐性を備えています。したがって、単一のノード、ミラーノードペアを持たない単一のマシン、同一の DRU に属する 1 つ以上のマシン、単一の DRU 全体などが対象となります。しかし HADB は、二重障害、すなわち 1 つ以上のミラーノードペアで同時に起きた障害からは自動的に回復しません。二重障害が起きた場合は、HADB を解除してセッションストアを再作成する必要があり、このとき HADB のデータはすべて消去されます。
対象のマシンが 1 つか複数かに応じて、保守手順は異なります。
この手順は計画的な保守と予定外の保守の両方に適用でき、それによって HADB の利用が中断されることはありません。
保守手順を実行し、マシンを稼働状態にします。
ma が実行中であることを確認します。
ma が Windows サービスとして実行されているか、または init.d スクリプトの下で実行されている場合 (配備環境で推奨されている方法)、おそらくそれはオペレーティングシステムによって起動されています。そうでない場合は ma を手動で起動します。「管理エージェントの起動」を参照してください。
マシン上のすべてのノードを起動します。
詳細については、「ノードの起動」を参照してください。
ノードがアクティブで実行状態であるかどうかを確認します。
詳細については、「HADB の状態の取得」を参照してください。
計画的な保守には、ハードウェアとソフトウェアのアップグレードなどの操作が含まれます。この手順によって HADB の利用が中断されることはありません。
1 つ目の DRU 内の各スペアマシンに対して、「単一のマシンに対して保守を実行するには」で説明されている手順に従って、単一マシン用の手順を順番に繰り返します。
1 つ目の DRU 内のアクティブな各マシンに対して、「単一のマシンに対して保守を実行するには」で説明されている手順に従って、単一マシン用の手順を順番に繰り返します。
2 番目の DRU に対して、ステップ 1 と 2 を繰り返します。
この手順は、HADB が 1 つまたは複数のマシン上に配置されている場合に適用されます。保守手順の実行中は、HADB サービスが中断されます。
HADB を停止します。「データベースの停止」を参照してください。
保守手順を実行し、すべてのマシンを稼働状態にします。
ma が実行中であることを確認します。
HADB を起動します。
詳細については、「データベースの起動」を参照してください。
最後のステップを完了した後に、HADB は再び利用可能になります。
データベースの状態を確認します。
「HADB の状態の取得」を参照してください。
データベースの状態が「稼働」またはそれよりよい場合は、次のようにします。
予定外の保守を必要とするマシンに、ミラーノードは含まれません。DRU 別に、障害の発生した各マシンに対して、単一マシン用の保守手順を行います。HADB サービスは中断されません。
データベースの状態が「非稼働」の場合は、次のようにします。
予定外の保守を必要とするマシンに、ミラーノードが含まれます。たとえば、HADB 全体が障害の発生した単一のマシンに置かれているようなケースです。まず、すべてのマシンを稼働状態にします。次に、HADB を解除して、セッションストアを再作成します。「データベースの解除」を参照してください。この手順により、HADB サービスは中断されます。
HADB 履歴ファイルには、すべてのデータベース操作とエラーメッセージが記録されます。HADB は既存の履歴ファイルの末尾に記録を追加していくため、時間の経過とともにファイルのサイズは大きくなります。ディスク容量を節約し、ファイルが大きくなりすぎないようにするために、履歴ファイルを定期的に消去および保存します。
データベースの履歴ファイルを消去するには、hadbm clearhistory コマンドを使用します。
コマンド構文は次のとおりです。
hadbm clearhistory [--saveto=path] [dbname] [--adminpassword=password | --adminpasswordfile=file] [--agent=maurl]
dbname オペランドにはデータベース名を指定します。デフォルトは hadb です。
--saveto オプション (省略形 -o) は、古い履歴ファイルを格納するディレクトリを指定します。このディレクトリには適切な書き込み権が必要です。その他のコマンドオプションの説明は、「汎用オプション」を参照してください。
詳細は、hadbm-clearhistory(1)を参照してください。
hadbm create コマンドの --historypath オプションは、履歴ファイルの場所を特定します。履歴ファイルの名前は dbname.out.nodeno という形式です。hadbm createについては、「データベースの作成」を参照してください。
履歴ファイルの各メッセージには、次の情報が含まれています。
メッセージを生成した HADB プロセスの省略名。
メッセージの種類:
INF - 一般情報
WRN - 警告
ERR - エラー
DBG - デバッグ情報
時刻表示。時刻は、ホストマシンのシステムクロックから取得されます。
ノードが停止または起動したときにシステムで生じるサービスセットの変更。
リソースの不足に関するメッセージには、文字列「HIGH LOAD」が含まれています。
履歴ファイルに含まれるすべての項目に関する詳しい知識は必要ありません。何らかの理由で履歴ファイルを詳細に分析する必要がある場合には、Sun カスタマサポートにご連絡ください。