10 exadcliユーティリティの使用

exadcliユーティリティは、ExaCLIコマンドの実行を自動化することでOracle Exadataシステム全体の集中管理を容易にします。

exadcliはリモート・ノードのセットに対してコマンドを実行し、exadcliユーティリティが実行された集中管理の場所に出力結果を返します。

10.1 exadcliコマンド・リファレンス

exadcliユーティリティでは、複数のリモート・ノードでコマンドをパラレル・スレッドで実行します。

概要

exadcliを使用して、複数のリモート・ノードで実行するExaCLIコマンドを発行できます。リモート・ノードはホスト名またはIPアドレスで参照されます。dcliとは異なり、exadcliではExaCLIコマンドのみを実行できます。その他のコマンド(シェル・コマンドなど)は、exadcliを使用して実行できません。

exadcliユーティリティは、データベース・ノードのイメージ化の際にインストールされます。exadcliは、リモート・ノード上のリモート・アプリケーションとの対話型セッションをサポートしていません。

exadcliは、リモート・ノードにパラレルに接続し、ユーザーを認証します。指定したリモート・ノードでコピーおよびコマンド実行が終了すると、コマンド出力(stdoutおよびstderr)が収集されて表示されます。

exadcliはExaCLIをプロンプトなしのモードで実行します。つまり、ユーザー操作が必要な場合(たとえば、パスワードの入力が必要な場合やリモート・ノードからの証明書が有効であることを確認する必要がある場合)、exadcliはエラーで終了します。コマンドexadcli --authenticateは、同じパスワードを使用してすべてのセルまたはデータベース・ノードにログインするために使用できます。認証トークンがCookie jarに格納されるため、将来のexadcliセッションでパスワードを入力する必要がなくなります。

前提条件

  • exadcliを使用するには、すべてのリモート・ノードにユーザーおよびロールを設定する必要があります。

  • exadcliを使用する前に、ExaCLIを使用して、セルまたはデータベース・ノードのアイデンティティ証明書を受け入れておく必要があります。このことは、セルごとに1回のみ行う必要があります(セルがアップロードされた場合や、新しい証明書がリモート・データベースまたはセル・ノードにアップロードされた場合を除く)。次に例を示します。

    注意:

    Oracle Exadata System Softwareリリース19.3以降を使用している場合は、プロンプトが表示されたときにyまたはnを入力し、[Enter]を押します。
    $ exacli -l dbnodeadministrator -c dbnode01 --cookie-jar 
    No cookies found for dbnodeadministrator@dbnode01. 
    Password: ************ 
    EXA-30016: This connection is not secure. You have asked ExaCLI to connect to cell dbnode01:7879 securely. The identity of dbnode01:7879 cannot be verified. 
    Got certificate from server: 
    C=US,ST=California,L=Redwood City,O=Oracle Corporation,OU=Oracle Exadata,CN=localhost 
    Do you want to accept and store this certificate? (Press y/n) y 
    exacli dbnodeadministrator@dbnode01:7879> exit 

    すべてのセルまたはデータベース・ノードで証明書を受け入れる必要があります。exadcliの使用前にアクセスを構成する方法の詳細な例については、「exadcliの初回使用」を参照してください。

  • Javaバージョン1.8以降

    Javaのバージョンは、java -versionコマンドを実行すると確認できます。また、適切なJavaバージョンのインストール・ディレクトリを指すように、JAVA_HOME環境変数を設定する必要があります。

ファイル・パス

/usr/local/sbin/exadcli

構文

ExaCLIは、オペレーティング・システムのコマンドラインから実行します。

exadcli options command[; command]

オプション

オプション 説明
-c host [,host] 

--connect=host [,host]

ExaCLIコマンドの送信先となるターゲット・リモート・ノードのカンマ区切りのリストを指定します。

-g filename

--group-file=filename

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

-l username

--login-user=username

リモート・ノードにログインするユーザーを指定します。これは、オペレーティング・システムのユーザーではなく、DBMCLIまたはCellCLIのユーザーです。

-t

--list

-cオプションで名前を指定したターゲット・リモート・ノードまたは-gオプションで指定したグループ・ファイル内のターゲット・リモート・ノードを表示します。

-x filename

--exec-file=filename

リモート・ノードで実行するコマンド・ファイルを指定します。このコマンド・ファイルには、ExaCLIコマンドのリストが含まれています。

注意:

exadcliには対話型モードはありません。–xオプションを使用して実行するコマンドを指定することも、コマンドラインの末尾でコマンドを指定することもできます。
--authenticate

