ストレージ・ノードHAポート範囲の変更

インストールを初めて構成したときに、ノード間の通信に使用されるポートの範囲を定義しました。(このことはインストールの構成パラメータで実行しました。)このポート範囲はHAポート範囲と呼ばれます(HAはHigh Availability (高可用性)の略語であり、ストアのレプリケーション係数を示します)。

HAポート範囲に対して無効な値を誤って使用した場合は、どのストレージ・ノードにも、レプリケーション・ノード(RN)やセカンダリ管理プロセス(管理)をデプロイできません。レプリケーション・ノードを含むストアを初めてデプロイしようとしたとき、問題に気付きます。次のようなことは、ストレージ・ノードでレプリケーション・ノードが起動されなかったことを示します。

  • 管理ログに、レプリケーション・ノードがERROR_RESTARTING状態であることを示すエラーが含まれています。再試行回数が多くなると、警告エラーがERROR_NO_RESTARTに変わります。pingコマンドの出力でレプリケーション・ノードの状態を確認できます。

  • プランがERROR状態になります。CLIのshow plan <planID>コマンドを使用して履歴の詳細を取得すると、次のようなエラー・メッセージが含まれています。

    Attempt 1
            state: ERROR
            start time: 10-03-11 22:06:12
            end time: 10-03-11 22:08:12
            DeployOneRepNode of rg1-rn3 on sn3/farley:5200 [RUNNING]
            failed. ....  Failed to attach to RepNodeService for rg1-rn3,
            see log, /KVRT3/<storename>/log/rg1-rn3*.log, on host
            farley for more information. 
  • 管理CLI show eventsコマンドを使用してアクセスするクリティカル・イベント・メカニズムに、プラン履歴に含まれているものと同じエラー情報を示すアラートが含まれています。

  • ストレージ・ノードまたは管理(あるいはその両方)に関するストアの実行時ログまたはブート・ログに、次のようなポート固有のエラー・メッセージが示されます。

    [rg1-rn3] Process exiting
    java.lang.IllegalArgumentException: Port number 1 is invalid because
    the port must be outside the range of "well known" ports
    

次のステップを実行して、構成内の不適切なHAポート範囲に対処できます。Oracle NoSQL Databaseストレージ・ノードをホストする物理ノードで実行する必要のあるステップは、ストレージ・ノードで、という記述で始まります。他のステップは、管理CLIにアクセスできる任意のノードから実行できます。

  1. 管理CLIを使用して、無効なHAポート範囲の値を含むplan deploy-snコマンドまたはplan deploy-adminコマンドを取り消します。

  2. ストレージ・ノードで、正しく構成されていない既存のStorageNodeAgentImplプロセスとその管理対象プロセスをすべて強制終了します。管理対象プロセスにはパラメータ-root <KVROOT>が使用されているため、他のプロセスと区別できます。

  3. ストレージ・ノードで、KVROOTディレクトリからすべてのファイルを削除します。

  4. ストレージ・ノードで、ストレージ・ノードのブートストラップ構成ファイルをKVROOTディレクトリに再作成します。手順は、インストールの構成パラメータを参照してください。

  5. ストレージ・ノードで、次のJavaコマンドを使用してストレージ・ノードを再起動します。

    java -Xmx64m -Xms64m 
    -jar KVHOME/lib/kvstore.jar restart
  6. 管理CLIから、初期プランと同じパラメータを使用して、正しいHA範囲のdeploy-snまたはdeploy-adminプランを作成および実行できます。