プライマリ・コンテンツに移動
Oracle® Exadata Storage Server Softwareユーザーズ・ガイド
12cリリース2 (12.2)
E84909-03
目次へ移動
目次

前
次

9 dcliユーティリティの使用

dcliユーティリティは、セルのセットでCellCLIコマンドを自動的に実行し、dcliユーティリティが実行された集中管理ロケーションに出力結果を返すことにより、Oracle Exadata Storage Server Softwareレルムの集中管理を容易にします。この章のトピックは、次のとおりです:

9.1 dcliユーティリティの概要

dcliユーティリティでは、複数のセルでコマンドをパラレル・スレッドで実行します。ただし、このユーティリティでは、セル上のリモート・アプリケーションとの対話型セッションをサポートしていません。

dcliユーティリティを使用するには、セルのbinディレクトリから、集中管理の実行が可能なホスト・コンピュータにユーティリティをコピーします。複数のセルで実行するようにコマンドを発行したり、セルにコピー可能なファイルを使用して実行できます。セルはホスト名またはIPアドレスで参照されます。

dcliユーティリティには、Pythonバージョン2.3以上が必要です。Pythonのバージョンは、python -Vコマンドを実行して確認できます。このツールを使用するには、SSHのユーザー等価をセルに事前設定していることも必要です。dcliユーティリティの最初のオプションに-kを指定すると、SSHのユーザー等価をセルに設定できます。また、SSHユーザー等価をセルに手動で設定することもできます。

指定したセルでコピーおよびコマンド実行が終了すると、コマンド出力(stdoutおよびstderr)が収集されて表示されます。dcliのオプションを指定すると、コマンド出力をエラーなしの出力(通常のステータスを表示するメッセージなど)に簡略化できます。

この項の内容は次のとおりです。

9.1.1 dcliの構文

dcliユーティリティの構文は次のとおりです。

dcli [options] [command]

前述のコマンドでは、次の引数が使用されます。

  • options: 次の表は、使用可能なオプションとその説明です。

    表9-1 dcliのオプション

    オプション 説明

    -c cells

    コマンドの送信先のターゲット・セルのカンマ区切りのリストを指定します。

    -d destfile

    -fオプションを使用してファイルまたはディレクトリをコピーする際に使用される、リモート・セル上のターゲットのコピー先ディレクトリまたはファイルを指定します。

    -f file

    セルにコピーするファイルまたはファイル・テンプレートを指定します。これらのファイルは実行されません。これらのファイルは、後で実行するスクリプト・ファイルにできます。ファイルはターゲット・セル上のユーザーのデフォルト・ホーム・ディレクトリにコピーされます。

    -g groupFile

    コマンドの送信先のターゲット・セルのリストを含むファイルを指定します。セルはセル名またはIPアドレスで識別できます。

    -h--help

    ヘルプ・テキストを表示して終了します。

    --hidestderr

    SSHを使用してリモートで実行されるコマンドの標準エラー・メッセージ(STDERR)を非表示にします。

    -k

    公開鍵ファイルをセル上のauthorized_keysファイルに追加し、-cオプションまたは-gオプションで指定したセルに現在のユーザーのSSHユーザー等価を設定します。

    -l userId

    リモート・セルにログインしているユーザーを指定します。デフォルトはcelladminユーザーです。

    -n

    エラーなしの出力を簡略化します。通常の出力(0のコード)を返すセルには、セル名しか表示されません。

    -nオプションと-rオプションを組み合せて使用することはできません。

    -r regexp

    正規表現に一致する出力行を簡略化します。該当するパターンを含むすべての出力行が出力から削除され、その出力行のセル名が1行で表示されます。

    -rオプションと-nオプションを組み合せて使用することはできません。

    -s sshOptions

    オプションの文字列をSSHに渡します。

    --scp= scpOptions

    sshoptionsと異なる場合は、オプションの文字列をscpに渡します。

    --serial

    Oracle Exadata Storage Server上でプロセスをシリアライズします。

    --showbanner--sh

    SSHの使用時にリモート・ノードのバナーを表示します。

    -t

    -cオプションで名前を指定したターゲット・セルまたは-gオプションで指定したgroupfile内のターゲット・セルを表示します。

    --unkey

    Oracle Exadata Storage Server上のターゲットauthorized_keysファイルから鍵を削除します。

    -v

    メッセージの冗長バージョンをstdoutに出力します。

    --version

    プログラムのバージョン番号を表示して終了します。

    --vmstat=VMSTATOPS

    スイッチに応じて、ビュー・プロセス、仮想メモリー、ディスク、トラップおよびCPUのアクティビティ情報を表示します。

    -x execFile

    コピーしてセルで実行するコマンド・ファイルを指定します。指定したファイルには、コマンドのリストが含まれます。.scl拡張子の付いたファイルは、CellCLIユーティリティによって実行されます。別の拡張子の付いたファイルは、オペレーティング・システムのシェルによってセルで実行されます。ファイルはターゲット・セル上のユーザーのデフォルト・ホーム・ディレクトリにコピーされます。

  • command: オペレーティング・システムのプロンプトから実行可能なコマンドです。ローカルのシェルで解釈される記号が含まれるコマンドの場合は、コマンドを二重引用符で囲みます。コマンドに次の文字が含まれる場合は、外側の引用符とエスケープ文字が必要です。

    • $ (ドル記号)

    • ' (引用符)

    • < (小なり)

    • > (大なり)

    • ( ) (カッコ)

    バックスラッシュ(\)は、リモート・シェルによる解釈なしでCellCLIユーティリティに文字を渡すことのできるエスケープ文字です。

    エスケープ文字を必要とする記号のためにコマンドが複雑になる場合、状況によってはそのコマンドをスクリプトに配置して、-xオプション付きで実行する必要があります。スクリプト内では、エスケープ文字は必要ありません。

