コマンドライン・インタフェース(CLI)または"java -Xmx256m -Xms256m -jar <kvhome>/lib/kvstore.jar <command>"
を介してKVStoreコマンドにアクセスできます。次の項では、"java -jar"
を介してアクセスするCLIコマンドとユーティリティ・コマンドの両方について説明します。
コマンドライン・インタフェース(CLI)は、インタラクティブに実行されるか、1つのコマンドの実行に使用されます。CLIを開始する一般的な使用方法は次のとおりです。
java -Xmx256m -Xms256m \ -jar KVHOME/lib/kvstore.jar runadmin -host <hostname> -port <port> [single command and arguments]
スクリプト・ファイルを実行する場合、"load"コマンドをコマンドラインで使用できます。
java -Xmx256m -Xms256m \ -jar KVHOME/lib/kvstore.jar runadmin -host <hostname> -port <port> load -file <path-to-script>
オプションの引数が何も渡されていない場合は、インタラクティブに開始します。追加的な引数が渡されている場合は、実行してから返される1つのコマンドとして解釈されます。CLIのインタラクティブなプロンプトは次のとおりです。
"kv-> "
コマンドが正常に完了すると、CLIのプロセス終了コードはゼロです。エラーがある場合、終了コードはゼロ以外になります。
CLIには多数のコマンドが含まれますが、一部のコマンドにはサブコマンドがあります。複合的なコマンドは、情報を表示するための"show"やスキーマを操作するための"ddl"などの一般的な機能でグループ化されます。すべてのコマンドで次のフラグを使用できます。
-help
コマンドまたはサブコマンドのオンライン・ヘルプを表示します。
?
-helpと同じ意味です。コマンドまたはサブコマンドのオンライン・ヘルプを表示します。
-verbose
コマンドの冗長出力を有効にします。
CLIコマンドの一般的な形式は次のとおりです。
コマンドはすべて、次のような構造になります。
"kv-> command [sub-command] [arguments]
引数はすべて、"-"で始まるフラグを使用して指定します。
コマンドとサブコマンドでは大/小文字は区別されず、可能な場合は一部の文字列(接頭辞)で照合されます。ただし、引数では大/小文字が区別されます。
CLIスクリプト・ファイルの中では、#
を使用してコメントを記入できます。また、行の終わりに円記号(\
)を付けると、コマンドを次の行に続けることができます。
この付録ではコマンドとサブコマンドに関する次の情報が示されます。
数値フィールドに対し、count、sum、average、keys、startおよびendなどの単純なデータ集計操作を実行します。aggregateコマンドはストア内のキーまたは行のマッチングを繰り返すため、指定されたキーまたは行のサイズによっては、完了するのにとても長い時間がかかる可能性があります。
aggregateサブコマンドは次のとおりです。
aggregate kv [-count] [-sum <field[,field,..]>] [-avg <field[,field,..]>] [-key <key>] [-schema <name>] [-start <prefixString>] [-end <prefixString>]
指定キーを使用した単純なデータ集計操作を実行します。
説明:
-count
一致するレコードの件数を返します。
-sum
一致するフィールドの値の合計を返します。指定されたフィールドを持つスキーマのすべてのレコードがマッチングされます。一致しないレコードは無視されます。
-avg
一致するフィールドの値の平均を返します。指定されたフィールドを持つスキーマのすべてのレコードがマッチングされます。一致しないレコードは無視されます。
-key
使用するキー(接頭辞)を指定します。
-schema
使用するAvroスキーマを指定します。
-start
および-end
フラグ
反復に使用される範囲を制限します。これは特に、適切にフォーマットされた文字列などのキー・コンポーネントに基づいたレコードの範囲を取得する場合に有効です。-start
および-end
引数は、両端を含みます。
たとえば、ストア内のすべてのレコードの単純なcount
は次のとおりです。
kv-> aggregate kv -count count: 33508
Sum
およびaverage
は、一致するレコードの特定のフィールド名を操作しますが、これは、その名前のフィールドを含むAvroレコードのみが使用されるということです。Sumおよびaverageは、AvroタイプがINT、LONG、FLOATおよびDOUBLEの数値フィールドのみを操作します。
たとえば、次のようなスキーマがあるとします。
{ "type" : "record", "name" : "Cookie", "fields" : [ { "name" : "id", "type" : "string", "default" : "" }, { "name" : "frequency", "type" : "int", "default" : 0 }, { "name" : "lastVisit", "type" : "string", "default" : "" }, { "name" : "segments", "type" : { "type" : "array", "items" : "string" }, "default" : [ ] } ] }
frequency
という名前のフィールドのsum
の例:
kv-> aggregate kv -sum frequency -key /visits/charitable_donors/date sum(frequency): 2068
frequency
という名前のフィールドのaverage
の例:
kv -> aggregate kv -avg frequency -key /visits/charitable_donors/date avg(frequency): 2.494571773220748
aggregate table -name <name> [-count] [-sum <field[,field,..]>] [-avg <field[,field,..]>] [-index <name>] [-field <name> -value <value>]* [-field <name> [-start <value>] [-end <value>]] [-json <string>]
表の数値フィールドに対し、単純なデータ集計操作を実行します。
説明:
-table
操作を行う表を指定します。
-count
一致するレコードの件数を返します。
-sum
一致するフィールドの値の合計を返します。
-avg
一致するフィールドの値の平均を返します。
-index
使用する索引の名前を指定します。索引を使用する場合、指定されたフィールドは指定の索引に属する必要があり、索引エントリが一致する行全体で集計が実行されます。
-field
および-value
のペアを使用して、集計用の照合に使用する主キーのフィールド値を指定するか、キーを空にして表全体を照合できます。
-field
フラグと、その-start
および-end
フラグは、行の照合に使用する範囲の制限に使用できます。
-json
集計に使用するフィールドおよび値をJSON入力文字列として指定します。
次の例を参照してください。
# Create a table 'user_test' with an index on user_test(age): kv-> execute 'CREATE TABLE user_test (id INTEGER, firstName STRING, lastName STRING, age INTEGER, PRIMARY KEY (id))' Statement completed successfully kv-> execute 'CREATE INDEX idx1 on user_test (age)' Statement completed successfully # Insert 3 rows: kv-> put table -name user_test -json '{"id":1,"firstName":"joe","lastName":"wang","age":21}' Operation successful, row inserted. kv-> put table -name user_test -json '{"id":2,"firstName":"jack","lastName":"zhao","age":32}' Operation successful, row inserted. kv-> put table -name user_test -json '{"id":3,"firstName":"john","lastName":"gu","age":43}' Operation successful, row inserted. # Get count(*), sum(age) and avg(age) of rows in table: kv-> aggregate table -name user_test -count -sum age -avg age Row count: 3 Sum: age(3 values): 96 Average: age(3 values): 32.00 # Get count(*), sum(age) and avg(age) of rows where age >= 30, idx1 is utilized to filter the rows: kv-> aggregate table -name user_test -count -sum age -avg age -index idx1 -field age -start 30 Row count: 2 Sum: age(2 values): 75 Average: age(2 values): 37.50
change-policy [-dry-run] -params [name=value]*
まだデプロイされていないサービスに適用される、ストア全体ポリシーのパラメータを変更します。変更するパラメータは-paramsフラグの後に続き、スペースで区切られます。
スペースが埋め込まれたパラメータ値は、name="value with spaces"のように引用符で囲む必要があります。-dry-runが指定された場合、変更は行われずに新規パラメータが返されます。
ポリシー・パラメータの設定の詳細は、「ストア全体ポリシー・パラメータの設定」を参照してください。
configure -name <storename>
新規ストアを構成します。他の管理を実行できるようにするには、このコールを事前に行う必要があります。
-name
オプションを使用すると、構成するKVStoreの名前を指定できます。名前は、ストアに保持されるレコードのパスの形成に使用されます。このため、ファイル・パス内での使用に支障を来たす可能性のある文字をストア名に使用しないでください。コマンドライン・インタフェースでは無効なストア名は使用できません。有効な値は英数字、'-'、'_'、および'.'です。
指定されたホストおよびレジストリ・ポートに接続して管理機能を実行する、または指定されたストアに接続してデータ・アクセス機能を実行するコマンドをカプセル化します。
現行のストアがある場合は、別のストアに接続する前にクローズされます。特定のKVStoreのオープンに失敗した場合、次の警告が表示されます: "Warning: You are no longer connected to KVStore"。
サブコマンドは次のとおりです。
connect admin -host <hostname> -port <registry port> [-username <user>] [-security <security-file-path>]
指定されたホストおよびレジストリ・ポートに接続して、管理機能を実行します。管理サービスがターゲット・ホストでアクティブである必要があります。インスタンスが保護されている場合、ログイン資格証明を入力する必要がある可能性があります。
ストアまたは表の行からキー/値のペアを削除するコマンドをカプセル化します。サブコマンドは次のとおりです。
delete kv [-key <key>] [-start prefixString] [-end prefixString] [-all]
1つ以上のキーを削除します。-all
が指定される場合、指定のキーで始まるすべてのキーを削除します。キーが指定されていない場合、ストア内のすべてのキーを削除します。-start
および-end
フラグは、削除に使用する範囲の制限に使用できます。
たとえば、rootで始まるストア内のすべのキーを削除するには、次のようにします。
kv -> delete kv -all 301 Keys deleted starting at root
delete table -name <name> [-field <name> -value <value>]* [-field <name> [-start <value>] [-end <value>]] [-ancestor <name>]* [-child <name>]* [-json <string>] [-delete-all]
指定された表から1つまたは複数の行を削除します。表名はピリオドで区切られた名前で、フォーマットはtableName[.childTableName]*
です。
-field
および-value
のペアを使用して主キーのフィールド値を指定するか、キーを空にして表のすべての行を削除することも可能です。
-field
フラグと、その-start
および-end
フラグを使用して、親キーに関連する削除のサブ範囲を制限できます。
-ancestor
および-child
フラグを使用して、ターゲット表に加えて特定の祖先表または子孫表(あるいはその両方)の行を削除します。
-json
はキー・フィールド値がJSON形式であることを示します。
-delete-all
を使用すると、表内のすべての行を削除します。
ストア内のスキーマを操作する作業をカプセル化します。サブコマンドは次のとおりです。
ストア内のスキーマの管理の詳細は、「Avroスキーマの管理」を参照してください。
ddl add-schema <-file <file> | -string <schema string>> [-evolve] [-force]
新しいスキーマを追加するか、または同じ名前を持つ既存のスキーマを変更(展開)します。-evolveフラグを使用して、スキーマが変更されていることを示します。-forceフラグを使用して、変更の警告を無視してスキーマを追加します。
execute <statement>
Oracle NoSQL Databaseでは、表および索引を生成する文に使用するデータ定義言語(DDL)が用意されています。execute
コマンドを使用して、指定した文を非同期に実行します。文は一重引用符または二重引用符で囲む必要があります。このコマンドを使用する前に、まずストアに接続する必要があります。
次に例を示します。
kv-> execute 'CREATE TABLE users (id INTEGER, name STRING, pets ARRAY(STRING), primary key (id))' Statement completed successfully
kv-> execute 'DESCRIBE AS JSON TABLE users' { "type" : "table", "name" : "users", "comment" : null, "shardKey" : [ "id" ], "primaryKey" : [ "id" ], "fields" : [ { "name" : "id", "type" : "INTEGER", "nullable" : true, "default" : null }, { "name" : "name", "type" : "STRING", "nullable" : true, "default" : null }, { "name" : "pets", "type" : "ARRAY", "collection" : { "type" : "STRING" }, "nullable" : true, "default" : null } ] }
表操作を実行するデータ定義言語(DDL)の使用の詳細は、『NoSQL Database Table APIスタート・ガイド』を参照してください。
ストアからキー/値のペアを取得または表から行を取得するコマンドをカプセル化します。サブコマンドは次のとおりです。
get kv [-key <keyString>] [-json] [-file <output>] [-all] [-keyonly] [-valueonly] [-start <prefixString>] [-end <prefixString>]
指定されたキーを使用して単純なget操作を実行します。取得した値に表示可能な文字が含まれている場合はそれが出力され、そうでない場合は、そのバイト配列がBase64を使用して表示用にエンコーディングされます。この変換を示すために"[Base64]"が追加されます。getコマンドの引数は次のとおりです。
-key <keyString>
使用するフル・パスまたは接頭辞キー・パスを示します。<keyString>
がフル・キー・パスの場合、1つの値の情報が返されます。このget
コマンドのフォーマットは、<keyString>
です。<keyString>
が接頭辞キー・パスである場合、複数のキー/値のペアが返されます。このget
コマンドのフォーマットは、get -key <keyString> -all
です。キーは、メジャーおよびマイナー・キー・パスの両方、またはメジャー・キー・パスのみから構成されます。<keyString>フォーマットは、"major-key-path/-/minor-key-path"です。さらに、接頭辞キー・パスの場合、キーはメジャー・キー・パスの接頭辞部分から構成されます。
たとえば、KVStoreにある次のサンプル・キーを考えます。
/group/TC/-/user/bob /group/TC/-/user/john /group/TC/-/dep/IT /group/SZ/-/user/steve /group/SZ/-/user/diana
メジャー・キー・パスの接頭辞部分のみを含むキーを指定したgetコマンドは、次のようになります。
kv -> get kv -key /group -all -keyonly /group/TC/-/user/bob /group/TC/-/user/john /group/TC/-/dep/IT /group/SZ/-/user/steve /group/SZ/-/user/diana
メジャー・キー・パスを含むキーを指定したgetコマンドは、次のようになります。
kv -> get kv -key /group/TC -all -keyonly /group/TC/-/user/bob /group/TC/-/user/john /group/TC/-/dep/IT
メジャーおよびマイナー・キー・パスを含むキーを指定したgetコマンドは、次のようになります。
kv -> get kv -key /group/TC/-/user -all -keyonly /group/TC/-/user/bob /group/TC/-/user/john
kv -> get kv -key /group/TC/-/user/bob { "name" : "bob.smith", "age" : 20, "email" : "bob.smith@gmail.com", "phone" : "408 555 5555" }
-json
レコードがJSONの場合、指定する必要があります。
-file <output>
切り捨てられる出力ファイルを指定して、既存の内容をすべて、新しい内容で置き換えます。
次の例では、キー/Smith/Bob
からのレコードが、ファイル"data.out"
に書き込まれます。
kv -> get kv -key /Smith/Bob -all -file ./data.out
次の例では、ファイル"data.out"
の内容が、キー/Wong/Bill
からのレコードで置き換えられます。
kv -> get kv -key /Wong/Bill -all -file ./data.out
-all
指定のキーで始まる反復に指定されます。キーの引数が指定されていない場合、ストア全体が反復されます。
-keyonly
-all
とともに指定され、キーのみを返します。
-valueonly
-all
とともに指定され、値のみを返します。
-start <prefixString>
および-end <prefixString>
反復に使用される範囲を制限します。これは特に、適切にフォーマットされた文字列などのキー・コンポーネントに基づいたレコードの範囲を取得する場合に有効です。-start
および-end
引数は、どちらも両端を含みます。
-start
および-end
は、-key <keyString>
で指定されるキー・コンポーネントにのみ影響します。<keyString>
の値は単純な文字列で構成する必要があり、複数のキー・コンポーネントは指定できません。
たとえば、キー構造が次のようになっているログを考えます。
/log/<year>/<month>/-/<day>/<time>
同じ日のすべてのログ・エントリは同じパーティションに入れられますが、日付によってシャード間での分割が行われます。time
フォーマットは、"hour.minute"です。
そのため、次のように指定して、2013年2月および3月のすべてのログ・エントリのget
が可能です。
kv-> get kv -all -keyonly -key /log/2013 -start 02 -end 03 /log/2013/02/-/01/1.45 /log/2013/02/-/05/3.15 /log/2013/02/-/15/10.15 /log/2013/02/-/20/6.30 /log/2013/02/-/28/8.10 /log/2013/03/-/01/11.13 /log/2013/03/-/15/2.28 /log/2013/03/-/22/4.52 /log/2013/03/-/31/11.55
より完全なキー・パスを指定すると、より明確なget
コマンドになります。たとえば、4月1日から4月4日までのすべてのログ・エントリを表示するには、次のようにします。
kv-> get kv -all -keyonly -key /log/2013/04 -start 01 -end 04 /log/2013/04/-/01/1.03 /log/2013/04/-/01/4.05 /log/2013/04/-/02/7.22 /log/2013/04/-/02/9.40 /log/2013/04/-/03/4.15 /log/2013/04/-/03/6.30 /log/2013/04/-/03/10.25 /log/2013/04/-/04/4.10 /log/2013/04/-/04/8.35
サブコマンド「get table」を参照してください。
get table -name <name> [-index <name>] [-field <name> -value <value>]* [-field <name> [-start <value>] [-end <value>]] [-ancestor <name>]* [-child <name>]* [-json <string>] [-file <output>] [-pretty]
取得操作を実行し、指定された表から行を取得します。表名はピリオドで区切られた名前で、フォーマットはtableName[.childTableName]*
です。
-field
および-value
のペアを使用して主キーのフィールド値を指定するか、-index
で指定された索引を使用している場合は索引キーのフィールド値を指定するか、あるいはキーを空にして表全体で繰り返します。
-field
フラグと、その-start
および-end
フラグを使用して、親キーに関連する取得のサブ範囲を制限できます。
-ancestor
および-child
フラグを使用して、ターゲット表に加えて特定の祖先表または子孫表(あるいはその両方)の結果を返します。
-file
を使用して出力ファイルを指定します。出力ファイルは切り捨てられます。
-pretty
は、インデントおよび改行できれいにフォーマットされたJSON文字列に使用されます。
help [command [sub-command]] [-include-deprecated]
ヘルプ・メッセージを出力します。引数がない場合は最上位のシェル・コマンドが一覧表示されます。追加的なコマンドおよびサブコマンドがある場合は、追加の詳細が示されます。
kv-> help load load -file <path to file> Loads the named file and interpret its contents as a script of commands to be executed. If any of the commands in the script fail, execution will stop at that point.
非推奨となったコマンドを表示するには、-include-deprecated
を使用します。
次に例を示します。
kv-> help show -include-deprecated Usage: show admins datacenters events faults indexes parameters perf plans pools schemas snapshots tables topology upgrade-order users zones
通常は非表示になっているパラメータの可視性と設定を切り替えます。このパラメータは、Oracle Supportでアドバイスされた場合のみ使用してください。
history [-last <n>] [-from <n>] [-to <n>]
コマンド履歴を表示します。デフォルトではすべての履歴が表示されます。表示範囲の選択にはオプションのフラグが使用されます。
load -file <path to file>
指定したファイルをロードし、その内容を実行対象のコマンドのスクリプトとして解釈します。スクリプト内のいずれかのコマンドが失敗した場合、実行はその時点で停止します。
たとえば、スクリプト・ファイルload-contacts-5.txt
に次のコマンドが収集されているとします。
### Begin Script ### put -key /contact/Bob/Walker -value "{\"phone\":\"857-431-9361\", \ \"email\":\"Nunc@Quisque.com\",\"city\":\"Turriff\"}" \ -json example.ContactInfo put -key /contact/Craig/Cohen -value "{\"phone\":\"657-486-0535\", \ \"email\":\"sagittis@metalcorp.net\",\"city\":\"Hamoir\"}" \ -json example.ContactInfo put -key /contact/Lacey/Benjamin -value "{\"phone\":\"556-975-3364\", \ \"email\":\"Duis@laceyassociates.ca\",\"city\":\"Wasseiges\"}" \ -json example.ContactInfo put -key /contact/Preston/Church -value "{\"phone\":\"436-396-9213\", \ \"email\":\"preston@mauris.ca\",\"city\":\"Helmsdale\"}" \ -json example.ContactInfo put -key /contact/Evan/Houston -value "{\"phone\":\"028-781-1457\", \ \"email\":\"evan@texfoundation.org\",\"city\":\"Geest-G\"}" \ -json example.ContactInfo exit ### End Script ###
スクリプトを実行するには、データ・コマンドライン・インタフェースでload
コマンドを使用します。
スクリプトを実行する前に、ストアにスキーマをロードしておく必要があります。スキーマの追加に関する詳細は、『Oracle NoSQL Databaseスタート・ガイド』のスキーマの追加に関する項を参照してください。
> java -Xmx256m -Xms256m \ -jar KVHOME/lib/kvstore.jar runadmin -host node01 -port 5000 \ -store mystore kv-> load -file ./load-contacts-5.txt Operation successful, record inserted. Operation successful, record inserted. Operation successful, record inserted. Operation successful, record inserted. Operation successful, record inserted.
ストアには次のスキーマが事前にロードされていました。
{ "type": "record", "name": "ContactInfo", "namespace": "example", "fields": [ {"name": "phone", "type": "string", "default": ""}, {"name": "email", "type": "string", "default": ""}, {"name": "city", "type": "string", "default": ""} ] }
ロード・コマンドの使用の詳細は、「ストアを構成するためのスクリプトの使用」を参照してください。
ping [-json]
ストアのランタイム・コンポーネントに対してPingを実行します。トポロジから使用可能なコンポーネントと管理サービスに接続します。
説明:
-json
出力をJSON形式で表示します。
ストア状態を変更する作業またはジョブをカプセル化します。interruptおよびwait以外のすべてのサブコマンドが永続的な状態を変更します。プランは非同期ジョブであるため、-wait
が使用されていなければすぐに返されます。プラン・ステータスはshow plans
を使用してチェックできます。すべてのプラン用のオプションの引数は、次のとおりです。
-wait
プランが返される前に終了するまで待機します。
-plan-name
プランの名前。これらは一意です。
-noexecute
プランを実行しません。指定された場合、プランは後でplan execute
を使用して実行できます。
-force
プラン実行およびプラン再試行を強制実行するために使用されます。
サブコマンドは次のとおりです。
plan add-index -name <name> -table <name> [-field <name>]* [-desc <description>] [-plan-name <name>] [-wait] [-noexecute] [-force]
ストア内の表に索引を追加します。表名はピリオドで区切られた名前で、フォーマットはtableName[.childTableName]*
です。
plan add-table -name <name> [-plan-name <name>] [-wait] [-noexecute] [-force]
ストアに新しい表を追加します。表名はピリオドで区切られた名前で、フォーマットはtableName[.childTableName]*
です。
表を追加する前に、まずtable create
コマンドを使用して指定された表を作成します。次の例では、表を定義します(名前で表を作成し、フィールドおよびその他の表メタデータを追加します)。
## Enter into table creation mode table create -name user -desc "A sample user table" user-> user-> help Usage: add-array-field | add-field | add-map-field | add-record-field | add-schema | cancel | exit | primary-key | remove-field | set-description | shard-key | show
## Now add the fields user-> help add-field Usage: add-field -type <type> [-name <field-name> ] [-not-required] [-nullable] [-default <value>] [-max <value>] [-min <value>] [-max-exclusive] [-min-exclusive] [-desc <description>] [-size <size>] [-enum-values <value[,value[,...]] <type>: INTEGER, LONG, DOUBLE, FLOAT, STRING, BOOLEAN, DATE, BINARY, FIX ED_BINARY, ENUM
## Adds a field. Ranges are inclusive with the exception of String, ## which will be set to exclusive. user-> add-field -type Integer -name id user-> add-field -type String -name firstName user-> add-field -type String -name lastName user-> help primary-key Usage: primary-key -field <field-name> [-field <field-name>]* ## Sets primary key. user-> primary-key -field id ## Exit table creation mode user-> exit ## Table User built.
table list -create
を使用すると、追加できる表の一覧を表示します。次の例はデプロイメントの準備が整っている表を一覧表示します。
kv-> table list ## Tables to be added: ## User -- A sample user table kv-> table list -name user ## Add table User: { "type" : "table", "name" : "User", "id" : "User", "description" : "A sample user table", "shardKey" : [ "id" ], "primaryKey" : [ "id" ], "fields" : [ { "name" : "id", "type" : "INTEGER" }, { "name" : "firstName", "type" : "STRING" }, { "name" : "lastName", "type" : "STRING" } ] }
次の例では、ストアに表を追加します。
## Add the table to the store. kv-> help plan add-table kv-> plan add-table -name user -wait Executed plan 5, waiting for completion... Plan 5 ended successfully kv-> show tables -name user { "type" : "table", "name" : "User", "id" : "r", "description" : "A sample user table", "shardKey" : [ "id" ], "primaryKey" : [ "id" ], "fields" : [ { "name" : "id", "type" : "INTEGER" }, { "name" : "firstName", "type" : "STRING" }, { "name" : "lastName", "type" : "STRING" } ] }
表デザインに関する詳細および例は、Oracle NoSQL Database表および索引の概要を参照してください。
plan cancel -id <plan id> | -last
実行中ではないプランを取り消します。実行中のプランを取り消すにはその前に中断する必要があります。
-last
オプションを使用して、最も最近作成されたプランを参照します。
plan change-parameters -security | -service <id> | -all-rns [-zn <id> | - znname <name>] | -all-admins [-zn <id> | -znname <name>] [-dry-run] [-plan-name <name>] [-wait] [-noexecute] [-force] -params [name=value]*
指定されたゾーンまたはすべてのゾーンにデプロイされた、指定されたサービスまたは同じタイプのすべてのサービス・インスタンスのパラメータを変更します。
-security
フラグにより、ストア全体のグローバル・セキュリティ・パラメータの変更が可能です。他のフラグとともに使用しないでください。
-service
フラグにより、単一インスタンスが影響を受けるようにできます。-zn
または-znname
フラグとともに使用しないでください。
-all-*
フラグは、サービス・タイプのすべてのインスタンスを変更する際に使用できます。変更するパラメータは-params
フラグの後に続き、スペースで区切られます。スペースが埋め込まれたパラメータ値は、name="value with spaces"のように引用符で囲む必要があります。
-all-*フラグの1つを-znまたは-znnameフラグを組み合せて、指定されたゾーンにデプロイされたサービス・タイプのすべてのインスタンスを変更できます。別のゾーンにデプロイされた指定タイプのインスタンスは変更しません。-all-*フラグの1つがゾーンを指定せずに使用された場合、必要なパラメータ変更は、ゾーンに関係なくストア内の指定されたタイプのすべてのインスタンスに適用されます。
-dry-run
が指定された場合、新規パラメータが変更されずに返されます。変更できるパラメータを表示するには、コマンドshow parameters
を使用します。詳細は、「show parameters」を参照してください。
ストア内のパラメータの変更の詳細は、「ストアのパラメータの設定」を参照してください。
plan change-storagedir -sn <id> -storagedir <path> -add | -remove [-plan-name <name>] [-wait] [-noexecute] [-force]
レプリケーション・ノードを格納するために、ストレージ・ノード上のストレージ・ディレクトリを追加または削除します。
plan change-user -name <user name> [-disable | -enable] [-set-password [-password <new password>] [-retain-current-password]] [-clear-retained-password] [-plan-name <name>] [-wait] [-noexecute] [-force]
ストアで指定された名前でユーザーを変更します。-retain-current-password引数オプションによって、構成された保存時間の間または-clear-retained-passwordを使用して消去されるまで、-set-password操作で有効な代替パスワードとして現行パスワードを保持します。保持されたパスワードがすでにユーザーに設定されている場合、再度パスワードを設定するとエラーが発生し、レポートされます。
このコマンドは非推奨です。詳細は、『Oracle NoSQL Database管理者ガイド』でユーザーの変更に関する項を参照してください。
plan create-user -name <user name> [-admin] [-disable] [-password <new password>] [-plan-name <name>] [-wait] [-noexecute] [-force]
ストアで指定された名前でユーザーを作成します。-admin引数は作成されたユーザーに完全な管理者権限があることを示します。
このコマンドは非推奨です。詳細は、『Oracle NoSQL Database管理者ガイド』でユーザーの作成に関する項を参照してください。
plan deploy-admin -sn <id> -port <http port> [-plan-name <name>] [-wait] [-noexecute] [-force]
指定されたストレージ・ノードにAdminをデプロイします。管理のタイプ(PRIMARY/SECONDARY)は、ストレージ・ノードが置かれているゾーンのタイプと同じです。このグラフィカル・インタフェースは指定されたポート上でリスニングします。
管理のデプロイの詳細は、「特定のホストでの管理プロセスの作成」を参照してください。
非推奨。かわりに「plan deploy-zone」を参照してください。
plan deploy-sn -zn <id> | -znname <name> -host <host> -port <port> [-plan-name <name>] [-wait] [-noexecute] [-force]
指定されたホストおよびポートにおけるストレージ・ノードを指定されたゾーンにデプロイします。
ストレージ・ノードのデプロイの詳細は、「残りのストレージ・ノードの作成」を参照してください。
plan deploy-topology -name <topology name> [-plan-name <name>] [-wait] [-noexecute] [-force]
指定されたトポロジをストアにデプロイします。この操作は、ストアのサイズおよび状態によって、時間がかかる場合があります。
申し分のないトポロジ候補のデプロイの詳細は、「トポロジ候補のデプロイ」を参照してください。
plan deploy-zone -name <zone name> -rf <replication factor> [-type [primary | secondary]] [-plan-name <name>] [-wait] [-noexecute] [-force]
-typeが指定されていない場合、指定されたゾーンをストアにデプロイし、プライマリ・ゾーンを作成します。
ゾーンの作成に関する詳細は、「ゾーンの作成」を参照してください。
plan drop-user -name <user name> [-plan-name <name>] [-wait] [-noexecute] [-force]
ストア内の指定された名前でユーザーを削除します。ログイン・ユーザーは自身を削除することはできません。
このコマンドは非推奨です。詳細は、『Oracle NoSQL Database管理者ガイド』でユーザーの削除に関する項を参照してください。
plan evolve-table -name <name> [-plan-name <name>] [-wait] [-noexecute] [-force]
ストア内で表を展開します。表名はピリオドで区切られ、フォーマットはtableName[.childTableName]*
です。
table evolve
コマンドを使用して、指定された表を展開します。次の例では、表を展開しています。
## Enter into table evolution mode kv-> table evolve -name User kv-> show { "type" : "table", "name" : "User", "id" : "r", "description" : "A sample user table", "shardKey" : [ "id" ], "primaryKey" : [ "id" ], "fields" : [ { "name" : "id", "type" : "INTEGER" }, { "name" : "firstName", "type" : "STRING" }, { "name" : "lastName", "type" : "STRING" } ] } ## Add a field kv-> add-field -type String -name address ## Exit table creation mode kv-> exit ## Table User built.
kv-> plan evolve-table -name User -wait ## Executed plan 6, waiting for completion... ## Plan 6 ended successfully kv-> show tables -name User { "type" : "table", "name" : "User", "id" : "r", "description" : "A sample user table", "shardKey" : [ "id" ], "primaryKey" : [ "id" ], "fields" : [ { "name" : "id", "type" : "INTEGER" }, { "name" : "firstName", "type" : "STRING" }, { "name" : "lastName", "type" : "STRING" }, { "name" : "address", "type" : "STRING" } ] }
table list -evolve
を使用すると、展開できる表の一覧を表示します。詳細は「plan add-table」を参照してください。
plan execute -id <id> | -last [-wait] [-force]
作成済でまだ実行されていないプランを実行します。プランは、-noexecute
フラグを使用して事前に作成されているはずです。
-last
オプションを使用して、最も最近作成されたプランを参照します。
plan grant [-role <role name>]* -user <user_name>
ユーザーにロールを付与できるようにします。
説明:
-role <role name>
付与するロールを指定します。ロール名は、Oracle NOSQL Databaseセキュリティ・ガイドにリストされているシステム定義ロール(public
以外)である必要があります。
-user <user_name>
ロールを付与するユーザーを指定します。
このコマンドは非推奨です。詳細は、『Oracle NoSQL Database管理者ガイド』でロールまたは権限の付与に関する項を参照してください。
plan interrupt -id <plan id> | -last
実行中のプランを中断します。中断されたプランは再実行または取消のみが可能です。-lastを使用して、最も最近作成されたプランを参照します。
plan migrate-sn -from <id> -to <id> [-admin-port <admin port>] [-plan-name <name>] [-wait] [-noexecute] [-force]
あるストレージ・ノードから別のストレージ・ノードにサービスを移行します。古いノードは実行中ではないことが必要です。
古いノードが管理サービスをホストしていた場合は、-admin-port
オプションが必要です。
plan migrate-sn
コマンドを実行する前に、-java -Xmx256m -Xms256m -jar KVHOME/lib/kvstore.jar stop -root KVROOT
を使用して実行中の古いストレージ・ノードを停止できます。
plan remove-admin -admin <id> | -zn <id> | -znname <name> [-force] [-plan-name <name>] [-wait] [-noexecute] [-force]
必要な管理インスタンス(単一の指定されたインスタンスまたはデプロイされたすべてのインスタンス)を指定されたゾーンに移動します。
ストア内で実行されている管理が3つ以下で-admin
フラグを使用する場合、あるいは-zn
または-znname
フラグを使用して指定されたゾーンからすべての管理を削除することでストア内に残る管理が1つか2つのみの場合、-force
フラグを使用した場合にのみ必要な管理が削除されます。
また、ストア内の管理が1つのみで-admin
フラグを使用する場合、あるいは、-zn
または-znname
フラグを使用して指定されたゾーンからすべての管理を削除することでストアからすべての管理が削除されることになる場合、必要な管理は削除されません。
plan remove-index -name <name> -table <name> [-plan-name <name>] [-wait] [-noexecute] [-force]
表から索引を削除します。表名はピリオドで区切られた名前で、フォーマットはtableName[.childTableName]*です。
plan remove-sn -sn <id> [-plan-name <name>] [-wait] [-noexecute] [-force]
指定されたストレージ・ノードをトポロジから削除します。
このコマンドは、未使用の古いストレージ・ノードをストアから削除する場合に便利です。これを行うには、「障害が発生したストレージ・ノードの置換」を参照してください。
plan remove-table -name <name> [-keep-data] [-plan-name <name>] [-wait] [-noexecute] [-force]
ストアから表を削除します。指定された表が存在し、子表を持っていない必要があります。表の索引は自動的に削除されます。デフォルトでは、この表に格納されているデータも削除されます。表データは-keep-dataフラグを指定することにより、オプションで保存できます。索引および表に格納されているデータの量によっては、長時間のプランになる可能性があります。
次の例では、表を削除しています。
## Remove a table. kv-> plan remove-table -name User ## Started plan 7. Use show plan -id 7 to check status. ## To wait for completion, use plan wait -id 7. kv-> show tables ## No table found.
詳細はOracle NoSQL Database表および索引の概要を参照してください。
plan remove-zone -zn <id> | -znname <name> [-plan-name <name>] [-wait] [-noexecute] [-force]
指定されたゾーンをストアから削除します。
このコマンドを実行する前に、plan remove-sn
コマンドを使用して、指定されたゾーンに属するすべてのストレージ・ノードをまず削除する必要があります。
plan repair-topology [-plan-name <name>] [-wait] [-noexecute] [-force]
前回のdeploy-topologyまたはmigrate-snプランの中断か取消から発生した可能性がある、デプロイされた現行トポロジにおける位置メタデータの不整合を検証します。可能であれば、不整合は修復されます。この操作は、ストアのサイズおよび状態によって、時間がかかる場合があります。
plan revoke [-role <role name>]* -user <user_name>
ユーザーからロールを取り消すことができるようにします。
説明:
-role <role name>
取り消されるロールを指定します。ロール名は、Oracle NOSQL Databaseセキュリティ・ガイドにリストされているシステム定義ロール(public
以外)である必要があります。
-user <user_name>
ロールが取り消されるユーザーを指定します。
このコマンドは非推奨です。詳細は、『Oracle NoSQL Database管理者ガイド』でロールまたは権限の取消しに関する項を参照してください。
plan start-service -service <id> | -all-rns [-plan-name <name>] [-wait] [-noexecute] [-force]
指定されたサービスを開始します。
plan stop-service -service <id> | -all-rns [-plan-name <name>] [-wait] [-noexecute] [-force]
指定されたサービスを停止します。
このコマンドを使用して、システムによる通信の試行が行われなくなるように、影響を受けるサービスを停止します。その結果、すでに認識している障害に関連するエラー出力の量が減少します。
このコマンドは、ディスク置換プロセスの際に役立ちます。障害が発生したディスクを削除する前に、影響を受けるサービスを停止するには、plan stop-service
コマンドを使用します。詳細は、「障害が発生したディスクの置換」を参照してください。
リソース割当てに使用されるストレージ・ノード・プールを操作するコマンドをカプセル化します。サブコマンドは次のとおりです。
pool create -name <name>
ストアの作成または変更時にリソース・ディストリビューションに使用される、新規ストレージ・ノード・プールを作成します。
ストレージ・ノード・プールの作成の詳細は、「ストレージ・ノード・プールの作成」を参照してください。
ストアにキー/値のペアを格納または表に行を格納するコマンドをカプセル化します。サブコマンドは次のとおりです。
put kv -key <keyString> -value <valueString> [-file] [-hex | -json <schemaName>] [-if-absent] [-if-present]
指定のキー/値のペアをストアに格納します。次の引数が、putコマンドに適用されます。
-key<keyString>
ストアに格納するキーの名前を指定します。キーはメジャーおよびマイナー・キー・パスの両方、またはメジャー・キー・パスのみから構成されます。<keyString>フォーマットは、"major-key-path/-/minor-key-path"です。
たとえば、メジャーおよびマイナー・キー・パスを含むキーは、次のとおりです。
kv-> put -key /Smith/Bob/-/email -value "{\"id\": 1,\"email\":\"bob.smith@gmail.com\"}" -json schema.EmailInfo
たとえば、メジャー・キー・パスのみを含むキーは、次のとおりです。
kv-> put -key /Smith/Bob -value"{\"name\": \"bob.smith\", \"age\": 20, \"phone\":\"408 555 5555\", \"email\": \"bob.smith@gmail.com\"}" -json schema.UserInfo
-value <valueString>
-jsonと-fileのどちらも指定しない場合、<valueString>は、RAWバイト配列して扱われます。
次に例を示します。
kv-> put -key /Smith/Bob/-/phonenumber -value "408 555 5555"
RAW配列とデータ構造とのマッピング(シリアライズおよびデシリアライズ)はすべて、アプリケーションで行う必要があります。これは推奨される方法ではありません。かわりに、非常に単純な値に対しても、Avroを使用してください。
-json
でJSON文字列を指定する場合、valueString
は引用符でカプセル化する必要があり、その内部フィールド名および文字型の値も、文字列引用文字でカプセル化する必要があります。
次に例を示します。
kv-> put -key /Smith/John/-/email -value "{\"id\": 1,\"email\":\"john.smith@gmail.com\"}" -json schema.EmailInfo
-file
値がファイルから取得されることを示します。使用するファイルは値パラメータで識別されます。
次に例を示します。
kv-> put -key /Smith/Bob -value ./smith-bob-info.txt -file -json schema.UserInfo
-hex
値が、BASE64エンコーディングによるBinHexエンコード・バイト値であることを示します。
-json<schemaName>
値がJSON文字列であることを示します。-file
とともに指定できます。
-if-absent
指定のキーに値が存在しない場合のみ、キー/値ペアがput
であることを示します。
-if-present
指定のキーに値が存在する場合のみ、キー/値ペアがput
であることを示します。
put table -name <name> [if-absent | -if-present ] [-json <string>] [-file <file>] [-update]
指定された表に行を格納します。表名はピリオドで区切られた名前で、フォーマットはtable[.childTableName]*です。
説明:
-if-absent
行が存在しない場合のみ、行を格納することを示します。
-if-present
行がすでに存在する場合のみ、行を格納することを示します。
-json
値がJSON文字列であることを示します。
-file
ファイルからJSON文字列をロードするために使用できます。
-update
既存のレコードを部分的に更新するために使用できます。
ストアおよびそのコンポーネントまたはスキーマの状態を表示するコマンドをカプセル化します。サブコマンドは次のとおりです。
show events [-id <id>] | [-from <date>] [-to <date> ] [-type <stat | log | perf>]
イベント詳細またはストア・イベントのリストを表示します。ステータス・イベントは、サービス・ステータスの変更を示します。
ログ・イベントは、注意が必要な場合は示されます。
パフォーマンス・イベントは通常クリティカルではありませんが、調査の評価に値します。"SEVERE"とマークされたイベントは調査する必要があります。
次の日付/時間の形式を使用できます。これはローカル・タイム・ゾーンで解釈されます。
MM-dd-yy HH:mm:ss:SS |
MM-dd-yy HH:mm:ss |
MM-dd-yy HH:mm |
MM-dd-yy |
HH:mm:ss:SS |
HH:mm:ss |
HH:mm |
イベントの詳細は、「イベント」を参照してください。
show faults [-last] [-command <command index>]
失敗しているコマンドを表示します。デフォルトではすべての使用可能な失敗コマンドが表示されます。個々の失敗の詳細は、-lastおよび-commandフラグを使用して表示できます。
show indexes [-table <name>] [-name <name>]
索引メタデータを表示します。デフォルトでは、すべての表の索引メタデータがリストされます。
特定の表が指定された場合、その表の索引メタデータが表示されます。特定の表の索引が指定された場合、その索引のメタデータが表示されます。詳細は、「plan add-index」を参照してください。
show parameters -policy | -service <name>
指定されたサービスのサービス・パラメータおよび状態を表示します。サービスには、任意の有効な文字列(たとえば、rg1-rn1、sn1、admin2)で識別されるレプリケーション・ノード、ストレージ・ノードまたは管理サービスを指定できます。-policyフラグを使用してグローバル・ポリシー・パラメータを表示します。
show plans [-id <id> | -last]
指定されたプランの詳細を表示するか、対応するプランIDおよびステータスとともに作成されているすべてのプランを一覧表示します。
-id
オプションを使用すると、追加の詳細およびステータスを表示するプランを指定できます。
-last
オプションは、最も最近作成されたプランの詳細を表示します。
プラン確認の詳細は、「プランの確認」を参照してください。
show schemas [-disabled] | [-name <name>]
指定されたスキーマのスキーマ詳細、またはストアに登録されているスキーマのリストを表示します。
-name
オプションを使用すると、ストアで現在有効かどうかを確認するスキーマの名前を指定できます。
-disabled
オプションを使用すると、現在無効なスキーマも含めて、すべてのスキーマを表示できます。
show snapshots [-sn <id>]
指定されたストレージ・ノード上のスナップショットを一覧表示します。ストレージ・ノードが指定されていない場合、ストアからストレージ・ノードが1つ選択されます。このコマンドを使用して既存のスナップショットを表示できます。
show tables -name <name>
表情報を表示します。展開のために表を構築している場合、-original
フラグを使用して、元の表情報を表示します。追加するために表を構築している場合、フラグは無視されます。詳細は、「plan add-table」および「plan evolve-table」を参照してください。
show topology [-zn] [-rn] [-sn] [-store] [-status] [-perf]
現在のデプロイ済トポロジを表示します。デフォルトではトポロジ全体が表示されます。オプションのフラグにより、ゾーン、レプリケーション・ノード、ストレージ・ノードおよびストア名の表示を限定するか、あるいはサービス・ステータスまたはパフォーマンスを指定します。
このコマンドを使用すると、ストレージ・ノードをデプロイできるゾーンのIDを取得できます。
show upgrade-order
アップグレードが必要なストレージ・ノードを、ストアの操作が中断しないような順序でリストします。
このコマンドでは、1つ以上のストレージ・ノードが1行に表示されます。1行に複数のストレージ・ノードが表示される場合、スペースで区切られます。1行に複数のストレージ・ノードが表示されている場合、そのノードをまとめて安全にアップグレードできます。複数のノードをまとめてアップグレードする場合、すべてのノードのアップグレードが完了してからでなければ、リストの次のノードはアップグレードできません。
ある時点で次にアップグレードするノードのグループがわからなくなった場合は、show upgrade-orderコマンドをいつでも再実行できます。
show users [-name <name>
すべてのユーザーの名前をリストするか、特定のユーザーに関する情報を表示します。ユーザーが指定されていない場合、すべてのユーザーの名前がリストされます。-name
オプションを使用して、ユーザーが指定されている場合、ユーザーに関する詳細情報がリストされます。
バックアップおよびリストアに使用されるスナップショットを作成および削除するコマンドをカプセル化します。サブコマンドは次のとおりです。
snapshot create -name <name>
指定された名前を接頭辞として使用して、新規スナップショットを作成します。
-name
オプションを使用すると、作成するスナップショットの名前を指定できます。
スナップショットは、構成の(トポロジ的な)変更が行われている間は作成しないでください。スナップショットに整合性がなく、使用できなくなる可能性があるためです。
snapshot remove -name <name> | -all
指定されたスナップショットを削除します。-allが指定されている場合、すべてのスナップショットを削除します。
-name
オプションを使用すると、削除するスナップショットの名前を指定できます。
-all
オプションが指定されている場合、すべてのスナップショットを削除します。
スナップショットを使用してストアのバックアップを作成するには、「スナップショットの作成」を参照してください。
以前に作成したスナップショットからストアをリカバリするには、ロード・ユーティリティを使用するか、またはスナップショットから直接リストアします。詳細は、「Loadプログラムの使用」または「スナップショットからの直接リストア」を参照してください。
table sizeを除いて非推奨となりました。かわりにexecuteを参照してください。詳細は、「table size」を参照してください
table size -name <name> -json <string> [-rows <num> [[-primarykey | -index <name>] -keyprefix <size>]]
行入力を使用して指定の表のキーおよびデータ・サイズを計算し、必要に応じて、同じ書式の指定行数に必要なNoSQL DBキャッシュ・サイズを見積もります。複数のサンプル行でこのコマンドを実行することにより、ストア・パフォーマンスに必要なキャッシュ・サイズを決定するのに役立ちます。
-jsonでは、計算に使用するサンプル行を指定します。
-rowsでは、キャッシュ・サイズの計算に使用する行数を指定します
-indexまたは-primarykeyおよび-keyprefixを使用して、索引キーの予期する共通点をバイト数単位で指定できます。
主に次の内容を実行します。
JSON形式の入力行に基づいてキーとデータのサイズを計算します。
同じJSON形式で指定された行数に必要なDBキャッシュ・サイズを推定します。
出力には、主キー/索引に関する詳細なサイズ情報と合計サイズが含まれ、内部的にJEのDbCacheSizeユーティリティを呼び出して、入力パラメータを利用し、主キーと索引に必要なキャッシュ・サイズを計算します。
java -jar $KVHOME/dist/lib/je.jar DbCacheSize -records <num> -key <size> -data <size> -keyprefix <size> -outputproperties -replicated <JE properties...> -duplicates]
説明:
-records <num>: -row <num>によって指定される行の数。
-key <size>: ステップ1で取得されるキーのサイズ。
-data <size>: ステップ1で取得されるデータのサイズ。
-keyprefix <size>: -primarykey | -index <name> -keyprefix <size>を使用して指定される、キーの予測される共通点
-duplicates: 表索引のためにのみ使用されます。
-<JE properties...>: kvstoreで使用されるJE構成パラメータ。
次に例を示します。
表ユーザー(idは整数、addressは文字列、zip_codeは文字列)を作成し、ユーザー(zip_code)上のidx1を作成します
kv-> execute "create table user (id integer, address string, zip_code string, primary key(id))"
kv-> execute "create index idx1 on user (zip_code)"
次の場合を参照してください。
JSONの入力行に基づいてキーとデータのサイズを計算します。
kv-> table size -name user -json '{"id":1, "address": "Oracle Building ZPark BeiJing China","zip_code":"100000"}' === Key and Data Size === Name Number of Bytes ----------------- --------------- Primary Key 8 Data 47 Index Key of idx1 7
10000行の表のキー/データのサイズとキャッシュ・サイズを計算します。
kv-> table size -name user -json '{"id":1, "address": "Oracle Building ZPark BeiJing China","zip_code":"100000"}' -rows 10000 === Key and Data Size === Name Number of Bytes ----------------- --------------- Primary Key 8 Data 47 Index Key of idx1 7 === Environment Cache Overhead === 16,798,797 minimum bytes === Database Cache Sizes === Name Number of Bytes Description ----- --------------- ---------------------------------- 1,024,690 Internal nodes only Table 1,024,690 Internal nodes and record versions 1,024,690 Internal nodes and leaf nodes ----- --------------- ---------------------------------- 413,728 Internal nodes only idx1 413,728 Internal nodes and record versions 413,728 Internal nodes and leaf nodes ----- --------------- ---------------------------------- 1,438,418 Internal nodes only Total 1,438,418 Internal nodes and record versions 1,438,418 Internal nodes and leaf nodes
詳細は、DbCacheSizeのjavadoc (http://docs.oracle.com/cd/E17277_02/html/java/com/sleepycat/je/util/DbCacheSize.html)を参照してください
キャッシュ・サイズは次のように計算されます。
表のキャッシュ・サイズ
java -jar KVHOME/lib/je.jar DbCacheSize -records 10000 key 8 -data 47 -outputproperties -replicated <JE properties...>
パラメータは次のとおりです。
レコード番号: 10000
主キー・サイズ: 8
データ・サイズ: 47
表のキャッシュ・サイズ
java -jar KVHOME/lib/je.jar DbCacheSize -records 10000 -key 7 -data 8 -outputproperties -replicated <JE properties...> -duplicates
パラメータは次のとおりです。
レコード番号: 10000
索引キー・サイズ: 7
データ・サイズ: 8。セカンダリ索引のデータが主キーなので、ここでは主キー・サイズを使用しています。
索引に-duplicatesを使用します。
合計サイズ = 表のキャッシュ・サイズ+idx1のキャッシュ・サイズ。
idx1のキー接頭辞サイズでキャッシュ・サイズを計算します
kv-> table size -name user -json '{"id":1, "address":"Oracle Building ZPark BeiJing China", "zip_code":"100000"}' -rows 10000 -index idx1 -keyprefix 3 === Key and Data Size === Name Number of Bytes ----------------- --------------- Primary Key 8 Data 47 Index Key of idx1 7 === Environment Cache Overhead === 16,798,797 minimum bytes === Database Cache Sizes === Name Number of Bytes Description ----- --------------- ---------------------------------- 1,024,690 Internal nodes only Table 1,024,690 Internal nodes and record versions 1,024,690 Internal nodes and leaf nodes ----- --------------- ---------------------------------- 413,691 Internal nodes only idx1 413,691 Internal nodes and record versions 413,691 Internal nodes and leaf nodes ----- --------------- ---------------------------------- 1,438,381 Internal nodes only Total 1,438,381 Internal nodes and record versions 1,438,381 Internal nodes and leaf nodes
詳細は、DbCacheSizeのjavadoc (http://docs.oracle.com/cd/E17277_02/html/java/com/sleepycat/je/util/DbCacheSize.html)を参照してください
idx1にはキー接頭辞サイズが与えられ、idx1のキャッシュ・サイズは次のように計算されます。
java -jar KVHOME/lib/je.jar DbCacheSize -records 10000 -key 7 -data 8 -keyprefix 3 -outputproperties -replicated <JE properties...> -duplicates
上の例では、idx1のキャッシュ・サイズが413,691であり、ケース2の413,728より小さいことがわかります。キー接頭辞の使用方法については、JE DbCacheSizeのドキュメント(http://docs.oracle.com/cd/E17277_02/html/java/com/sleepycat/je/util/DbCacheSize.html)を参照してください
time command [sub-command]
timeコマンドは、指定のコマンドを指定の引数とともに実行し、実行の経過時間を出力します。
たとえば、レコードの取得およびそれらのファイルへの書込みにかかった時間を表示するには、次のようにします。
kv-> time get -all -file ./data.out 209 Records returned. Wrote value to file ./data.out. Time: 265 ms.
たとえば、すべての既存のキーを削除するのにかかった時間を表示するには、次のようにします。
kv-> time delete -all 210 Keys deleted starting at root Time: 265 ms.
ストア・トポロジを操作するコマンドをカプセル化します。たとえば、ノードの再ディストリビューション/再均衡化、レプリケーション係数の変更などです。トポロジは、このコマンドを使用して作成および変更されます。次にplan deploy-topology
コマンドを使用してデプロイされます。詳細は、「plan deploy-topology」を参照してください。サブコマンドは次のとおりです。
topology change-repfactor -name <name> -pool <pool name> -zn <id> | -znname <name> -rf <replication factor>
トポロジを変更して、指定されたゾーンのレプリケーション係数を新しい値に変更します。レプリケーション係数はこのとき減少しない可能性があります。
レプリケーション係数の変更の詳細は、「レプリケーション係数の増加」を参照してください。
topology clone -from <from topology> -name <to topology>
または
topology clone -current -name <to topology>
トポロジ変更操作に使用される新規のトポロジ候補を作成するために、既存のトポロジをクローニングします。
topology create -name <candidate name> - pool <pool name> -partitions <num>
指定されたストレージ・プールを使用して、指定されたパーティション数の新規トポロジを作成します。
最初のトポロジ候補の作成の詳細は、「トポロジ候補の作成」を参照してください。
topology preview -name <name> [-start <from topology>]
起動トポロジから指定されたターゲット・トポロジに移行するために実行される操作について説明します。-startが指定されていない場合、現行トポロジが使用されます。このコマンドは、新規トポロジをデプロイする前に使用する必要があります。
topology rebalance -name <name> -pool <pool name> [-zn <id> | -znname <name>]
均衡の取れたトポロジを作成するため、指定されたトポロジを変更します。オプションの-zn
フラグが使用されている場合、指定されたゾーンからのストレージ・ノードのみが操作に使用されます。
非コンプライアンス・トポロジの均衡化の詳細は、「非コンプライアンス・トポロジの均衡化」を参照してください。
topology redistribute -name <name> -pool <pool name>
使用可能なリソースのより効率的な利用のためにリソースを再配布するため、指定されたトポロジを変更します。
書込みスループットを向上させるためのリソースの再配布の詳細は、「データ配布の増加」を参照してください。
topology validate [-name <name>]
指定されたトポロジを検証します。トポロジが指定されていない場合、現行トポロジが検証されます。検証ではviolationsとnotesが生成されます。
violationsは問題を引き起こす可能性があり、調査が必要です。
notesは情報的で、問題になる可能性がある、または予測が可能であるという、構成上の目立つ差異を示します。
詳細は、「トポロジ候補の検証」を参照してください。
ストアの様々なパラメータをチェックするコマンドをカプセル化します。サブコマンドは次のとおりです。
verify configuration [-silent] [-json]
コンポーネントを反復してその状態を、管理データベースで予測されていたものに対してチェックすることで、ストア構成を検証します。このコールは、規模の大きいストアでは時間がかかる可能性があります。
-json
オプションでは、出力をJSON形式で表示することを指定します。
-silent
オプションは、検証の進行中に表示される冗長な検証メッセージを非表示にします。かわりに、最初の起動メッセージおよび最後の検証メッセージのみが表示されます。このオプションは、-json
オプションが指定されている場合は効果を発揮しません。
verify prerequisite [-silent] [-sn snX]*
ストレージ・ノードが、現行バージョンにアップグレードするために必要な前提条件となるソフトウェア・バージョン以上であることを確認します。このコールは、規模の大きいストアでは時間がかかる可能性があります。
検証プロセスの一部として、このコマンドは前提条件を満たしていない、またはアクセスできないコンポーネントを表示します。また、インストールされているソフトウェアが現行バージョンより新しいマイナー・リリースであるという無効なダウングレード状況にならないか確認します。
このコマンドを使用する場合、現行バージョンとはコマンドライン・インタフェースを実行しているソフトウェアのバージョンのことです。
検証するストレージ・ノードを指定するには、-sn
オプションを使用します。ストレージ・ノードが指定されていない場合は、ストア内のすべてのノードがチェックされます。
-silent
オプションは、検証の進行中に表示される冗長な検証メッセージを非表示にします。かわりに、最初の起動メッセージおよび最後の検証メッセージのみが表示されます。
verify upgrade [-silent] [-sn snX]*
ストレージ・ノード(およびその管理対象コンポーネント)が現行バージョン以上であることを確認します。このコールは、規模の大きいストアでは時間がかかる可能性があります。
検証プロセスの一部として、このコマンドはアップグレードされていない、またはアクセスできないコンポーネントを表示します。
このコマンドを使用する場合、現行バージョンとはコマンドライン・インタフェースを実行しているソフトウェアのバージョンのことです。
検証するストレージ・ノードを指定するには、-sn
オプションを使用します。ストレージ・ノードが指定されていない場合は、ストア内のすべてのノードがチェックされます。
-silent
オプションは、検証の進行中に表示される冗長な検証メッセージを非表示にします。かわりに、最初の起動メッセージおよび最後の検証メッセージのみが表示されます。