ノンストップデータベース HiRDB Version 9 システム運用ガイド(UNIX(R)用)
系の切り替え時間を短縮する機能として次に示す機能があります。これらの機能を使用するにはサーバモードでの運用が前提となります。
系切り替えが発生したとき,待機系HiRDBを開始するのに次に示す処理が実施されます。
この中のサーバプロセスの起動処理に掛かる時間は,系の切り替え時間の中で大きな割合を占めています。サーバプロセスの起動処理に掛かる時間はサーバプロセスの常駐数に比例するため,常駐数が多いと系の切り替え時間が長くなります。そこで,待機系HiRDBのサーバプロセスをあらかじめ起動しておいて,系の切り替え時にサーバプロセスの起動処理をしないようにします。系の切り替え時にサーバプロセスの起動処理がない分,系の切り替え時間を短縮できます。これをユーザサーバホットスタンバイといいます。例えば,100MIPSぐらいのサーバマシンでサーバプロセスを一つ起動するのに約1秒掛かります。その分,系の切り替え時間を短縮できます。
ユーザサーバホットスタンバイを使用するには,pd_ha_server_process_standbyオペランドにYを指定します。
待機系HiRDBのサーバプロセス及びシステムサーバをあらかじめ起動しておいて,系の切り替え時にサーバプロセス及びシステムサーバの起動処理をしません。これを高速系切り替え機能といいます。系の切り替え時にサーバプロセス及びシステムサーバの起動処理がない分,系の切り替え時間を短縮できます。
なお,高速系切り替え機能の方がユーザサーバホットスタンバイより系の切り替え時間を短縮できます(高速系切り替え機能はユーザサーバホットスタンバイの機能を包括しています)。
高速系切り替え機能をするユニットはIPアドレスを引き継げません。したがって,HiRDB/シングルサーバの場合はIPアドレスを引き継がない構成にしてください。
高速系切り替え機能を使用するユニットはIPアドレスを引き継がないようにしてください。対象ユニットのユニット制御情報定義のpd_ha_ipaddr_inheritオペランドにNを指定します。高速系切り替え機能を使用しないユニットはIPアドレスを引き継ぐ構成にしてもかまいません。
システム構成例については,「26.7.7(3)高速系切り替え機能使用時のシステム構成例」を参照してください。
実行系及び待機系HiRDB(又はユニット)の開始前に,pdunitオペランドの-x及び-cオプションに指定したIPアドレスを起動しておいてください。HAモニタ用のaliasオペランドの値.upファイルや,aliasオペランドの値.downファイルには,pdunitオペランドの-x又は-cオプションに指定したIPアドレスを指定しないでください。クライアント接続用IPアドレスを引き継ぐ場合は,クライアント接続用IPアドレスを指定してください。なお,クライアント接続用IPアドレスなどの引き継ぐIPアドレスがない場合は,HAモニタのserver定義文のlan_updownオペランドにnouseを指定するか,又はaliasオペランドの値.upファイルとaliasオペランドの値.downファイルを削除してください。
高速系切り替え機能を使用するには,pd_ha_agentオペランドにstandbyunitを指定します。
また,HiRDB/パラレルサーバの場合はトランザクションキューイング機能を使用するかどうかを検討してください。トランザクションキューイング機能を使用すると,系切り替え時のトランザクションエラーを少なくできます。トランザクションキューイング機能については,「26.7.10 トランザクションキューイング機能(高速系切り替え機能限定)」を参照してください。
高速系切り替え機能使用時のシステム構成例を次の図に示します。
図26-93 高速系切り替え機能使用時のシステム構成例
このときのHiRDBシステム定義の指定例を次に示します。定義例はシステム共通定義及びユニット制御情報定義の関連のあるオペランドについてだけ説明しています。
●システム共通定義
set pd_ha = use set pd_name_port = 20000 pdunit -x hostAA -u unt1 -d "/hirdb1" -p 20000 1 pdunit -x hostB -u unt2 -d "/hirdb2" -c hostBB -p 20001 2 pdunit -x hostC -u unt3 -d "/hirdb3" -c hostCC -p 20002 3 pdstart -t MGR -u unt1 pdstart -t DIC -u unt1 -s DIC pdstart -t FES -u unt1 -s FES pdstart -t BES -u unt2 -s BES1 pdstart -t BES -u unt3 -s BES2 |
●ユニット制御情報定義(ユニット1)
set pd_hostname = host1 1 set pd_ha_acttype = server 2 set pd_ha_server_process_standby = Y 3 |
●ユニット制御情報定義(ユニット2)
set pd_hostname = hostB 1 set pd_ha_acttype = server 2 set pd_ha_ipaddr_inherit = N 3 set pd_ha_agent = standbyunit 4 |
●ユニット制御情報定義(ユニット3)
set pd_hostname = hostC 1 set pd_ha_acttype = server 2 set pd_ha_ipaddr_inherit = N 3 set pd_ha_agent = standbyunit 4 |
待機系の起動処理には実行系の起動を待ち合わせる処理があります。高速系切り替え機能を使用する待機系ユニットの起動に時間が掛かる場合は次に示すことを確認してください。
次の表に示す操作内容を実施したあとに,実行系HiRDB(ユニット)の再起動を実施したかどうか※1で,待機系HiRDB(HiRDB/パラレルサーバの場合は待機系ユニット)を一度終了してから再度開始する必要があります。待機系HiRDBを再度開始しないと,系切り替えが発生したときに待機系HiRDBが異常終了します。
表26-38 待機系HiRDB(ユニット)を再度開始する必要がある操作
| 分類 | 条件 | 待機系HiRDB(ユニット)を再度開始する必要の有無 | ||
|---|---|---|---|---|
| 操作内容 | 実行系HiRDB(ユニット)の再起動の有無※1 | |||
| SQLの実行 | 定義系SQLの実行 | なし | − | |
| あり | ○ | |||
| HiRDBシステム構築後最初の抽象データ型の 定義(CREATE TYPE文の実行) |
なし | ○ | ||
| あり | ○ | |||
| 運用コマンド 又は ユティリティの 実行 |
構成変更ユティリティ(pdmod)の実行 | HiRDBファイルシステム領域 の世代登録 |
なし | − |
| あり | − | |||
| HiRDBファイルシステム領域 の世代削除 |
なし | − | ||
| あり | − | |||
| 監査人の登録 | なし | − | ||
| あり | − | |||
| RDエリアの属性変更 | なし | ○ | ||
| あり | ○ | |||
| 監査証跡表の作成 | なし | − | ||
| あり | ○ | |||
| 上記以外の操作 | なし | ○※2 | ||
| あり | ○※2 | |||
| pddbchgコマンドの実行 | なし | − | ||
| あり | ○ | |||
| オンライン再編成の実行 (pdorbegin,pdorendコマンドの実行) |
なし | − | ||
| あり | ○ | |||
| HiRDBシステム構築後最初のpdplgrgst コマンドの実行(CREATE TYPE文の実行) |
なし | ○ | ||
| あり | ○ | |||
| システム 共通定義の変更 |
次のどれかの定義の変更
|
なし | − | |
| あり | ○ | |||
待機系HiRDBが異常終了した場合は,待機系HiRDBをpdstartコマンド(HiRDB/パラレルサーバの場合はpdstart -u又はpdstart -qコマンド)で開始してください。
高速系切り替え機能の対象になる待機系ユニットは,待機状態のときにRDエリアをオープンしていません。また,系切り替え時間を最小限に抑えるため,系切り替えの発生時に全面回復で必要なRDエリアだけをオープンして,そのほかのRDエリアはオープンしません。したがって,RDエリアのオープン契機は次のようになります。
RDエリアのオープン契機については,「15.6 RDエリアのオープン契機を変更する方法(RDエリアの属性変更)」を参照してください。
次に示す条件をすべて満たす場合は注意が必要です。
この場合,OLTP製品が未決着トランザクションの回復処理をすると,X/Openに従ったAPIがエラーリターンしてトランザクションが回復されないことがあります。この現象が発生する場合は,HiRDBクライアントのバージョンを06-02-/B以降にバージョンアップしてください。業務を停止させたくないなどの理由でHiRDBクライアントのバージョンアップがすぐにできない場合は,現用系HiRDB(ユニット)を待機系から実行系に系を切り替えてください。ただし,これは一時的な対応策です。HiRDBクライアントのバージョンアップで対応してください。
All Rights Reserved. Copyright (C) 2010, 2017, Hitachi, Ltd.