新規ストレージ・ノードの使用

別の新しいストレージ・ノード(障害が発生したホストと異なるホスト名、IPアドレスおよびポート)を使用して、障害が発生したストレージ・ノードを置換するには、次の手順を実行します。
  1. ハードウェアを置換する場合、起動し、本番環境の準備が整っていることを確認します。

  2. 新しい置換ノードで、次のコマンドを指定してmakebootconfigユーティリティを使用し、boot config構成ファイルを作成します。新規ノードでセキュリティ構成オプションを有効にします。新規のストレージ・ノードが実行されるハードウェアでこれを実行します。

    > mkdir -p KVROOT     (if it doesn't already exist)
    > java -Xmx64m -Xms64m \
    -jar KVHOME/lib/kvstore.jar makebootconfig -root KVROOT \
                                               -port 5000 \
                                               -host <hostname> \
                                               -harange 5010,5020 \
                                               -capacity 1 \
                                               -admindir /export/admin1 \
                                               -admindirsize 3_gb \
                                               -store-security enable \
                                               -storagedir /export/data1 \
                                               -storagedirsize 1_tb \
                                               -rnlogdir /export/rnlog1
  3. 新規ノードのKVROOTの下に、securityディレクトリを作成します。
    > cd KVROOT
    > mkdir security
  4. 正常なノードから障害の発生したノードへセキュリティ・ディレクトリをコピーします。

    scp -r <sec dir> node02:KVROOT/security 
  5. 新規ノードでOracle NoSQL Databaseソフトウェアを起動します。

    ノート:

    SNAを開始する前に、各ノードで環境変数MALLOC_ARENA_MAX1に設定します。こうすることで、メモリー使用量が指定されたヒープ・サイズに制限されます。

    > nohup java -Xmx64m -Xms64m \
    -jar KVHOME/lib/kvstore.jar start -root KVROOT & 
  6. 新規ストレージ・ノードを新規ノードにデプロイします。CLIを使用してこれを行う場合、次のようにします。

    > java -Xmx64m -Xms64m \
    -jar KVHOME/lib/kvstore.jar runadmin \
    -port <5000> -host <host> \
     -security security/client.security
    kv-> plan deploy-sn -zn <id> -host <host> -port <5000> -wait 
  7. 新規ストレージ・ノードをストレージ・ノード・プールに追加します。(ストレージ・ノード・プールはストアのインストール時に作成し、すべてのストレージ・ノードを追加しましたが、製品のこのバージョンではこれ以外に使用されません。)

    kv-> show pools
    AllStorageNodes: sn1, sn2, sn3, sn4 ... sn25, sn26
    BostonPool: sn1, sn2, sn3, sn4 ... sn25
    kv-> pool join -name BostonPool -sn sn26
    AllStorageNodes: sn1, sn2, sn3, sn4 ... sn25, sn26
    BostonPool: sn1, sn2, sn3, sn4 ... sn25
  8. 古いストレージ・ノードが稼働していないことを確認します。ハードウェアの問題の場合、壊れたマシンを停止します。次のようにして、ストレージ・ノード・ソフトウェアのみ停止することもできます。

    > java -Xmx64m -Xms64m \
    -jar KVHOME/lib/kvstore.jar stop -root KVROOT &
  9. あるストレージ・ノードから別のストレージ・ノードにサービスを移行します。このプランの構文は、次のとおりです。

    kv-> plan migrate-sn -from <old SN ID> -to <new SN ID> -wait

    ストレージ・ノード25から26に移行することを前提とすると、次のようになります。

    kv-> plan migrate-sn -from sn25 -to sn26 -wait 
  10. 古いストレージ・ノードはトポロジに表示され、UNREACHABLEとレポートされます。ソースSNAは削除される必要があり、そのルートディレクトリは空にする必要があります。古いSNAを起動すると、レプリケーション・グループのメンバーではなくなっている古いレプリケーション・ノードも起動されます。これは残りのストアには無害ですが、エラー・メッセージを発生させるため、ストアに問題があると解釈されかねません。plan remove-snコマンドを使用して、デプロイメントにある古い未使用のストレージ・ノードを削除してください。

    kv-> plan remove-sn sn sn25 -wait
  11. pingコマンドを使用して、新規ノードへの移行が完了し、すべてのサービスが正常に実行されていることを確認します。
    > java -Xmx64m -Xms64m \
            -jar KVHOME/lib/kvstore.jar ping \
            -port <5000> -host <host> \
            -security security/client.security

ノート:

ストレージ・ノードの置換は、トポロジの変更とみなされます。これは、ストレージ・ノードが置換される前に作成されたスナップショットからストアをリストアする場合、Loadプログラムを使用する必要があるということです。詳細は、「Loadプログラムの使用」を参照してください。