ローカルのdcliプロセスが終了してもリモートのコマンドが続行する場合がありますが、それらの出力とステータスを確認することはできません。

dcliユーティリティからの戻り値は次のとおりです。

  • 0: ファイルまたはコマンドがコピーされ、セルで正常に実行されました。

  • 1: 1つ以上のセルにアクセスできず、リモート実行により0以外のステータスが返されました。

  • 2: ローカルのエラーによりコマンドを実行できませんでした。

いずれかのセルが停止し応答がない場合は、メッセージがstderrに書き込まれ、応答のないセルが表示されます。その他のセルは操作が続行され、完了後のリターン・コードは1になります。

9.1.2 dcliの例

この項では、dcliユーティリティの例について説明します。

例9-1は、-kオプションを使用して現在のユーザーのSSHユーザー等価を設定する方法を示しています。

例9-2は、CellCLIコマンドのALTER IORMPLAN OBJECTIVE='basic'を実行する方法を示しています。この例では、エラーなしの出力が簡略化されます。

例9-3は、CellCLIコマンドのLIST GRIDDISKを実行する方法を示しています。この例では、normalを含む出力の行が削除されます。このコマンドは、mycellsグループ・ファイルに表示されるターゲット・セルで実行されます。

例9-4は、冗長(-v)オプションをSSHに使用する方法を示しています。

例9-5は、-tオプションを使用してターゲット・セルを表示する方法を示しています。このオプションは、-cオプションまたは-gオプションと組み合せて使用してください。

例9-6は、-fオプションを使用する方法を示しています。この例では、一連のファイルがセルにコピーされます。

例9-7は、--vmstatオプションを使用する方法を示しています。

例9-8は、--hidestderrオプションを使用する方法を示しています。この例の最初のコマンドでは--hidestderrオプションを使用していないため、エラーが表示されます。2つ目のコマンドではオプションを使用しているため、エラーは表示されません。このオプションは、リモートで実行されるコマンドにSSHを使用している場合にのみ使用できます。

例9-9は、--showbannerオプションを使用する方法を示しています。例にある******BANNER******のかわりにリモート・セルのバナーが使用されます。

例9-10は、celladminユーザーのmycellsグループ・ファイルのターゲット・セルでアクティブにするためにIORMPLANを変更するCellCLIコマンドを示しています。-tオプションでは、mycellsグループ・ファイルのセルが表示されます。

例9-11は、デフォルトのcelladminユーザーでのmycellsグループ・ファイルのターゲット・セル上にあるreConfig.sclファイルのCellCLIコマンドを示しています。

例9-12は、デフォルトのcelladminユーザーとしてmycellsグループ・ファイルのターゲット・セル上にあるグリッド・ディスクの名前およびステータスを表示するCellCLIコマンドを示しています。ステータスがactiveの出力行は削除されます。

例9-13は、デフォルトのcelladminユーザーとしてmycellsグループ・ファイルのターゲット・セル上で、アラート履歴名、調査担当者、重大度を表示するCellCLIコマンドを示しています。重大度がclearの出力行は削除されます。

例9-14は、celladminユーザーとしてmycellsグループ・ファイルのターゲット・セルで、調査担当者が設定されていないアラート履歴を表示するCellCLIコマンドを示しています。

例9-15は、celladminユーザーとしてmycellsグループ・ファイルのターゲット・セルで、現在のメトリックのアラート状態およびGD_IO_BY_R_LGのメトリック値を表示するCellCLIコマンドを示しています。この問合せでは、現在のオブジェクトのメトリック(グリッド・ディスクでの大きいブロック読取りの合計MB)を取得します。

例9-16は、celladminユーザーとしてmycellsグループ・ファイルのターゲット・セルで、GD_IO_RQで始まる名前の現在のオブジェクトのメトリックを表示するCellCLIコマンドを示しています。この問合せでは、現在のオブジェクトのメトリック(グリッド・ディスクでのブロック読取りまたは書込みリクエストの数)を取得します。

