11.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]

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

ノート: このオプションは非推奨です。現在では、exadcliで常にCookie jarが使用されます。

使用上のノート

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

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

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

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