18.4.1 アプリケーションフェイルオーバーの動作
次の図は,NNMiデータベースを使用した2つのNNMi管理サーバーのアプリケーションフェイルオーバー設定を示します。この章の以降のセクションについて,この図を参照してください。
クラスタからスタンバイサーバーを削除し,そのサーバーをスタンドアロンサーバーとして動作させて,次にそのサーバーを再度クラスタに戻すと,データベースのエラーになる場合があります。この場合,コマンドラインから次のコマンドを実行します。
nnmcluster dbsync
NNMi 11-00には,アプリケーションフェイルオーバー内にストリーミングレプリケーション機能が含まれており,スタンバイサーバーとアクティブサーバーが同期した状態のまま,データベーストランザクションがアクティブサーバーからスタンバイサーバーに送信されます。これによって,(以前のバージョンのNNMiのように)フェイルオーバーでデータベーストランザクションログをスタンバイサーバーにインポートする必要がなくなり,スタンバイサーバーがアクティブサーバーを引き継ぐのに要する時間が大幅に短縮されます。この機能には,データベースバックアップファイルが必要な場合だけノード間で送信されるという利点もあり,データベーストランザクションファイルの通常の転送で,大きなデータベースバックアップファイルを送信する頻度が少なくなります。
アクティブサーバーとスタンバイサーバーの両方を開始すると,スタンバイサーバーはアクティブサーバーを検知してアクティブサーバーにデータベースのバックアップをリクエストしますが,ネットワーク監視は開始しません。このデータベースのバックアップは1つのZIPファイルとして保存されます。すでにスタンバイサーバーに以前のクラスタ接続から得たZIPファイルがあり,そのファイルがすでにアクティブサーバーと同期されていることを確認した場合は,ファイルは再送されません。
アクティブサーバーとスタンバイサーバーの両方が実行している間,アクティブサーバーは定期的にデータベースのトランザクションログをスタンバイサーバーに送信します。nms-cluster.propertiesファイルのcom.hp.ov.nms.cluster.timeout.archiveパラメーターの値を変更すると,このデータの転送頻度を変更できます。これらのトランザクションログはスタンバイサーバーに蓄積されるため,スタンバイからアクティブになったときにすぐに利用できます。
標準のデータの転送頻度は,次のとおりです。
6時間ごとに,データベースのフルバックアップを転送します。
15分ごとに,トランザクションログ(データベースの更新情報)を転送します。なお,データベースが大量に更新された場合は,より短い間隔で転送する場合があります。
データが転送されるまでの間に更新した内容は引き継がれません。
スタンバイサーバーがアクティブサーバーからデータベースの完全バックアップを受信すると,その情報をNNMiデータベースに取り込みます。また,recovery.confファイルを作成して受信したすべてのトランザクションログを取り込んでからでないと,ほかのサービスがデータベースを使用できません。そのことをNNMiデータベースに知らせます。何らかの理由でアクティブサーバーが利用できなくなると,スタンバイサーバーはNNMiサービスを開始するovstartコマンドを実行してアクティブになります。スタンバイサーバーは,残りのNNMiサービスを開始する前に,トランザクションログをインポートします。
データベースのファイルは,次のディレクトリ下に格納されます。
Windows:%NnmDataDir%shared\nnm\databases\
Linux:$NnmDataDir/shared/nnm/databases/
アプリケーションフェイルオーバー構成では,上のディレクトリ下に三つのディレクトリ(Postgres,Postgres_standby,Postgres_OLD)が作成されます。それぞれの用途は次のとおりです。
Postgres:稼働中またはスタンバイ用に受信したデータベース本体のデータを格納
Postgres_standby:アクティブサーバーからスタンバイサーバーへ転送・受信したデータを格納
Postgres.OLD:スタンバイサーバーがデータ受信時の旧Postgresデータを退避するために使用
アクティブサーバーに障害が発生すると,スタンバイサーバーは,ディスカバリとポーリングアクティビティを開始します。このようにシステムを切り替えることによって,障害が発生したシステムの診断と修理を行う間,NNMiはネットワークを監視およびポーリングし続けます。
- 重要
NNMiではアプリケーションフェイルオーバー構成でのフェイルオーバー後に再同期が行われるためステータスおよびインシデントの更新が遅延する可能性があります。
この再同期中に次のメッセージが表示されても問題はありません。
Causal Engineのキューサイズが大きいため,ステータスおよびインシデントの更新が遅延しています。これは,アプリケーションフェイルオーバー構成でのフェイルオーバー,バックアップの復元,または手動による再同期のあとに再同期が行われることが原因で発生する可能性があります。