例9-17は、デフォルトのcelladminユーザーとしてmycellsグループ・ファイルのターゲット・セルで、cl_put(セルCPU使用率)と同じ名前の現在のオブジェクトのメトリックを表示するCellCLIコマンドを示しています。

例9-18は、デフォルトのcelladminユーザーとしてmycellsグループ・ファイルのターゲット・セルで、ステータスがnormalでない物理ディスクを表示するCellCLIコマンドを示しています。

例9-19は、デフォルトのcelladminユーザーとしてmycellsグループ・ファイルのターゲット・セルで、空き領域が100MB未満のセル・ディスクを表示するCellCLIコマンドを示しています。

注意:

前述の例で、バックスラッシュ(\)は、リモート・シェルによる解釈なしでCellCLIユーティリティに大なり記号(>)を渡すことのできるエスケープ文字です。

例9-20は、特定の期間のアラート履歴を表示するCellCLIコマンドを示しています。

注意:

前述の例で、バックスラッシュ(\)は、リモート・シェルによる解釈なしでCellCLIユーティリティに大なり記号(>)と引用符を渡すことのできるエスケープ文字です。

例9-1 現在のユーザーのSSHユーザー等価の設定

$ ./dcli -k -g mycells

-kオプションは、SSHプロトコルのバージョン2でユーザーがデフォルトのキー・ファイル名を受け入れていることを前提とします。これらのファイル名はid_dsa.pubまたはid_rsa.pubで、~/.sshディレクトリにあります。

ユーザーはセル認証の確認を求められたり、リモート・ユーザーのパスワードを求められたりする場合があります。-kのキーの交換は、ユーザーがすべてのセルでパスワード入力を同時に求められないように、セル間で連続して実行されます。-kオプションが一度使用されると、同じセルに対する後続のコマンドでは-kオプションが不要になり、そのユーザーのパスワードをホストから取得する必要もありません。

例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'.

例9-3 -rオプションの使用

$ ./dcli -l celladmin -r '.*normal' -g mycells "cellcli -e list celldisk"

出力は次のようになります。

.*normal: ['stsd2s2', 'abcd2x3']
abcd2x3: CD_06_abcd2x3    importRequired

例9-4 -vオプションの使用

$ ./dcli -s "-v" -c mycell date

例9-5 -tオプションの使用

$ ./dcli -t -c stsd2s1 date
Target cells: ['stsd2s1']
stsd2s1: Fri Jul 17 15:37:31 PDT 2009

例9-6 -fオプションの使用

dcli -g mycells -f '*.bin'

例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 

例9-8 --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

$ ./dcli -l root -g cell --hidestderr -l root "ls -l unknown_file; cellcli \
    -e list cell"

exam08cel01: exam08cel01         online
exam08cel02: exam08cel02         online

例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

例9-10 dcliを使用したIORMプランの変更

$ ./dcli -g mycells -l root -t "cellcli -e alter iormplan active"

例9-11 スクリプトでのdcliの使用

$ ./dcli -g mycells -x reConfig.scl

例9-12 dcliを使用したグリッド・ディスクのステータス表示

$ ./dcli -r '.*active' -g mycells "cellcli -e list griddisk"

例9-13 dcliを使用したアラート履歴情報の表示

$ ./dcli -r '.*clear' -g mycells \
   "cellcli -e list alerthistory attributes name, examinedby, severity"

例9-14 dcliを使用したアラート履歴(調査担当者が設定されていない)の表示

$ ./dcli -g allcells -l celladmin \
   "cellcli -e list alerthistory where examinedby=\'\' "

例9-15 dcliを使用した現在のメトリックのアラート状態の表示

$ ./dcli -g mycells "cellcli -e list metriccurrent GD_IO_BY_R_LG \
  attributes alertstate, metricvalue"

例9-16 dcliを使用したグループ内の現在のオブジェクトの特定のメトリックの表示

$ ./dcli -g mycells "cellcli -e list metriccurrent where name like \'GD_IO_RQ.*\'"

例9-17 dcliを使用した現在のオブジェクトの特定メトリックの表示

$ ./dcli -g mycells "cellcli -e list metriccurrent cl_cput"

例9-18 dcliを使用した物理ディスクの表示

$ ./dcli -g allcells "cellcli -e list physicaldisk where status not = normal"

例9-19 dcliを使用したセル・ディスクの空き領域の表示

$ ./dcli -g allcells "cellcli -e list celldisk where freespace \> 100M"

例9-20 dcliを使用したアラート履歴の表示

dcli -g lab.cells "cellcli -e  list alerthistory where begintime \> \'Aug 4, 2009 12:06:38 PM\'"

9.2 Oracle Exadata Storage ServerでのSSHのユーザー等価の設定

dcliユーティリティで使用できるようにSSHのユーザー等価を設定するには、-kオプションを使用します。ユーザー等価を設定することにより、セルのパスワードを入力する必要なく、リモートのセルにコマンドを発行できます。

関連項目

  • Oracle Grid Infrastructureインストレーションおよびアップグレード・ガイドfor Linux