ユーザー・パスワードを要求します。すべてのリモート・ノードでユーザーはパスワードを使用して認可され、認可はデフォルトのCookie jarに格納されます。

--max-lines=maxlines

リモート・ノードからの最大出力行を制限します。デフォルトは100,000行です。

--xml

これにより、出力がXML形式で表示されます。このオプションはExaCLIに渡されます。

-h

--help

ヘルプ・メッセージを表示します。

command

または

'command[; command]'

リモート・ノードで実行するExaCLIコマンドを指定します。複数のコマンドを指定するには、コマンド文字列を一重引用符で囲んで、それぞれのコマンドをセミコロン文字(;)で区切ります。

注意:

exadcliには対話型モードはありません。-xオプションを使用して実行するコマンド・ファイルを指定することも、コマンドラインの末尾でコマンドを指定することもできます。
--cookie-jar [filename]

注意:

現在ではexadcliで常にCookie jarが使用されるため、このオプションは非推奨です。

Cookie jarファイルを指定します。このオプションはExaCLIに渡されます。

使用上の注意

  • exadcliからの戻り値は次のとおりです。

    • 0: すべてのリモート・ノードで、コマンドが正常に実行されました。
    • 1: 1つ以上のリモート・ノードにアクセスできず、リモート実行により0以外のステータスが返されました。
    • 2: ローカルのエラーによりコマンドを実行できませんでした。
  • いずれかのリモート・ノードが停止しているか、応答がない場合は、メッセージがstderrに書き込まれ、応答のないリモート・ノードが表示されます。その他のリモート・ノードは操作が続行され、完了後のリターン・コードは1になります。

  • 管理サーバー(MS)を再起動した場合は、exadcli --authenticateコマンドを使用してexadcliを再認証する必要があります。

    $ exadcli -c dbnode01,dbnode02,dbnode03 -l dbnodeadministrator --authenticate

10.2 exadcliの初回使用

ここでは、exadcliを使用するようにOracle Exadata Database Machineを構成する方法について説明する複数ステップの例を示します。

この例は、セル・ノードへのアクセスの構成方法を示しています。わずかな変更を加えることで、データベース・ノードへのアクセスを構成する場合にも同じ手順が使用できます。

  1. CellCLIを使用して各ノードのcelladministratorユーザーを作成し、それらのユーザーに権限を付与します。

    各リモート・ノードに接続し、CellCLIを使用してユーザーを作成し、権限を割り当てます。この例では、すべての権限がユーザーに付与されていますが、exadcliコマンドの実行に必要な権限のみを含む権限のセットを付与することもできます。

    CellCLI> CREATE ROLE administrator 
    
    CellCLI> GRANT PRIVILEGE ALL ACTIONS ON ALL OBJECTS ALL ATTRIBUTES - 
    > WITH ALL OPTIONS TO ROLE administrator 
    
    CellCLI> CREATE USER celladministrator password=* 
    
    CellCLI> GRANT ROLE administrator TO USER celladministrator
  2. exadcliを実行する予定のノードで、ExaCLIを使用して各ノードのセキュリティ証明書を受け入れます。

    注意:

    Oracle Exadata System Softwareリリース19.3以降を使用している場合は、プロンプトが表示されたときにyまたはnを入力し、[Enter]を押します。
    exacli -l celladministrator -c cell01 --cookie-jar
    
    No cookies found for celladministrator@cell01.
    Password: ********
    EXA-30016: This connection is not secure. You have asked ExaCLI to connect to 
    cell cell01 securely. The identity of cell01 cannot be verified.
    Got certificate from server:
    C=US,ST=California,L=Redwood City,O=Oracle Corporation,OU=Oracle Exadata,
    CN=localhost
    Do you want to accept and store this certificate? (Press y/n)
     y
    exacli celladministrator@cell01> exit
    

    cell02cell03の両方に、このステップを繰り返します。

  3. exadcliを使用して、celladministratorユーザーとしてセルcell01cell02およびcell03に接続します(--authenticateオプションを指定)。
    $ exadcli -c cell01,cell02,cell03 -l celladministrator --authenticate
    Password:
    cell01: Password: ********
    cell01: exacli celladministrator@cell01:7879>
    cell02: Password: ********
    cell02: exacli celladministrator@cell02:7879>
    cell03: Password: ********
    cell03: exacli celladministrator@cell03:7879>

    exadcliは、~/.exacli/cookiejarに資格証明を格納するため、それ以降、同じセルに対するexadcliコマンドはパスワードの入力を要求しなくなります。

  4. オプション: コマンドを実行するノードのリストを含むmycellsファイルをcelladministratorユーザーとして作成します。
    $ cat mycells
    cell01
    cell02
    cell03
    
  5. exadcliを使用して、mycellsファイルを使用するコマンドを実行します。
    $ exadcli -g mycells -l celladministrator list cell
    
    cell01: cell01   online
    cell02: cell02   online
    cell03: cell03   online

    mycellsファイルを作成していない場合は、-cオプションを使用してコマンドラインでリモート・ノードを指定することもできます。

    $ exadcli -c cell01,cell02,cell03 -l celladministrator list cell
     detail

