ストレージ・ノードに障害が発生した場合、または発生中の場合、ストレージ・ノードを置換できます。この手順を進める前に、通常、根本の問題(ハードウェアに関連する場合もソフトウェアに関連する場合もある)を解決します。
障害が発生したストレージ・ノードの置換には2つの方法があります。
新しい別のストレージ・ノードを使用して、障害が発生したストレージ・ノードを置換する手順は次のとおりです。
ハードウェアを置換する場合、起動し、本番環境の準備が整っていることを確認します。
新しいかわりのノードでmakebootconfig
ユーティリティを使用して、"boot config"構成ファイルを作成します。新規のストレージ・ノードが実行されるハードウェアでこれを実行します。ハードウェアがOracle NoSQL Database管理プロセスをホストする場合にのみ、-adminオプション(管理コンソールのポート)を指定する必要があります。
"boot config"ファイルを作成するには、次のコマンドを発行します。
> mkdir -p KVROOT (if it doesn't already exist) > java -jar KVHOME/lib/kvstore.jar makebootconfig -root KVROOT \ -port 5000 \ -admin 5001 \ -host <hostname> \ -harange 5010,5020
新規ノードでOracle NoSQL Databaseソフトウェアを起動します。
> nohup java -jar KVHOME/lib/kvstore.jar start -root KVROOT&
新規ストレージ・ノードを新規ノードにデプロイします。CLIまたは管理コンソールのいずれかを使用し、既存の管理プロセスを使用してこれを行います。CLIを使用してこれを行う場合、次のようにします。
> java -jar KVHOME/lib/kvstore.jar runadmin -port <port> -host <host> kv-> plan -execute deploy-sn "replace sn" <dc_id> <hostname> <reg port> kv->
新規ストレージ・ノードをストレージ・ノード・プールに追加します。(ストレージ・ノード・プールはストアのインストール時に作成し、すべてのストレージ・ノードを追加しましたが、製品のこのバージョンではこれ以外に使用されません。)
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, sn26 kv->
あるストレージ・ノードから別のストレージ・ノードにサービスを移行します。古いノードが管理サービスをホストしていた場合は、-admin-port引数が必要です。このプランの構文は、次のとおりです。
plan migrate-sn -from <old SN ID> -to <new SN ID> \ -admin-port <admin port>
ストレージ・ノード25から26にポート5000で移行するとすると、次のようになります。
kv-> plan migrate-sn -from sn25 -to sn26 -admin-port 5000
古いストレージ・ノードが稼働していないことを確認します。ハードウェアの問題の場合、壊れたマシンを停止します。次のようにして、ストレージ・ノード・ソフトウェアのみ停止することもできます。
> java -jar KVHOME/lib/kvstore.jar stop -root KVROOT
古いストレージ・ノードはトポロジに表示され、UNREACHABLEとレポートされます。古いストレージ・ノードをNoSQL Databaseデプロイで使用していない場合は、remove-storageノード・プランを使用してそのノードをストアから削除してください。
ストレージ・ノードの置換は、トポロジの変更とみなされます。これは、ストレージ・ノードが置換される前に作成されたスナップショットからストアをリストアする場合、Load
プログラムを使用する必要があるということです。詳細は、「Loadプログラムの使用」を参照してください。
同一のノード(障害が発生したホストと同じホスト名、インターネット・アドレスおよびポート)を使用して、障害が発生したストレージ・ノードを置換する手順は次のとおりです。
前提条件情報は次のとおりです。
既知のホスト上の、既知のレジストリ・ポートを備えた実行中の管理プロセス。
置換対象のストレージ・ノードのID(例: "sn1")。
続行前にKVROOTが空であることと、データの全ネットワーク・リカバリを行うことが推奨されます。
下記の手順は、KVROOTが空で有効なデータがないことが前提です。新規のストレージ・ノード・エージェントが起動すると、ホストしているサービスが開始され、それによって他のホストからのデータがリカバリされます。関連するシャードのサイズによってこのリカバリは時間がかかる場合があります。これはバックグラウンドで行われます。
generateconfig
コマンドを使用して構成を作成します。
generateconfigの使用方法は次のとおりです。
> java -jar KVHOME/lib/kvstore-M.N.O.jar generateconfig \ -host <hostname> -port <port> -sn <StorageNodeId> -target <zipfile>
次に例を示します。
> java -jar KVHOME/lib/kvstore.jar generateconfig -host adminhost \ -port 13230 -sn sn1 -target /tmp/sn1.config
上のコマンドではターゲット"/tmp/sn1.config.zip"が作成されます。これは、対象のストレージ・ノードの再作成に必要な構成を備えたzipファイルです。zipファイルの最上位ディレクトリはストアのKVROOTです。
ストレージ・ノード構成をターゲット・ホストでリストアします。
zipファイルをターゲット・ホストにコピーします。
アーカイブをKVROOTディレクトリに解凍します。つまり、KVROOTが/opt/kvroot
の場合は、次のようにします。
> cd/opt > unzip <path-to-sn1.config.zip>
新しいホストでストレージ・ノードを再起動します。
> java -jar KVHOME/lib/kvstore.jar start -root KVROOT