9 dcliユーティリティの使用
dcliユーティリティを使用すると、Oracle Exadata Database Machine全体の集中管理が容易になります。
dcliは、サーバーのセットに対するオペレーティング・システム・コマンドの実行を自動化し、dcliユーティリティが実行された集中管理ロケーションに出力結果を返します。
- dcliユーティリティの概要
dcliユーティリティは、複数のサーバーでオペレーティング・システム・コマンドをパラレル・スレッドで実行します。ターゲット・サーバーは、Exadata Storage ServerまたはExadataデータベース・サーバーです。ただし、dcliユーティリティでは、リモート・アプリケーションとの対話型セッションをサポートしていません。 - dcli構文
このトピックでは、dcliユーティリティの構文について説明します。 - dcliの例
この項には、dcliユーティリティの使用例が含まれます。 - Oracle Exadata Storage ServerでのSSHのユーザー等価の設定
ユーザー等価を設定することにより、セルのパスワードを入力することなく、リモートのセルにコマンドを発行できます。
9.1 dcliユーティリティの概要
dcliユーティリティは、複数のサーバーでオペレーティング・システム・コマンドをパラレル・スレッドで実行します。ターゲット・サーバーは、Exadata Storage ServerまたはExadataデータベース・サーバーです。ただし、dcliユーティリティでは、リモート・アプリケーションとの対話型セッションをサポートしていません。
dcliユーティリティは、Exadata Storage ServerまたはExadataデータベース・サーバーで実行できます。また、集中管理サーバーとして機能する別のホスト・コンピュータにコピーすることもできます。複数のサーバーで実行するようにコマンドを発行したり、サーバーにコピー可能なファイルを使用して実行できます。サーバーはホスト名またはIPアドレスで参照されます。
dcliユーティリティには、Pythonバージョン2.3以上が必要です。Pythonのバージョンは、python -V
コマンドを実行して確認できます。また、このツールの使用は、ターゲット・サーバーへのSSHユーザー等価の事前設定を前提としています。dcliユーティリティを最初に-k
オプションとともに使用すると、SSHユーザー等価を設定できます。また、SSHユーザー等価をサーバーに手動で設定することもできます。
指定したサーバーでコピーおよびコマンド実行が終了すると、コマンド出力(stdout
およびstderr
)が収集されて表示されます。dcliのオプションを指定すると、コマンド出力をエラーなしの出力(通常のステータスを表示するメッセージなど)に簡略化できます。
9.2 dcliの構文
この項では、dcliユーティリティの構文について説明します。
構文
dcli [options] [command]
コマンド引数
- options: コマンド・オプション
- command: オペレーティング・システムのプロンプトから実行可能なコマンドです。
コマンド・オプション
表9-1 dcliのオプション
オプション | 説明 |
---|---|
|
パラレル実行スレッドの数を制限します。これにより、操作をパラレルに実行するターゲット・サーバーの数が制限されます。 |
|
コマンドの送信先のターゲット・サーバーのカンマ区切りのリストを指定します。 |
|
ターゲット・サーバーへの初期接続の最大時間(秒)を指定します。 |
|
|
|
サーバーにコピーするファイルまたはファイル・テンプレートを指定します。これらのファイルは実行されません。これらのファイルは、後で実行するスクリプト・ファイルにできます。ファイルはターゲット・サーバー上のユーザーのデフォルト・ホーム・ディレクトリにコピーされます。 |
|
コマンドの送信先のターゲット・サーバーのリストを含むファイルを指定します。サーバーは、ホスト名またはIPアドレスで識別できます。 |
|
ヘルプ・テキストを表示して終了します。 |
|
SSHを使用してリモートで実行されるコマンドの標準エラー・メッセージ(STDERR)を非表示にします。 |
|
公開キー・ファイルをサーバー上の |
|
このオプションを使用すると、SSHユーザー等価の設定が容易になります。これは、ユーザー・パスワードを1回入力し、指定されたパスワードをすべての構成済サーバーに使用することによって行われます。指定されない場合、サーバーごとにパスワード入力要求が表示されます。 |
|
リモート・サーバーにログインしているユーザーを指定します。デフォルトは |
|
このオプションは、 |
--maxlines=MAXLINES |
各ターゲット・サーバーの出力を指定された行数に制限します。デフォルトでは、各ターゲット・サーバーの出力制限は100000行です。 |
|
エラーなしの出力を簡略化します。通常の出力(
|
|
正規表現に一致する出力行を簡略化します。該当するパターンを含むすべての出力行が出力から削除され、その出力行のサーバー名が1行で表示されます。
|
|
オプションの文字列をSSHに渡します。 |
|
|
|
Oracle Exadata Storage Server上でプロセスをシリアライズします。 |
|
SSHの使用時にリモート・ノードのバナーを表示します。 |
|
|
|
Oracle Exadata Storage Server上のターゲット |
|
メッセージの冗長バージョンを |
|
プログラムのバージョン番号を表示して終了します。 |
|
ターゲット・サーバーで、指定されたコマンド・オプションを使用して |
|
コピーしてサーバーで実行するコマンド・ファイルを指定します。指定したファイルには、コマンドのリストが含まれます。 |
使用上のノート
ローカルのシェルで解釈される記号が含まれるコマンドの場合は、コマンドを二重引用符で囲みます。コマンドに次の文字が含まれる場合は、外側の引用符とエスケープ文字が必要です。
- $ (ドル記号)
- ' (引用符)
- < (小なり)
- > (大なり)
- ( ) (カッコ)
バックスラッシュ(\)は、リモート・シェルによる解釈なしでCellCLIユーティリティに文字を渡すことのできるエスケープ文字です。
エスケープ文字を必要とする記号のためにコマンドが複雑になる場合、状況によってはそのコマンドをスクリプトに配置して、-x
オプション付きで実行する必要があります。スクリプト内では、エスケープ文字は必要ありません。
トラブルシューティング
ローカルのdcliプロセスが終了してもリモートのコマンドが続行する場合がありますが、それらの出力とステータスを確認することはできません。
dcliユーティリティからの戻り値は次のとおりです。
- 0: ファイルまたはコマンドがコピーされ、すべてのサーバーで正常に実行されました。
- 1: 1つ以上のサーバーにアクセスできず、リモート実行により0以外のステータスが返されました。
- 2: ローカルのエラーによりコマンドを実行できませんでした。
いずれかのサーバーが停止して応答がない場合は、メッセージがstderr
に書き込まれ、応答のないサーバーが表示されます。その他のサーバーは操作が続行され、完了後のリターン・コードは1になります。
親トピック: dcliユーティリティの使用
9.3 dcliの例
この項には、dcliユーティリティの使用例が含まれます。
- dcliを使用した現在のユーザーのSSHユーザー等価の設定
この例では、-k
オプションを使用して、現在のユーザーのSSHユーザー等価を設定する方法を示します。 - -nオプションを使用したdcliの使用
この例では、CellCLIコマンドALTER IORMPLAN OBJECTIVE='basic'
を実行する方法と、エラーなしの出力を簡略化する方法を示します。 - -rオプションを使用したdcliの使用
この例は、CellCLIコマンドのLIST GRIDDISK
を実行する方法を示しています。この例では、normal
を含む出力の行が削除されます。 - -vオプションを使用したdcliの使用
この例は、冗長(-v
)オプションをSSHに使用する方法を示しています。 - -tオプションを使用したdcliの使用
この例は、-t
オプションを使用してターゲット・セルを表示する方法を示しています。 - -fオプションを使用したdcliの使用
この例は、-f
オプションを使用する方法を示しています。 - --vmstatオプションを使用したdcliの使用
この例は、dcliの--vmstat
オプションを使用する方法を示しています。 - --hidestderrオプションを使用したdcliの使用
この例は、--hidestderr
オプションを使用する方法を示しています。 - --showbannerオプションを使用したdcliの使用
この例は、--showbanner
オプションを使用する方法を示しています。 - dcliを使用したIORMプランの変更
この例は、mycells
グループ・ファイル内のターゲット・セル上でIORMPLANをアクティブに変更するCellCLIコマンドを示しています。 - スクリプトでのdcliの使用
この例は、ターゲット・セル上にあるreConfig.scl
ファイル内のCellCLIコマンドを示しています。 - dcliを使用したグリッド・ディスクのステータス表示
この例は、ターゲット・セル上にあるグリッド・ディスクの名前とステータスをリストするCellCLIコマンドの実行方法を示しています。 - dcliを使用したアラート履歴情報の表示
この例は、ターゲット・セル上でアラート履歴名、調査担当者、重大度を表示するCellCLIコマンドを示しています。 - dcliを使用したアラート履歴(調査担当者が設定されていない)の表示
この例は、ターゲット・セルで調査担当者が設定されていないアラート履歴を表示するCellCLIコマンドを示しています。 - dcliを使用した現在のメトリックのアラート状態の表示
この例は、現在のオブジェクトのメトリック(セルのグループのグリッド・ディスクでの大きいブロック読取りの合計MB)を取得するCellCLIコマンドを示しています。 - dcliを使用したグループ内の現在のオブジェクトの特定のメトリックの表示
この例は、現在のオブジェクトのメトリック(グリッド・ディスクでのブロックの読取りまたは書込みのリクエスト数)を取得するCellCLIコマンドを示しています。 - dcliを使用した現在のオブジェクトの特定のメトリックの表示
この例は、ターゲット・セルのcl_put
(セルCPU使用率)と同じ名前を持つ現在のオブジェクトのメトリックを表示するCellCLIコマンドを示しています。 - dcliを使用した物理ディスクの表示
この例は、ターゲット・セルのステータスがnormalではない物理ディスクを表示するCellCLIコマンドを示しています。 - dcliを使用したセル・ディスクの空き領域の表示
この例は、ターゲット・セル上の空き領域が100MB未満であるセル・ディスクを表示するCellCLIコマンドを示しています。 - dcliを使用したアラート履歴の表示
この例は、特定の期間のアラート履歴を表示するCellCLIコマンドを示しています。
親トピック: dcliユーティリティの使用
9.3.1 dcliを使用した現在のユーザーのSSHユーザー等価の設定
この例は、-k
オプションを使用して現在のユーザーのSSHユーザー等価を設定する方法を示しています。
例9-1 現在のユーザーのSSHユーザー等価の設定
$ ./dcli -k -g mycells
-k
オプションは、SSHプロトコルのバージョン2でユーザーがデフォルトのキー・ファイル名を受け入れていることを前提とします。これらのファイル名はid_dsa.pub
またはid_rsa.pub
で、~/.ssh
ディレクトリにあります。
ユーザーはセル認証の確認を求められたり、リモート・ユーザーのパスワードを求められたりする場合があります。-k
のキーの交換は、ユーザーがすべてのセルでパスワード入力を同時に求められないように、セル間で連続して実行されます。-k
オプションが一度使用されると、同じセルに対する後続のコマンドでは-k
オプションが不要になり、そのユーザーのパスワードをホストから取得する必要もありません。
親トピック: dcliの例
9.3.2 dcliを使用した-nオプションの使用
この例は、CellCLIコマンドのALTER IORMPLAN OBJECTIVE='basic'
を実行する方法を示しています。この例では、エラーなしの出力が簡略化されます。
例9-2 -nオプションの使用
$ ./dcli -g mycells -l celladmin -n "cellcli -e alter iormplan \
objective=\'basic\'"
簡略化された出力は次のようになります。
OK: ['abcd2x3']
stsd2s2:
stsd2s2: CELL-02619: Current IORMPLAN state is not 'active'.
親トピック: dcliの例
9.3.3 dcliを使用した-rオプションの使用
この例は、CellCLIコマンドのLIST GRIDDISK
を実行する方法を示しています。この例では、normal
を含む出力の行が削除されます。
mycells
グループ・ファイルに表示されるターゲット・セルで実行されます。
例9-3 -rオプションの使用
$ ./dcli -l celladmin -r '.*normal' -g mycells "cellcli -e list celldisk"
出力は次のようになります。
.*normal: ['stsd2s2', 'abcd2x3']
abcd2x3: CD_06_abcd2x3 importRequired
親トピック: dcliの例
9.3.4 dcliを使用した-vオプションの使用
この例は、冗長(-v
)オプションをSSHに使用する方法を示しています。
例9-4 -vオプションの使用
$ ./dcli -s "-v" -c mycell date
親トピック: dcliの例
9.3.5 dcliを使用した-tオプションの使用
この例は、-t
オプションを使用してターゲット・セルを表示する方法を示しています。
-t
オプションは、-c
オプションまたは-g
オプションと組み合せて使用してください。
例9-5 -tオプションの使用
$ ./dcli -t -c exa01celadm09 date
Target cells: ['exa01celadm09']
exa01celadm09: Fri Jul 17 15:37:31 PDT 2019
親トピック: dcliの例
9.3.6 dcliを使用した-fオプションの使用
この例は、-f
オプションを使用する方法を示しています。
例9-6 -fオプションの使用
この例では、mycells
ファイルにリストされたストレージ・サーバーにファイル・セットがコピーされます。
dcli -g mycells -f '*.bin'
親トピック: dcliの例
9.3.7 dcliを使用した--vmstatオプションの使用
この例は、dcliの--vmstat
オプションの使用方法を示しています。
例9-7 --vmstatオプションの使用
$ ./dcli -g 123 -l sage --vmstat="-a 3 5"
procs -----------memory---------- ---swap-- -----io---- --system-- ...
13:43:03: r b swpd free inact active si so bi bo in cs us
abcd2x1: 2 0 0 22656 178512 792272 0 0 1 21 7 2 2
abcd2x2: 0 0 452304 21432 108760 867712 0 0 178 269 2 0 2
abcd2x3: 0 0 49252 912164 70156 49996 1 1 74 249 2 2 1
Minimum: 0 0 0 21432 70156 49996 0 0 1 21 2 0 1
Maximum: 2 0 452304 912164 178512 867712 1 1 178 269 7 2 2
Average: 0 0 167185 318750 119142 569993 0 0 84 179 3 1 1
親トピック: dcliの例
9.3.8 dcliを使用した--hidestderrオプションの使用
この例は、--hidestderr
オプションを使用する方法を示しています。
例9-8 --hidestderrオプションの使用
この最初のコマンドでは--hidestderr
オプションを使用していないため、エラーが表示されます。
$ ./dcli -l root -g cell "ls -1 unknown_file; cellcli -e list cell"
exam08cel01: ls: unknown_file: No such file or directory
exam08cel01: exam08cel01 online
exam08cel02: ls: unknown_file: No such file or directory
exam08cel02: exam08cel02 online
--hidestderr
オプションを使用しているため、エラーは表示されません。 $ ./dcli -l root -g cell --hidestderr -l root "ls -l unknown_file;\
cellcli -e list cell"
exam08cel01: exam08cel01 online
exam08cel02: exam08cel02 online
親トピック: dcliの例
9.3.9 dcliを使用した--showbannerオプションの使用
この例は、--showbanner
オプションを使用する方法を示しています。
******BANNER******
のかわりにリモート・セルのバナーが使用されます。
例9-9 --showbannerオプションの使用
$ ./dcli --showbanner -l root -g cell "cellcli -e list cell"
exam08cel01: ******BANNER******
exam08cel01:
exam08cel01: ******BANNER******
exam08cel01: exam08cel01 online
exam08cel02: ******BANNER******
exam08cel02:
exam08cel02: ******BANNER******
exam08cel02: exam08cel02 online
親トピック: dcliの例
9.3.10 dcliを使用したIORMプランの変更
この例は、mycells
グループ・ファイルのターゲット・セルでIORMPLANをアクティブに変更するCellCLIコマンドを示しています。
-t
オプションでは、mycells
グループ・ファイルのセルが表示されます。
例9-10 dcliを使用したIORMプランの変更
$ ./dcli -g mycells -l root -t "cellcli -e alter iormplan active"
親トピック: dcliの例
9.3.11 スクリプトでのdcliの使用
この例は、ターゲット・セル上のreConfig.scl
ファイル内のCellCLIコマンドを示しています。
mycells
グループ・ファイルに含まれます。このコマンドは、デフォルトのcelladmin
ユーザーとして実行されます。
例9-11 スクリプトでのdcliの使用
$ ./dcli -g mycells -x reConfig.scl
親トピック: dcliの例
9.3.12 dcliを使用したグリッド・ディスクのステータス表示
この例は、ターゲット・セル上のグリッド・ディスクの名前とステータスを表示するCellCLIコマンドの実行方法を示しています。
mycells
グループ・ファイルに含まれます。このコマンドは、デフォルトのcelladmin
ユーザーとして実行されます。ステータスがactive
の出力行は削除されます。
例9-12 dcliを使用したグリッド・ディスクのステータス表示
$ ./dcli -r '.*active' -g mycells "cellcli -e list griddisk"
親トピック: dcliの例
9.3.13 dcliを使用したアラート履歴情報の表示
この例は、アラート履歴名、調査担当者、ターゲット・セルでの重大度を表示するCellCLIコマンドを示しています。
mycells
グループ・ファイルに含まれます。このコマンドは、デフォルトのcelladmin
ユーザーとして実行されます。重大度がclear
の出力行は削除されます。
例9-13 dcliを使用したアラート履歴情報の表示
$ ./dcli -r '.*clear' -g mycells \
"cellcli -e list alerthistory attributes name, examinedby, severity"
親トピック: dcliの例
9.3.14 dcliを使用したアラート履歴(調査担当者が設定されていない)の表示
この例は、ターゲット・セルに調査担当者が設定されていないアラート履歴を表示するCellCLIコマンドを示しています。
allcells
グループ・ファイルに含まれます。このコマンドは、デフォルトのcelladmin
ユーザーとして実行されます。
例9-14 dcliを使用したアラート履歴(調査担当者が設定されていない)の表示
$ ./dcli -g allcells -l celladmin \
"cellcli -e list alerthistory where examinedby=\'\' "
親トピック: dcliの例
9.3.15 dcliを使用した現在のメトリックのアラート状態の表示
この例は、現在のオブジェクトのメトリック(セルのグループのグリッド・ディスクでの大きいブロック読取りの合計MB)を取得するCellCLIコマンドを示しています。
GD_IO_BY_R_LG
の現在のメトリック・アラートの状態とメトリック値をリストします。ターゲット・セルはmycells
グループ・ファイルに含まれます。このコマンドは、デフォルトのcelladmin
ユーザーとして実行されます。
例9-15 dcliを使用した現在のメトリックのアラート状態の表示
$ ./dcli -g mycells "cellcli -e list metriccurrent GD_IO_BY_R_LG \
attributes alertstate, metricvalue"
親トピック: dcliの例
9.3.16 dcliを使用したグループ内の現在のオブジェクトの特定のメトリックの表示
この例は、現在のオブジェクトのメトリック(グリッド・ディスクでのブロック読取りまたは書込みリクエストの数)を取得するCellCLIコマンドを示しています。
GD_IO_RQ
で始まる名前)を表示します。ターゲット・セルはmycells
グループ・ファイルに含まれます。このコマンドは、デフォルトのcelladmin
ユーザーとして実行されます。
例9-16 dcliを使用したグループ内の現在のオブジェクトの特定のメトリックの表示
$ ./dcli -g mycells "cellcli -e list metriccurrent where name like \'GD_IO_RQ.*\'"
親トピック: dcliの例
9.3.17 dcliを使用した現在のオブジェクトの特定メトリックの表示
この例は、ターゲット・セルのcl_put
(セルCPU使用率)と同じ名前を持つ現在のオブジェクトのメトリックを表示するCellCLIコマンドを示しています。
mycells
グループ・ファイルに含まれます。このコマンドは、デフォルトのcelladmin
ユーザーとして実行されます。
例9-17 dcliを使用した現在のオブジェクトの特定メトリックの表示
$ ./dcli -g mycells "cellcli -e list metriccurrent cl_cput"
親トピック: dcliの例
9.3.18 dcliを使用した物理ディスクの表示
この例は、ターゲット・セルのステータスが標準ではない物理ディスクを表示するCellCLIコマンドを示しています。
mycells
グループ・ファイルに含まれます。このコマンドは、デフォルトのcelladmin
ユーザーとして実行されます。
例9-18 dcliを使用した物理ディスクの表示
$ ./dcli -g allcells "cellcli -e list physicaldisk where status not = normal"
親トピック: dcliの例
9.3.19 dcliを使用したセル・ディスクの空き領域の表示
この例は、ターゲット・セル上の空き領域が100MB未満であるセル・ディスクを表示するCellCLIコマンドを示しています。
mycells
グループ・ファイルに含まれます。このコマンドは、デフォルトのcelladmin
ユーザーとして実行されます。
例9-19 dcliを使用したセル・ディスクの空き領域の表示
この例では、バックスラッシュ(\)は、リモート・シェルによる解釈なしでCellCLIユーティリティに大なり記号(>)を渡すことのできるエスケープ文字です。
$ ./dcli -g allcells "cellcli -e list celldisk where freespace \> 100M"
親トピック: dcliの例
9.3.20 dcliを使用したアラート履歴の表示
この例は、特定の期間のアラート履歴を表示するCellCLIコマンドを示しています。
例9-20 dcliを使用したアラート履歴の表示
この例で、バックスラッシュ(\)は、リモート・シェルによる解釈なしでCellCLIユーティリティに大なり記号(>)と引用符を渡すことのできるエスケープ文字です。
dcli -g lab.cells "cellcli -e list alerthistory where begintime \> \'Aug 4, 2009 12:06:38 PM\'"
親トピック: dcliの例
9.4 Oracle Exadata Storage ServerでのSSHのユーザー等価の設定
ユーザー等価を設定することにより、セルのパスワードを入力する必要なく、リモートのセルにコマンドを発行できます。
親トピック: dcliユーティリティの使用