10.3 exadcliの例

これらの例では、ユーザーを作成して必要な権限を付与した後でExaCLIを使用する方法を示します。

ユーザーを作成して権限を割り当てる例については、「ExaCLIで使用するユーザーの作成」を参照してください。

ストレージ・セルへのexadcliアクセスを初めて構成する場合の例は、「exadcliの初回使用」を参照してください。

例10-1 AUTHENTICATEオプションを使用したexadcliの再認証

dbnodeadministratorユーザーとしてノードdbnode01,dbnode02,dbnode03に接続し、~/.exacli/cookiejarに資格証明を格納することで、それ以降、同じノードに対するexadcliコマンドがパスワードを要求しないようにします。

$ exadcli -c dbnode01,dbnode02,dbnode03 -l dbnodeadministrator --authenticate

例10-2 exadcliを使用したDBSERVER情報の表示

exadcliを使用して、DBSERVER情報のリスト表示のような、複数のノードに対するコマンドを実行できます。

$ exadcli -c dbnode01,dbnode02,dbnode03 -l dbnodeadministrator list dbserver

例10-3 exadcliを使用した詳細なセル情報の表示

exadcliを使用すると、単一のコマンドで複数のノードの詳細なセル情報を取得できます。

$ exadcli -c cell01,cell02,cell03 -l celladministrator list cell detail

例10-4 exadcliでのノード・リストおよびコマンド・ファイルの使用

exadcliに入力ファイルを使用すると、アクセスするノードのリストの繰り返し入力を回避したり、実行するExaCLIコマンドのリストを指定できるようになります。この例は、mycellsまたはmydbnodesという名前のテキスト・ファイルが作成してあり、そのファイルにリモート・ノードのホスト名が含まれていることを前提としています。また、この例は、cellcommands.txtおよびdbcommands.txtという名前の入力ファイルも使用します。

$ cat cellcommands.txt
list cell
list griddisk attributes name, size order by size,name desc
list celldisk where status!=normal attributes name, status

$ exadcli -g mycells -l celladministrator -x cellcommands.txt
cell01: cell01   online
cell01: DBFS_DG_CD_11_cell01     29.125G
cell01: DBFS_DG_CD_10_cell01     29.125G
cell01: DBFS_DG_CD_09_cell01     29.125G
...
cell02: cell02   online
cell02: DBFS_DG_CD_11_cell02     29.125G
cell02: DBFS_DG_CD_10_cell02     29.125G
cell02: DBFS_DG_CD_09_cell02     29.125G
...
cell03: cell03   online
cell03: DBFS_DG_CD_11_cell03     29.125G
cell03: DBFS_DG_CD_10_cell03     29.125G
cell03: DBFS_DG_CD_09_cell03     29.125G

$ cat dbcommands.txt
list dbserver
list metriccurrent where objectType='IBPORT'
list physicaldisk

$ exadcli -g mydbnodes -l dbnodeadministrator -x dbcommands.txt
dbnode01: dbnode01         online
dbnode01: N_IB_MB_RCV_SEC     HCA-1:1         0.061 MB/sec
dbnode01: N_IB_MB_RCV_SEC     HCA-1:2         0.001 MB/sec
...
dbnode01: N_IB_UTIL_TRANS     HCA-4:1         0.0 %
dbnode01: N_IB_UTIL_TRANS     HCA-4:2         0.0 %
dbnode01: 39:0        71HKPE  normal
dbnode01: 39:1        70CFBP  normal
...
dbnode02: dbnode02         online
dbnode02: N_IB_MB_RCV_SEC     HCA-1:1         0.023 MB/sec
dbnode02: N_IB_MB_RCV_SEC     HCA-1:2         0.036 MB/sec
...