17.34.3 AWS環境でのマルチノード構成の構築
AWS環境でのマルチノード構成の構築手順について説明します。ここでの説明は,HAモニタありのマルチノード構成の新規導入を前提としています。
- 〈この項の構成〉
(1) HAモニタのインストール
プライマリノードおよび全セカンダリノードのインスタンスにHAモニタをインストールしてください。HAモニタのインストール方法については,マニュアルHAモニタ パブリッククラウド編のシステムの構築を参照してください。
- メモ
-
ワーカーノードはHAモニタの管理対象外のため,ワーカーノードのインスタンスにはHAモニタをインストールする必要はありません。
(2) HADBサーバのインストールおよび環境設定
全ノードのインスタンスにHADBサーバをインストールし,環境設定を行ってください。詳細については,「17.4.2 HADBサーバのインストールおよび環境設定」を参照してください。
(3) HADBクライアントのインストールおよび環境設定
HADBクライアントのインストール,および環境設定については,マニュアルHADB AP開発ガイドのHADBクライアントの環境設定(ODBCドライバおよびCLI関数を使用する場合)を参照してください。
(4) udevルールの設定
各インスタンスで使用するノード切り替え対象のファイルシステム,およびDBエリアファイルで使用するディスク(EBS(io2))のデバイス名を固定するために,全ノードでudevルールを設定してください。
手順
次のすべての操作は,OSのスーパユーザで実行してください。
-
udevルールファイルを作成する
/etc/udev/rules.dディレクトリ下に,ディスクのデバイス名を固定するためのudevルールファイル(/etc/udev/rules.d/99-hadb.rules)を作成してください。
<udevルールファイルの指定例>
ACTION=="add|change", SUBSYSTEMS=="block", ENV{ID_SERIAL}=="Amazon Elastic Block Store_vol0081d861d83bc10a6", SYMLINK+="hadb_sys" ...[a] ACTION=="add|change", SUBSYSTEMS=="block", ENV{ID_SERIAL}=="Amazon Elastic Block Store_vol0f6af0e90cad79723", SYMLINK+="hadb_syndict" ...[b] ACTION=="add|change", SUBSYSTEMS=="block", ENV{ID_SERIAL}=="Amazon Elastic Block Store_vol0db4be9c284a04033", SYMLINK+="hadb_mst" ...[c] ACTION=="add|change", SUBSYSTEMS=="block", ENV{ID_SERIAL}=="Amazon Elastic Block Store_vol0efe890a19d4b2330", SYMLINK+="hadb_dic" ...[d] ACTION=="add|change", SUBSYSTEMS=="block", ENV{ID_SERIAL}=="Amazon Elastic Block Store_vol0431a7bfcf7388f72", SYMLINK+="hadb_stbl" ...[e] ACTION=="add|change", SUBSYSTEMS=="block", ENV{ID_SERIAL}=="Amazon Elastic Block Store_vol0d5ca81d622e73022", SYMLINK+="hadb_tbl01" ...[f] ACTION=="add|change", SUBSYSTEMS=="block", ENV{ID_SERIAL}=="Amazon Elastic Block Store_vol05405d4eea38470e7", SYMLINK+="hadb_idx01" ...[g][説明]
-
プライマリノードまたはセカンダリノードの場合,システムディレクトリ用のファイルシステムで使用するディスク(EBS(io2))を指定してください。
-
プライマリノードまたはセカンダリノードの場合,同義語辞書ファイルを格納するファイルシステムで使用するディスク(EBS(io2))を指定してください。
-
マスタディレクトリ用DBエリアで使用するディスク(EBS(io2))を指定してください。
-
ディクショナリ用DBエリアで使用するディスク(EBS(io2))を指定してください。
-
システム表用DBエリアで使用するディスク(EBS(io2))を指定してください。
-
データ用DBエリア(ADBUTBL01)で使用するディスク(EBS(io2))を指定してください。
-
データ用DBエリア(ADBUIDX01)で使用するディスク(EBS(io2))を指定してください。
-
-
全ノードのOSを再起動する
設定したudevルールを反映させるために,全ノードのOSを再起動してください。
(5) HAモニタの環境設定
プライマリノードおよび全セカンダリノードのインスタンスでHAモニタの環境設定をしてください。HAモニタの環境設定方法については,マニュアルHAモニタ Linux(R)(x86)編のシステムの構築,およびマニュアルHAモニタ パブリッククラウド編のシステムの構築を参照してください。
ここでは,HAモニタの環境設定をする際に留意することについて説明します。
- メモ
-
HAモニタの環境設定は,プライマリノードおよびセカンダリノードのインスタンスで実施します。ワーカーノードのインスタンスでは,HAモニタの環境設定は必要ありません。
(a) 環境変数の設定
設定する環境変数については,「17.4.4 HAモニタの環境設定」の「(1) 環境変数の設定」を参照してください。
(b) sysdefファイルの作成
HAモニタのsysdefファイルを作成してください。
- ■指定値が決まっているオペランド
-
HAモニタのsysdefファイルに指定するオペランドのうち,次のオペランドは指定値が決まっています。
-
public_cloudオペランド
useを指定してください。
public_cloudオペランドの詳細については,マニュアルHAモニタ パブリッククラウド編のパブリッククラウド環境固有のHAモニタの環境設定を参照してください。
-
usrcommandオペランド
このオペランドの指定は省略してください。
-
fence_resetオペランド,fence_scsiオペランド,およびfence_lanオペランド
これらのオペランドの指定は省略してください。
次のオペランドの指定値については,「17.4.4 HAモニタの環境設定」の「(2) sysdefファイルの指定」を参照してください。
-
addressオペランド
-
monbegin_restartオペランド
-
multistandbyオペランド
-
termcmd_at_abortオペランド
- メモ
-
上記のオペランド(public_cloudオペランドを除く)の詳細については,マニュアルHAモニタ Linux(R)(x86)編のHAモニタの環境設定(sysdef)を参照してください。
-
- ■sysdefファイルの指定例
-
ここでの指定例は,「図17‒14 AWS環境でのシステム構成例(HAモニタありのマルチノード構成)」のシステム構成を前提としています。
-
プライマリノード(hadb01)のsysdefファイルの指定例
environment name hadb01, address 1, ...1 patrol 30, ...2 lan path11, ...3 lanport HAmon1; ...4 function pathpatrol 240, connect_retry 5:200, monbegin_restart nouse, multistandby use, termcmd_at_abort nouse, public_cloud use; ...5[説明]
-
このノードのリセット優先度を指定します。このノードは,プライマリノードのため,リセット優先度をいちばん高くする必要があるので1を指定します。
-
patrolオペランドには,30以下の値を指定してください。
-
HAモニタの監視パスとして使用するLANのホスト名を指定します。IPアドレス172.16.0.11に対応するホスト名path11を指定します。
-
HAモニタの監視パスとして使用するLANのサービス名を指定します。ポート番号7777に対応するサービス名HAmon1を指定します。
-
AWS環境でHAモニタを使用するため,useを指定します。
-
-
セカンダリノード(hadb02)のsysdefファイルの指定例
environment name hadb02, address 2, ...1 patrol 30, ...2 lan path21, ...3 lanport HAmon1; ...4 function pathpatrol 240, connect_retry 5:200, monbegin_restart nouse, multistandby use, termcmd_at_abort nouse, public_cloud use; ...5[説明]
-
このノードのリセット優先度を指定します。このノードは,プライマリノードの次にリセット優先度を高くしたいため,2を指定します。
-
patrolオペランドには,30以下の値を指定してください。
-
HAモニタの監視パスとして使用するLANのホスト名を指定します。IPアドレス172.16.0.12に対応するホスト名path21を指定します。
-
HAモニタの監視パスとして使用するLANのサービス名を指定します。ポート番号7777に対応するサービス名HAmon1を指定します。
-
AWS環境でHAモニタを使用するため,useを指定します。
-
-
セカンダリノード(hadb03)のsysdefファイルの指定例
environment name hadb03, address 3, ...1 patrol 30, ...2 lan path31, ...3 lanport HAmon1; ...4 function pathpatrol 240, connect_retry 5:200, monbegin_restart nouse, multistandby use, termcmd_at_abort nouse, public_cloud use; ...5[説明]
-
このノードのリセット優先度を指定します。このノードは,セカンダリノードhadb02の次にリセット優先度を高くしたいため,3を指定します。
-
patrolオペランドには,30以下の値を指定してください。
-
HAモニタの監視パスとして使用するLANのホスト名を指定します。IPアドレス172.16.0.13に対応するホスト名path31を指定します。
-
HAモニタの監視パスとして使用するLANのサービス名を指定します。ポート番号7777に対応するサービス名HAmon1を指定します。
-
AWS環境でHAモニタを使用するため,useを指定します。
-
-
(c) serversファイルの作成
HAモニタのserversファイルを作成してください。
- ■指定値が決まっているオペランド
-
HAモニタのserversファイルに指定するオペランドのうち,次のオペランドは指定値が決まっています。
-
patrolcommandオペランド
このオペランドの指定は省略してください。
-
ptrlcmd_exオペランド
HADB用の設定を記述したサーバの監視コマンドファイルの絶対パスを指定してください。サーバの監視コマンドファイルはひな形を基に作成してください。作成方法については,「(h) サーバの監視コマンドファイルの作成」,およびマニュアルHAモニタ Linux(R)(x86)編のサーバの監視コマンドの作成を参照してください。
-
ptrlcmd_ex_interオペランド
3を指定してください
-
ptrlcmd_ex_retryオペランド
0を指定してください。
-
ptrlcmd_ex_tmoutオペランド
5を指定してください。
-
sby_termcommandオペランド
HADB用の設定を記述した待機サーバの停止コマンドの絶対パスを指定してください。待機サーバの停止コマンドはひな形を基に作成してください。作成方法については,「(i) 待機サーバの停止コマンドファイルの作成」,およびマニュアルHAモニタ Linux(R)(x86)編の待機サーバの停止時に実行するコマンドの作成を参照してください。
-
sby_ptrlcmd_exオペランド
HADB用の設定を記述した待機サーバの監視コマンドの絶対パスを指定してください。待機サーバの監視コマンドはひな形を基に作成してください。作成方法については,「(j) 待機サーバの監視コマンドファイルの作成」,およびマニュアルHAモニタ Linux(R)(x86)編の待機サーバの監視時に実行するコマンドの作成を参照してください。
-
sby_ptrlcmd_ex_interオペランド
3を指定してください
-
sby_ptrlcmd_ex_retryオペランド
0を指定してください。
-
sby_ptrlcmd_ex_tmoutオペランド
5を指定してください。
-
scsi_deviceオペランド,dmmp_deviceオペランド
これらのオペランドの指定は省略してください。
次のオペランドの指定値については,「17.4.4 HAモニタの環境設定」の「(3) serversファイルの指定」を参照してください。
-
nameオペランド
-
acttypeオペランド
-
termcommandオペランド
-
initialオペランド
-
diskオペランド
-
fs_nameオペランド
-
fs_mount_dirオペランド
-
fs_mount_optオペランド
-
lan_updownオペランド
-
servexec_retryオペランド
-
waitserv_execオペランド
-
ip_neckオペランド
-
uoc_neckオペランド
-
vg_neckオペランド
-
fs_neckオペランド
-
actcommandオペランド
-
standbypriオペランド
- メモ
-
serversファイルに指定する上記のオペランドの詳細については,マニュアルHAモニタ Linux(R)(x86)編のサーバ対応の環境設定(servers)を参照してください。
-
- ■serversファイルの指定例
-
ここでの指定例は,「図17‒14 AWS環境でのシステム構成例(HAモニタありのマルチノード構成)」のシステム構成を前提としています。
-
プライマリノード(hadb01)のserversファイルの指定例
server name /HADB/server, ...1 alias HADB, acttype monitor, disk /dev/vg_hadb:/dev/vg_hadb02, ...2 lan_updown use, fs_name /dev/vg_hadb/sys_hadb:/dev/vg_hadb02/hadb_syndict, ...3 fs_mount_dir /HADB/db/ADBSYS:/mnt/syndict, ...4 fs_mount_opt "-t ext4 -o defaults,noatime,_netdev": ...5 "-t ext4 -o defaults,noatime,_netdev", actcommand "/HADB/scripts/multinode_act.sh", ...6 termcommand "/HADB/scripts/multinode_term.sh", ...7 ptrlcmd_ex "/HADB/scripts/multinode_patrol_ex.sh", ...8 ptrlcmd_ex_inter 3, ptrlcmd_ex_retry 0, ptrlcmd_ex_tmout 5, sby_termcommand "/HADB/scripts/multinode_sby_term.sh", ...9 sby_ptrlcmd_ex "/HADB/scripts/multinode_patrol_ex.sh", ...10 sby_ptrlcmd_ex_inter 3, sby_ptrlcmd_ex_retry 0, sby_ptrlcmd_ex_tmout 5, servexec_retry 0, waitserv_exec yes, ip_neck use, uoc_neck nouse, vg_neck use:use, ...11 fs_neck use:use, ...12 initial online; ...13
[説明]
-
サーバディレクトリの絶対パスを指定します。
-
次のディレクトリを作成するファイルシステムがあるVGの絶対パスを指定します。
-
システムディレクトリ
-
同義語辞書ファイルの格納ディレクトリ(同義語検索を行う場合に作成するディレクトリです)
-
-
2.のディレクトリを作成するファイルシステムを作成したLVの絶対パスを指定します。
-
2.のディレクトリを作成するファイルシステムをマウントするマウントポイントの絶対パスを指定します。
-
2.のディレクトリを作成するファイルシステムをマウントするためのmountコマンドのオプションを指定します。
-
マルチノード機能で使用するサーバの起動コマンドの絶対パスを指定します。
-
マルチノード機能で使用するサーバの停止コマンドの絶対パスを指定します。
-
マルチノード機能で使用するサーバの監視コマンドの絶対パスを指定します。
-
マルチノード機能で使用する待機サーバの停止コマンドの絶対パスを指定します。
-
マルチノード機能で使用する待機サーバの監視コマンドの絶対パスを指定します。
-
2.のディレクトリを作成するファイルシステムがあるVGに対しては,useを指定します。
-
2.のディレクトリを作成するファイルシステムに対しては,useを指定します。
-
プライマリノードとするため,onlineを指定します。
-
-
セカンダリノード(hadb02)のserversファイルの指定例
server name /HADB/server, ...1 alias HADB, acttype monitor, disk /dev/vg_hadb:/dev/vg_hadb02, ...2 lan_updown use, fs_name /dev/vg_hadb/sys_hadb:/dev/vg_hadb02/hadb_syndict, ...3 fs_mount_dir /HADB/db/ADBSYS:/mnt/syndict, ...4 fs_mount_opt "-t ext4 -o defaults,noatime,_netdev": ...5 "-t ext4 -o defaults,noatime,_netdev", actcommand "/HADB/scripts/multinode_act.sh", ...6 termcommand "/HADB/scripts/multinode_term.sh", ...7 ptrlcmd_ex "/HADB/scripts/multinode_patrol_ex.sh", ...8 ptrlcmd_ex_inter 3, ptrlcmd_ex_retry 0, ptrlcmd_ex_tmout 5, sby_termcommand "/HADB/scripts/multinode_sby_term.sh", ...9 sby_ptrlcmd_ex "/HADB/scripts/multinode_patrol_ex.sh", ...10 sby_ptrlcmd_ex_inter 3, sby_ptrlcmd_ex_retry 0, sby_ptrlcmd_ex_tmout 5, servexec_retry 0, waitserv_exec yes, ip_neck use, uoc_neck nouse, vg_neck use:use, ...11 fs_neck use:use, ...12 initial standby, ...13 standbypri 1; ...14
[説明]
-
サーバディレクトリの絶対パスを指定します。
-
次のディレクトリを作成するファイルシステムがあるVGの絶対パスを指定します。
-
システムディレクトリ
-
同義語辞書ファイルの格納ディレクトリ(同義語検索を行う場合に作成するディレクトリです)
-
-
2.のディレクトリを作成するファイルシステムを作成したLVの絶対パスを指定します。
-
2.のディレクトリを作成するファイルシステムをマウントするマウントポイントの絶対パスを指定します。
-
2.のディレクトリを作成するファイルシステムをマウントするためのmountコマンドのオプションを指定します。
-
マルチノード機能で使用するサーバの起動コマンドの絶対パスを指定します。
-
マルチノード機能で使用するサーバの停止コマンドの絶対パスを指定します。
-
マルチノード機能で使用するサーバの監視コマンドの絶対パスを指定します。
-
マルチノード機能で使用する待機サーバの停止コマンドの絶対パスを指定します。
-
マルチノード機能で使用する待機サーバの監視コマンドの絶対パスを指定します。
-
2.のディレクトリを作成するファイルシステムがあるVGに対しては,useを指定します。
-
2.のディレクトリを作成するファイルシステムに対しては,useを指定します。
-
セカンダリノードとするため,standbyを指定します。
-
プライマリノードの切り替えが発生した際,新たにプライマリノードにするノードの優先順位を指定します。このノードの優先順位をいちばん高くしたいため,1を指定します。
-
-
セカンダリノード(hadb03)のserversファイルの指定例
server name /HADB/server, ...1 alias HADB, acttype monitor, disk /dev/vg_hadb:/dev/vg_hadb02, ...2 lan_updown use, fs_name /dev/vg_hadb/sys_hadb:/dev/vg_hadb02/hadb_syndict, ...3 fs_mount_dir /HADB/db/ADBSYS:/mnt/syndict, ...4 fs_mount_opt "-t ext4 -o defaults,noatime,_netdev": ...5 "-t ext4 -o defaults,noatime,_netdev", actcommand "/HADB/scripts/multinode_act.sh", ...6 termcommand "/HADB/scripts/multinode_term.sh", ...7 ptrlcmd_ex "/HADB/scripts/multinode_patrol_ex.sh", ...8 ptrlcmd_ex_inter 3, ptrlcmd_ex_retry 0, ptrlcmd_ex_tmout 5, sby_termcommand "/HADB/scripts/multinode_sby_term.sh", ...9 sby_ptrlcmd_ex "/HADB/scripts/multinode_patrol_ex.sh", ...10 sby_ptrlcmd_ex_inter 3, sby_ptrlcmd_ex_retry 0, sby_ptrlcmd_ex_tmout 5, servexec_retry 0, waitserv_exec yes, ip_neck use, uoc_neck nouse, vg_neck use:use, ...11 fs_neck use:use, ...12 initial standby, ...13 standbypri 2; ...14
[説明]
-
サーバディレクトリの絶対パスを指定します。
-
次のディレクトリを作成するファイルシステムがあるVGの絶対パスを指定します。
-
システムディレクトリ
-
同義語辞書ファイルの格納ディレクトリ(同義語検索を行う場合に作成するディレクトリです)
-
-
2.のディレクトリを作成するファイルシステムを作成したLVの絶対パスを指定します。
-
2.のディレクトリを作成するファイルシステムをマウントするマウントポイントの絶対パスを指定します。
-
2.のディレクトリを作成するファイルシステムをマウントするためのmountコマンドのオプションを指定します。
-
マルチノード機能で使用するサーバの起動コマンドの絶対パスを指定します。
-
マルチノード機能で使用するサーバの停止コマンドの絶対パスを指定します。
-
マルチノード機能で使用するサーバの監視コマンドの絶対パスを指定します。
-
マルチノード機能で使用する待機サーバの停止コマンドの絶対パスを指定します。
-
マルチノード機能で使用する待機サーバの監視コマンドの絶対パスを指定します。
-
2.のディレクトリを作成するファイルシステムがあるVGに対しては,useを指定します。
-
2.のディレクトリを作成するファイルシステムに対しては,useを指定します。
-
セカンダリノードとするため,standbyを指定します。
-
プライマリノードの切り替えが発生した際,新たにプライマリノードにするノードの優先順位を指定します。このノードの優先順位は,セカンダリノード(hadb02)の次にしたいため,2を指定します。
-
-
(d) HAモニタの接続構成設定ファイルの作成(connectionファイルの作成)
AWS環境の場合,接続構成設定ファイルを手動で作成してください。手動での作成方法については,マニュアルHAモニタ Linux(R)(x86)編のHAモニタの接続構成設定ファイルの作成を参照してください。接続構成設定ファイルには,プライマリノードおよびセカンダリノードに作成したsysdefファイルのnameオペランドに指定したホスト名と,監視パスに使用するIPアドレスの組を指定します。
- ■HAモニタの接続構成設定ファイル(connectionファイル)の指定例
-
HAモニタの接続構成設定ファイル(connectionファイル)の指定例を次に示します。指定内容は,プライマリノードおよびセカンダリノードで同じにしてください。
なお,ここでの指定例は,「図17‒14 AWS環境でのシステム構成例(HAモニタありのマルチノード構成)」のシステム構成を前提としています。
hadb01 LAN 172.16.0.11; ...1 hadb02 LAN 172.16.0.12; ...2 hadb02 LAN 172.16.0.13; ...3
[説明]
-
プライマリノード(hadb01)の監視パスで使用するIPアドレス172.16.0.11を指定します。
-
セカンダリノード(hadb02)の監視パスで使用するIPアドレス172.16.0.12を指定します。
-
セカンダリノード(hadb03)の監視パスで使用するIPアドレス172.16.0.13を指定します。
HAモニタの接続構成設定ファイルの指定方法の詳細については,マニュアルHAモニタ Linux(R)(x86)編のHAモニタの接続構成設定ファイルの作成を参照してください。
-
(e) コマンド用環境変数定義ファイルの作成
HAモニタとの連携のために,コマンド用環境変数定義ファイルを作成してください。
$ADBDIR/sample/scripts/multinode.envが,コマンド用環境変数定義ファイルのひな形です。このひな形をコピーして,次の値を修正してください。
-
環境変数ADBMGR
HADB管理者(OSユーザ)のユーザ名を指定してください。
-
環境変数ADBALIAS
HAモニタのserversファイルのaliasオペランドの指定値を指定してください。
-
環境変数ADBDIR
サーバディレクトリの絶対パスを指定してください。
- ■コマンド用環境変数定義ファイルの指定例
-
この例では,コマンド用環境変数定義ファイルを/HADB/scripts/multinode.envに格納しているとします。指定内容は,プライマリノードおよびセカンダリノードで同じにしてください。
#!/bin/sh # The environment variables for HADB export ADBMGR=adbmanager ...1 export ADBALIAS=HADB ...2 export ADBDIR=/HADB/server ...3[説明]
-
HADB管理者(OSユーザ)のユーザ名adbmanagerを指定します。
-
HAモニタのserversファイルのaliasオペランドの指定値であるHADBを指定します。
-
サーバディレクトリの絶対パスを指定します。
-
(f) サーバの起動コマンドファイルの作成
HAモニタとの連携のために,サーバの起動コマンドファイルを作成してください。
$ADBDIR/sample/scripts/multinode_act.shが,サーバの起動コマンドファイルのひな形です。このひな形をコピーして,次の個所を修正してください。
-
source文
source文の引数に,コマンド用環境変数定義を指定したファイルの絶対パスを指定してください。
- ■サーバの起動コマンドファイルの指定例
-
この例では,サーバの起動コマンドファイルを/HADB/scripts/multinode_act.shに格納しているとします。指定内容は,プライマリノードおよびセカンダリノードで同じにしてください。
#!/bin/sh # Sample of the actcommand for HADB SU=/bin/su # Setting environment variables for HADB source /HADB/scripts/multinode.env ...1 # Execute adbchgnodetype command $SU - $ADBMGR -c "$ADBDIR/bin/adbchgnodetype --primary -n $ADBALIAS" CHGNODERES=$? if [ "$CHGNODERES" = "0" -o "$CHGNODERES" = "4" ] then exit 0 else exit $CHGNODERES fi[説明]
-
source文には,コマンド用環境変数定義ファイルの絶対パス/HADB/scripts/multinode.envを指定します。
-
(g) サーバの停止コマンドファイルの作成
HAモニタとの連携のために,サーバの停止コマンドファイルを作成してください。
$ADBDIR/sample/scripts/multinode_term.shが,サーバの停止コマンドファイルのひな形です。このひな形をコピーして,次の個所を修正してください。
-
source文
source文の引数に,コマンド用環境変数定義を指定したファイルの絶対パスを指定してください。
- ■サーバの停止コマンドファイルの指定例
-
この例では,サーバの停止コマンドファイルを/HADB/scripts/multinode_term.shに格納しているとします。指定内容は,プライマリノードおよびセカンダリノードで同じにしてください。
#!/bin/sh # Sample of the termcommand for HADB STS_ACTIVE="ACTIVE" STS_STOP="STOP" STS_STARTING="STARTING" STS_STOPPING="STOPPING" STS_ABORT="ABORT" STS_QUIESCE="QUIESCE" STS_OFFLINE="OFFLINE" STS_CHGMODE="CHGMODE" STS_STOPWAIT="STOPWAIT" STS_COREDUMP="COREDUMP" STS_FORCE="FORCE" STS_MAINTNCE="MAINTNCE" AWK=/bin/awk ECHO=/bin/echo GREP=/bin/grep SU=/bin/su # Setting environment variables for HADB source /HADB/scripts/multinode.env ...1 # Execute adbstop command while : do GET_STS=`$SU - $ADBMGR -c "$ADBDIR/bin/adbls -d srv 2>/dev/null" | $GREP -v SVID | $AWK '{ if ($1 ~ /[0-9]+/) { print $2 } else { print $1 } }'` case "$1" in "-e" ) # Normal stop operations of primary node. # (when the monend command is executed.) if [ "$GET_STS" = "$STS_ACTIVE" -o \ "$GET_STS" = "$STS_STOPPING" -o "$GET_STS" = "$STS_QUIESCE" -o \ "$GET_STS" = "$STS_OFFLINE" -o "$GET_STS" = "$STS_CHGMODE" -o \ "$GET_STS" = "$STS_STOPWAIT" -o "$GET_STS" = "$STS_MAINTNCE" ] then $SU - $ADBMGR -c "$ADBDIR/bin/adbstop --cancel" STOPRES=$? if [ "$STOPRES" = "0" -o "$STOPRES" = "4" ] then break fi elif [ "$GET_STS" = "$STS_STARTING" ] then break else break fi ;; "-w" ) # Plan stop operations of primary node. # (when the monswap command is executed.) if [ "$GET_STS" = "$STS_ACTIVE" -o "$GET_STS" = "$STS_STARTING" -o \ "$GET_STS" = "$STS_STOPPING" -o "$GET_STS" = "$STS_QUIESCE" -o \ "$GET_STS" = "$STS_OFFLINE" -o "$GET_STS" = "$STS_CHGMODE" -o \ "$GET_STS" = "$STS_STOPWAIT" -o "$GET_STS" = "$STS_MAINTNCE" ] then $SU - $ADBMGR -c "$ADBDIR/bin/adbstop --cancel --node" STOPRES=$? if [ "$STOPRES" = "0" -o "$STOPRES" = "4" ] then break fi else break fi ;; "-c" ) break ;; esac done # stop HADB if [ "$GET_STS" = "$STS_STARTING" ] then ADB_ID=`$SU - $ADBMGR -c "ps x" | $GREP adbsrvd | $GREP -v $GREP | awk '{print $1}'` $SU - $ADBMGR -c "kill $ADB_ID" exit 0 fi # Wait for end of HADB while [ "$GET_STS" = "$STS_ACTIVE" -o "$GET_STS" = "$STS_STARTING" -o \ "$GET_STS" = "$STS_STOPPING" -o "$GET_STS" = "$STS_QUIESCE" -o \ "$GET_STS" = "$STS_OFFLINE" -o "$GET_STS" = "$STS_CHGMODE" -o \ "$GET_STS" = "$STS_STOPWAIT" -o "$GET_STS" = "$STS_COREDUMP" -o \ "$GET_STS" = "$STS_MAINTNCE" ] do GET_STS=`$SU - $ADBMGR -c "$ADBDIR/bin/adbls -d srv 2>/dev/null" | $GREP -v SVID | $AWK '{ if ($1 ~ /[0-9]+/) { print $2 } else { print $1 } }'` sleep 1 done exit 0[説明]
-
source文には,コマンド用環境変数定義ファイルの絶対パス/HADB/scripts/multinode.envを指定します。
-
(h) サーバの監視コマンドファイルの作成
HAモニタとの連携のために,サーバの監視コマンドファイルを作成してください。
$ADBDIR/sample/scripts/multinode_patrol_ex.shが,サーバの監視コマンドファイルのひな形です。このひな形をコピーして,次の個所を修正してください。
-
source文
source文の引数に,コマンド用環境変数定義を指定したファイルの絶対パスを指定してください。
- ■サーバの監視コマンドファイルの指定例
-
この例では,サーバの監視コマンドファイルを/HADB/scripts/multinode_patrol_ex.shに格納しているとします。指定内容は,プライマリノードおよびセカンダリノードで同じにしてください。
#!/bin/sh # Sample of the ptrlcmd_ex for HADB SU=/bin/su # Setting environment variables for HADB source /HADB/scripts/multinode.env ...1 # Execute adbmonitor command for primary node $SU - $ADBMGR -c "'$ADBDIR'/bin/adbmonitor -i" ADBMONRES=$? if [ "$ADBMONRES" = "0" -o "$ADBMONRES" = "4" ] then exit 0 else exit $ADBMONRES fi[説明]
-
source文には,コマンド用環境変数定義ファイルの絶対パス/HADB/scripts/multinode.envを指定します。
-
(i) 待機サーバの停止コマンドファイルの作成
HAモニタとの連携のために,待機サーバの停止コマンドファイルを作成してください。
$ADBDIR/sample/scripts/multinode_sby_term.shが,待機サーバの停止コマンドファイルのひな形です。このひな形をコピーして,次の個所を修正してください。
-
source文
source文の引数に,コマンド用環境変数定義を指定したファイルの絶対パスを指定してください。
- ■待機サーバの停止コマンドファイルの指定例
-
この例では,待機サーバの停止コマンドファイルを/HADB/scripts/multinode_sby_term.shに格納しているとします。指定内容は,プライマリノードおよびセカンダリノードで同じにしてください。
#!/bin/sh # Sample of the sby_termcommand for HADB STS_ACTIVE="ACTIVE" STS_STOP="STOP" STS_STARTING="STARTING" STS_STOPPING="STOPPING" STS_ABORT="ABORT" STS_QUIESCE="QUIESCE" STS_OFFLINE="OFFLINE" STS_CHGMODE="CHGMODE" STS_STOPWAIT="STOPWAIT" STS_COREDUMP="COREDUMP" STS_FORCE="FORCE" STS_MAINTNCE="MAINTNCE" AWK=/bin/awk ECHO=/bin/echo GREP=/bin/grep SU=/bin/su # Setting environment variables for HADB source /HADB/scripts/multinode.env ...1 # Execute adbstop command while : do GET_STS=`$SU - $ADBMGR -c "'$ADBDIR'/bin/adbls -d srv 2>/dev/null" | $GREP -v SVID | $AWK '{ if ($1 ~ /[0-9]+/) { print $2 } else { print $1 } }'` case "$1" in "-e" ) # Normal stop operations of secondary node. # (when the monsbystp command is executed.) if [ "$GET_STS" = "$STS_ACTIVE" -o \ "$GET_STS" = "$STS_STOPPING" -o "$GET_STS" = "$STS_QUIESCE" -o \ "$GET_STS" = "$STS_OFFLINE" -o "$GET_STS" = "$STS_CHGMODE" -o \ "$GET_STS" = "$STS_STOPWAIT" -o "$GET_STS" = "$STS_MAINTNCE" ] then $SU - $ADBMGR -c "'$ADBDIR'/bin/adbstop --cancel --node" STOPRES=$? if [ "$STOPRES" = "0" -o "$STOPRES" = "4" ] then break fi elif [ "$GET_STS" = "$STS_STARTING" ] then break else break fi ;; "-c" ) break ;; esac done # stop HADB if [ "$GET_STS" = "$STS_STARTING" ] then ADB_ID=`$SU - $ADBMGR -c "ps x" | $GREP adbsrvd | $GREP -v $GREP | awk '{print $1}'` $SU - $ADBMGR -c "kill $ADB_ID" exit 0 fi # Wait for end of HADB while [ "$GET_STS" = "$STS_ACTIVE" -o "$GET_STS" = "$STS_STARTING" -o \ "$GET_STS" = "$STS_STOPPING" -o "$GET_STS" = "$STS_QUIESCE" -o \ "$GET_STS" = "$STS_OFFLINE" -o "$GET_STS" = "$STS_CHGMODE" -o \ "$GET_STS" = "$STS_STOPWAIT" -o "$GET_STS" = "$STS_COREDUMP" -o \ "$GET_STS" = "$STS_MAINTNCE" ] do GET_STS=`$SU - $ADBMGR -c "'$ADBDIR'/bin/adbls -d srv 2>/dev/null" | $GREP -v SVID | $AWK '{ if ($1 ~ /[0-9]+/) { print $2 } else { print $1 } }'` sleep 1 done exit 0[説明]
-
source文には,コマンド用環境変数定義ファイルの絶対パス/HADB/scripts/multinode.envを指定します。
-
(j) 待機サーバの監視コマンドファイルの作成
HAモニタとの連携のために,待機サーバの監視コマンドファイルを作成してください。
待機サーバの監視コマンドファイルのひな形は,サーバの監視コマンドファイルのひな形と同じく$ADBDIR/sample/scripts/multinode_patrol_ex.shです。このひな形をコピーして,次の個所を修正してください。
-
source文
source文の引数に,コマンド用環境変数定義を指定したファイルの絶対パスを指定してください。
- ■待機サーバの監視コマンドファイルの指定例
-
待機サーバの監視コマンドファイルは,サーバの監視コマンドファイルと同じ内容です。指定例については,「(h) サーバの監視コマンドファイルの作成」を参照してください。
(k) HAモニタの起動設定
OSの起動時に,自動的にHAモニタが起動するように設定してください。設定方法については,マニュアルHAモニタ Linux(R)(x86)編のシステムの起動からサーバの起動までを自動化するを参照してください。
(6) 各ノードでのサーバ定義の作成
サーバ定義の作成については,「17.4.5 各ノードでのサーバ定義の作成」を参照してください。
(7) クライアント定義の作成
クライアント定義の作成については,「17.4.6 クライアント定義の作成」を参照してください。
(8) クライアント定義の集中管理機能を使用する場合の環境設定
クライアント定義の集中管理機能を使用する場合の環境設定については,「17.4.7 クライアント定義の集中管理機能を使用する場合の環境設定」を参照してください。
(9) データベースの作成
データベースの作成手順については,「17.4.8 データベースの作成」を参照してください。
また,次のことを実施してください。
-
各インスタンスでマルチアタッチする必要があるEBSボリュームついては,事前にアタッチしてACTIVEにしておいてください。
-
初期設定オプションに指定する次のDBエリアのブロックスペシャルファイル名には,「(4) udevルールの設定」で指定したudevルールで固定したデバイス名(/dev/hadb_mstなど)を指定してください。
-
マスタディレクトリ用DBエリア
-
ディクショナリ用DBエリア
-
システム表用DBエリア
-
データ用DBエリア
-