Oracle NoSQL Databaseの3つのサービス・タイプ(管理、ストレージ・ノード、レプリケーション・ノード)には構成パラメータがあり、一部はデプロイ後にチューニングできます。変更可能なパラメータ値を表示するには、CLIで次のコマンドを使用します。
show parameters -service <id>
このコマンドでは指定されたサービスのサービス・パラメータおよび状態を表示できます。サービスはレプリケーション・ノード、ストレージ・ノードまたは管理サービスである場合があり、任意の有効な文字列で識別されます。オプションの-policy
フラグを使用するとグローバル・ポリシー・パラメータを表示できます。
パラメータを変更するプランの作成に使用されるすべてのCLIコマンドで、同様の構文を使用します。
plan change-parameters -service <id>...
このようなコマンドのすべてで、同一コマンドラインに複数のParameterName=NewValue
割当て引数を使用できます。NewValueに空白が含まれる場合、割当て引数全体を二重引用符で囲む必要があります。たとえば、管理パラメータcollectorPollPeriodを変更するには、次のようなコマンドを発行します。
kv-> plan change-parameters -all-admins -params \ "collectorPollPeriod=20 SECONDS"
次のコマンドは、サービス・パラメータの変更に使用されます。
plan change-parameters -service <shardId-nodeId> -params [assignments]
このコマンドは、単一のレプリケーション・ノードのパラメータを変更するために使用されます。レプリケーション・ノードは、シャードおよびノード番号を使用して識別される必要があります。shardId-nodeId
識別子は、ハイフンを1つ埋め込んだ、スペースなしの単一の引数として指定する必要があります。shardId
識別子はrgX
で表されます。X
はシャード番号を指します。
plan change-parameters -all-rns -params [assignments]
このコマンドは、ストア内のすべてのレプリケーション・ノードのパラメータの変更に使用されます。このケースでは、レプリケーション・ノード識別子は必要ありません。
plan change-parameters -service <storageNodeId> -params [assignments]
このコマンドは、1つのストレージ・ノード・インスタンスのパラメータの変更に使用されます。storageNodeIdは単純整数です。
plan change-parameters -all-admins -params [assignments]
このコマンドは、管理パラメータの変更に使用されます。管理の各インスタンスは、レプリケートされた同一サービスの一部であるため、管理のすべてのインスタンスは同時に変更されます。このため、このコマンドには管理識別子は必要ありません。
管理パラメータの変更に管理サービスの再起動が必要な場合、KVAdminとサーバーとの接続は失われます。通常の状況下では、次のコマンドを指定すると、短い休止の後、KVAdminは自動的に再接続されます。この時点で、プランの状態はINTERRUPTED
で、plan execute
コマンドを発行して手動で完了する必要があります。
plan change-parameters -security <id>
このコマンドは、セキュリティ・パラメータの変更に使用されます。パラメータは、すべてのSN、RNおよび管理に対し、暗黙的で一律に適用されます。
いずれの場合も、プランの作成および実行を行うか、planコマンドの-noexecute
オプションを使用してプランの作成と実行を別のステップで行うかを選択できます。
ストアのデプロイ時、ほとんどの管理、ストレージ・ノードおよびレプリケーション・ノードのパラメータにはデフォルト値が割り当てられます。デプロイ後に調整するのは不便なため、Oracle NoSQL Databaseにはデプロイ時に使用されるデフォルトを設定する方法が用意されています。これらのデフォルトは、ストア全体ポリシー・パラメータと呼ばれます。
次のコマンドを使用してCLIでポリシー・パラメータを設定できます。
change-policy -params [name=value]
変更するパラメータは-params
フラグの後に続き、スペースで区切られます。スペースが埋め込まれたパラメータ値は、スペースで区切る必要があります。スペースが埋め込まれたパラメータ値は、引用符で囲む必要があります。たとえば、name = "value with spaces"のようになります。オプションのdry-run
フラグが指定された場合、変更は行われずに新規パラメータが返されます。
次のパラメータを管理サービスに対して設定できます。
adminLogFileCount=<Integer>
保持されるログ・ファイルの数を設定します。この値のデフォルトは"20"です。これは、ロギング履歴専用のディスク領域の量を制御するために使用されます。
adminLogFileLimit=<Integer>
ログ・ファイルのサイズを制限します。この制限に達すると、ロギング・サブシステムは新しいログ・ファイルに切り替わります。この値のデフォルトは"4,000,000"バイトです。制限により、1つのファイルに書き込まれる大まかな最大量(バイト)が指定されます。値がゼロの場合、制限はありません。
collectorPollPeriod=<Long TimeUnit>
ステータスの更新用に様々なサービスにポーリングする場合の監視サブシステムの遅延を設定します。この値のデフォルトは"20"秒です。単位はchange-parameters
コマンド内の文字列として指定されます。例: -params collectorPollPeriod="2 MINUTES"
loggingConfigProps=<String>
管理プロセスのロギング・サブシステムのプロパティ設定。形式は、property=value;property=value...
です。標準のjava.util.loggingプロパティをこのパラメータで設定できます。
eventExpiryAge=<Long TimeUnit>
このパラメータを使用して、管理でのクリティカル・イベント履歴の格納期間を調整します。デフォルト値は、"30 DAYS"です。
configProperties=<String>
これは、基になるBDB JEサブシステムに対するプロパティを設定する多項目の文字列です。形式は、property=value;property=value...
です。
javaMiscParams=<String>
これは、管理プロセスの起動時にコマンドラインに追加される多項目の文字列です。ヒープ・サイズを制御するために、-Xmx、-XmsなどのJava VMプロパティを設定します。文字列がJVMコマンド・ラインの有効な一連のトークンではない場合、管理プロセスの起動に失敗します。
adminHttpPort=<Integer>
Oracle NoSQL DatabaseのWebベースの管理コンソールがアクセスされるポートを設定します。この本の例では、ポート5001を使用します。値が0の場合、Webインタフェースは無効になります。
次のパラメータをストレージ・ノードに対して設定できます。
serviceLogFileCount=<Integer>
このストレージ・ノードおよびこのストレージ・ノードでホストされるすべてのレプリケーション・ノードに対して、保持されるログ・ファイルの数を設定します。この値のデフォルトは"20"です。これは、ロギング履歴専用のディスク領域の量を制御するために使用されます。
serviceLogFileLimit=<Integer>
ログ・ファイルのサイズを制限します。この制限に達すると、ロギング・サブシステムは新しいログ・ファイルに切り替わります。この設定は、このストレージ・ノードおよびこのストレージ・ノードでホストされるすべてのレプリケーション・ノードに適用されます。この値のデフォルトは"2,000,000"バイトです。制限により、1つのファイルに書き込まれる大まかな最大量(バイト)が指定されます。値がゼロの場合、制限はありません。
haPortRange=<String>
このストレージ・ノードでホストされるレプリケーション・ノードへの割当てに使用可能なポート番号の範囲を定義します。レプリケーション・ノードのデプロイ時、この範囲から自動的にポートが割り当てられます。値の文字列の形式は、"lowport,highport"です。
haHostname=<String>
HAサブシステムで使用されるネットワーク・インタフェースの名前を設定します。hostname
の有効な文字列は、DNS名またはIPアドレスになります。
capacity=<Integer>
このストレージ・ノードでホストできるレプリケーション・ノードの数を設定します。この値は、新規レプリケーション・ノードの配置に関する決定を通知するために使用されます。容量は、複数のレプリケーション・ノードをサポートするのに十分なディスク、CPUおよびメモリーがストレージ・ノードにある場合、1より大きい値に設定できます。デフォルト値: "1"。
memoryMB=<Integer>
このストレージ・ノードで使用可能とされるメモリー容量(MB)を設定します。この数値は、容量が1より大きい場合、レプリケーション・ノード間で公平にリソースの割当てを通知するために使用されます。デフォルトは"0"で、これは"不明"を表します。これにより、デプロイ・プランは各レプリケーション・ノードを大まかな-Xmxヒープ・サイズで構成できます。
numCPUs=<Integer>
このストレージ・ノードで使用可能とされるCPUの数を設定します。デフォルト値は1です。
rnHeapPercent=<Integer>
このSNでホストされているすべてのRNプロセスに対して、ヒープに予約されているストレージ・ノードのメモリーの割合を設定します。デフォルト値は85です。
mgmtClass=<String>
管理エージェントの実装を提供するクラスの名前。詳細は、「標準化されたインタフェース監視」を参照してください。ポートを特権的なポート番号(<1024)にすることはできません。
mgmtPollPort=<Integer>
SNMPエージェントがリスニングする対象のポートを設定します。
mgmtTrapHost=<String>
SNMP通知が送信される対象のホストを設定します。
mgmtTrapPort=<Integer>
SNMP通知が送信される対象のポートを設定します。
servicePortRange=<String>
ストレージ・ノードおよびその管理対象サービスで実行されている管理サービス間の通信に使用されるポートの範囲を設定します。このパラメータはオプションです。デフォルトでは、サービスは匿名ポートを使用します。値の文字列の形式は、"startPort,endPort"です。
範囲は、ストレージ・ノードおよびマシンでホストされるすべてのレプリケーション・ノード(capacityパラメータで定義されます)に対応できる大きさにする必要があります。必要なポートの数は、システムがセキュリティ用に構成されているかどうかに依存します。非セキュアなシステムでは、ストレージ・ノードは3つのポート(レジストリ・サービスを含む)を使用し、各レプリケーション・ノードは範囲内にある3つのポートを使用します。管理は、構成されている場合、2つのポートを使用します。セキュアなシステムでは、各ストレージ・ノード、レプリケーション・ノードおよび管理に1つ追加のポートが必要です。通常は、ストレージ・ノード容量の増加、またはポートが一時的に使用できなくなるネットワークの問題に対応できるように、最小値より著しく大きい範囲を指定することをお薦めします。
大まかには、非セキュアなシステムでは次の算式を使用してポート範囲サイズ番号を概算できます。
3 (Storage Nodes, adding one for safety) + 3 * capacity (the number of replication nodes) \ + 2 (added only if the Storage Node is hosting an admin process as well)
たとえば、ストレージ・ノードの容量が1で、管理プロセスをホストしている場合、範囲サイズは少なくとも8にする必要があります。この最小値よりも範囲サイズを(3ずつ)増やすこともできます。これにより、このパラメータを将来変更しなくても、ストレージ・ノードの安全性と拡張性を確保できます。容量が2の場合、範囲サイズを11以上にする必要があります。隣接するマシンの範囲を調べることをお薦めします。ホスト上の他のサービスが範囲内のポートを使用する場合、そのポートはスキップされ、範囲が大きくなります。
セキュアなOracle NoSQL Databaseをデプロイしている場合には、次の算式を使用してポート範囲サイズ番号を概算できます。
4 (Storage Nodes, adding one for safety) + 4 * capacity (the number of replication nodes) \ + 3 (added only if the Storage Node is hosting an admin process as well)
ここでは、各ストレージ・ノード、レプリケーション・ノードまたは管理(構成されている場合)に追加のポートが1つ追加されました。
Oracle NoSQL Databaseを安全に構成するための詳細は、『Oracle NoSQL Databaseセキュリティ・ガイド』を参照してください。
次のパラメータをレプリケーション・ノードに対して設定できます。
collectEnvStats=<Boolean>
trueの場合、基になるBDB JEサブシステムで統計が.statファイルにダンプされます。この情報は、JEパフォーマンスのチューニングに役立ちます。Oracleサポートでは、チューニングのサポートまたは問題の調査のためにこれらの統計を要求する場合があります。
maxTrackedLatency=<Long TimeUnit>
レイテンシ・パーセンタイルの計算に含める最大レイテンシ。
configProperties=<String>
基になるBDB JEサブシステムのプロパティ設定を含みます。形式は、property=value;property=value...
です。
javaMiscParams=<String>
レプリケーション・ノード・プロセスの起動時にコマンドラインに追加される文字列。ヒープ・サイズを制御するために、-Xmx、-XmsなどのJava VMプロパティを設定します。文字列がJVMコマンド・ラインの有効な一連のトークンではない場合、管理プロセスの起動に失敗します。
loggingConfigProps=<String>
ロギング・サブシステムのプロパティ設定を含みます。この文字列の形式は、前述のconfigPropertiesと同様のものです。標準のjava.util.loggingプロパティをこのパラメータで設定できます。
statsInterval=<Long TimeUnit>
レイテンシ統計の収集期間をこのレプリケーション・ノードに設定します。この値のデフォルトは"60"秒です。平均的な間隔レイテンシやスループットのような値は、この期間の平均になります。
cacheSize=<Long>
基になるBDB JEサブシステムのキャッシュ・サイズを設定します。単位はバイトです。サイズはjavaヒープ・サイズによって制限され、javaヒープ・サイズはマシンで使用可能なメモリーの量によって制限されます。この下位レベルのパラメータは、Oracleサポートから明示的に指示された場合にのみ変更してください。
latencyCeiling=<Integer>
レプリケーション・ノードの平均レイテンシがこのミリ秒値を超えると、アラート対象のイベントとみなされます。このようなイベントは、管理コンソールでポップアップ表示され、管理のデータベースにクリティカルなイベントとして格納されます。SNMPまたはJMXの監視が有効な場合、このイベントによって該当する通知も送信されます。
throughputFloor=<Integer>
latencyCeiling同様、throughputFloorは、レプリケーション・ノードのスループットの下限を設定します。スループットの低下のレポートはアラート対象とみなされます。この値は1秒当たりの操作で示されます。
rnCachePercent=<Integer>
JE環境キャッシュのために保持されるRNメモリーの一部分。
次のパラメータは、すべてのストレージ・ノード、レプリケーション・ノードおよび管理に対し、暗黙的で一律に設定されます。
最上位およびトランスポート・セキュリティ・パラメータの詳細は、『Oracle NOSQL Databaseセキュリティ・ガイド』を参照してください。
sessionTimeout=<Long TimeUnit>
ログイン・セッションが(延長されないかぎり)有効な時間の長さを指定します。デフォルト値は、24時間です。
sessionExtendAllowed=<Boolean>
セッションの拡張を付与できるかどうかを示します。デフォルト値は、trueです。
accountErrorLockoutThresholdInterval=<Long TimeUnit>
アカウント・ロックアウト・モニタリングのログイン・エラー数を追跡する時間を指定します。デフォルト値は10分です。
accountErrorLockoutThresholdCount=<Integer>
ホストの自動アカウント・ロックアウトをトリガーするのに必要な追跡期間における特定のホストアドレスからのユーザー・アカウントの無効なログイン試行数です。デフォルト値は、10回です。
accountErrorLockoutTimeout=<Long TimeUnit>
ロックアウトがトリガーされてからアカウントがロックアウトされるまでの時間。デフォルト値は30分です。
loginCacheTimeout=<Long TimeUnit>
リクエストごとのログイン検証で他のサーバーに問い合せるのを防ぐために、KVStoreコンポーネントがログイン情報をローカルでキャッシュする時間。デフォルト値は5分です。
次のOracle NoSQL Databaseパラメータを変更すると、ストレージ・ノード・エージェントによって管理が再起動されます。
管理パラメータ:
adminLogFileCount
adminLogFileLimit
configProperties
javaMiscParams
loggingConfigProps
adminHttpPort
次に例を示します。
kv-> plan change-parameters -all-admins -params adminLogFileCount=10 Started plan 14. Use show plan -id 14 to check status. To wait for completion, use plan wait -id 14 kv-> show plan -id 14 Plan Change Admin Params (14) Owner: null State: INTERRUPTED Attempt number: 1 Started: 2013-08-26 20:12:06 UTC Ended: 2013-08-26 20:12:06 UTC Total tasks: 4 Successful: 1 Interrupted: 1 Not started: 2 Tasks not started Task StartAdmin start admin1 Task WaitForAdminState waits for Admin admin1 to reach RUNNING state kv-> plan execute -id 14 Started plan 14. Use show plan -id 14 to check status. To wait for completion, use plan wait -id 14 kv-> show plan -id 14 Plan Change Admin Params (14) State: SUCCEEDED Attempt number: 1 Started: 2013-08-26 20:20:18 UTC Ended: 2013-08-26 20:20:18 UTC Total tasks: 2 Successful: 2
plan change-parameters
コマンドを使用して管理再起動を必要とするパラメータを変更すると、プランはINTERRUPTED
状態になります。SUCCESSFUL
状態に移行するには、plan execute -id <id>
コマンドを使用してプランを2回再発行します。