プライマリ・コンテンツに移動
Oracle® Exadata Database Machineメンテナンス・ガイド
12c リリース2 (12.2)
E84907-03
目次へ移動
目次
索引へ移動
索引

前
次

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

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

8.1 exadcliの概要

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

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

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

exadcliユーティリティを使用するには、すべてのリモート・ノードにユーザーおよびロールを設定する必要があります。exadcliは、リモート・ノードに並列に接続し、ユーザーを認証します。

指定したリモート・ノードでコピーおよびコマンド実行が終了すると、コマンド出力(stdoutおよびstderr)が収集されて表示されます。

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

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

$ exacli -l dbnodeadministrator -c dbnode01 --cookie-jar 
No cookies found for user1@dbnode01. 
Password: ************ 
EXA-30016: This connection is not secure. You have asked ExaCLI to connect to cell dbnode01 securely. The identity of dbnode01 cannot be verified. Got certificate from server: 
C=US,ST=California,L=Redwood City,O=ABC Co.,OU=IT Dept,CN=dbnode01 
Do you want to accept and store this certificate? (Press y/n) y 
exacli user1@dbnode01>exit 

すべてのセルまたはデータベース・ノードで証明書を受け入れる必要があります。

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

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

この時点で、exadcliを使用して次のようなコマンドを実行できます。

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

関連項目:

ユーザー、ロールおよび権限の詳細は、「ExaCLIの概要」を参照してください。

8.2 exadcliの構文

exadcliは、次のように実行します。

exadcli [options] [command]

exadcliでは、次のオプションがサポートされます。

表8-1 exadcliのオプション

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

--connect=host [,host]

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

-g filename

--group-file=filename

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

-l username

--login-user=username

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

-t

--list

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

-x filename

--exec-file=filename

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

注意:

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

--authenticate

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

--max-lines=maxlines

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

--xml

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

-h

--help

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

command

リモート・ノードで実行するExaCLIコマンドを指定します。複数のコマンドを指定するには、コマンドをセミコロン文字;で区切ります。

注意:

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

--cookie-jar [filename]

注意:

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

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

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

0: すべてのリモート・ノードで、コマンドが正常に実行されました。

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

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

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

関連トピック

8.3 exadcliの例

例1: celladministratorユーザーとしてcell01、cell02およびcell03に接続し、資格証明を~/.exacli/cookiejarに格納して、同じセルに対するそれ以降のexadcliコマンドでパスワードを要求しないようにします。

$ exadcli -c cell01,cell02,cell03 -l celladministrator --authenticate
Password:

例2: mycellsファイルにリストされているセルにcelladministratorユーザーで接続し、list cell detailコマンドを実行します。

$ cat mycells
cell01
cell02
cell03

$ exadcli -g mycells -l celladministrator list cell detail

例3: mycellsファイルにリストされているセルにcelladministratorユーザーで接続し、usercommands.txt内のExaCLIコマンドを実行します。

$ cat usercommands.txt
list cell

$ exadcli -g mycells -l celladministrator -x usercommands.txt
cell01 : cell01   online
cell02 : cell02   online
cell03 : cell03   online

例4: mydbserversファイルにリストされているデータベース・サーバーにdbadministratorユーザーで接続し、usercommands.txt内のExaCLIコマンドを実行します。

$ cat mydbservers
db01
db02
db03

$ cat usercommands.txt
list dbserver

$ exadcli -g mydbservers -l dbadministrator -x usercommands.txt
db01 : db01 online
db02 : db02 online
db03 : db03 online