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

ExaCLIは、データベースおよびセル・ノードで実行されるコマンドライン管理ツールで、リモートでノードを管理できます。

概要

ExaCLIを使用して、リモート・ノードの環境でセルとデータベース・ノードの構成およびオブジェクトを管理できます。ExaCLIは、セルまたはデータベース・ノードのイメージ化の際にインストールされます。ExaCLIでは、DBMCLIおよびCellCLIと同じコマンド構文がサポートされます。主な違いは、ExaCLIではリモート・ホストからセルおよびデータベース・ノードを管理するのに対し、DBMCLIはデータベース・ノード上で直接実行され、CellCLIはセル・ノード上で直接実行されることです。

ExaCLIを使用する主な理由には、次の2つがあります。

  • 多くの企業、特に政府機関では、コンプライアンス要件の一部としてセルおよびデータベース・ノード上のrootアクセスまたはSSHサービスを無効にする必要があります。

  • Exadataマシンをホストするサービス・プロバイダは、セルおよびデータベース・ノード上で実行されている仮想マシンへのアクセスを提供します。お客様が、ノードを管理するために、CellCLIまたはDBMCLIを使用して、セルまたはデータベース・ノードに対するSSHを実行することは、許可されません。

そのような場合、セルまたはデータベース・ノードを管理する方法は、リモート・ノードで実行されるExaCLIを使用することのみとなります。

前提条件

  • セルまたはデータベース・ノード上に作成されたユーザー(必要な権限が付与されていること)。詳細は、「ExaCLIで使用するユーザーの作成」を参照してください。

  • Javaバージョン1.8以降

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

ファイル・パス

/usr/local/sbin/exacli

構文

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

exacli -c [username@]remotehost[:port] [-l username] [ --xml | --json ]
 [--cookie-jar [filename]] [-e {command | 'command[; command]' | @batchfile}]

オプション

オプション 説明

-c [username@]remotehost、または

--connect [username@]remotehost[:port]

接続先のリモート・ノードを指定します。ユーザー名の入力を求めるExaCLIのプロンプトが表示されます(指定していない場合)。

ExaCLIは、セルと計算ノードの両方に接続できます。計算ノードMSのデフォルトのポートは、7879です。

IPv6アドレスを使用すると、リモート・ホストを指定できます。IPv6アドレスは、例10-2に示すように角カッコと一重引用符で囲む必要があります。

-l usernameまたは

--login-name username

リモート・ノードにログインするユーザー名を指定します。

--xml

出力をXML形式で表示します。

--json

出力をJSON形式で表示します。

--cookie-jar [filename]

使用するCookie jarのファイル名を指定します。filenameの指定がない場合、Cookieは、HOME/.exacli/cookiejarにあるデフォルトのCookie jarに格納されます(HOMEは、ExaCLIコマンドを実行しているOSユーザーのホーム・ディレクトリです)。

有効なCookieが存在することで、ExaCLIユーザーは、後続のExaCLIセッションでログインを要求されることなく、コマンドの実行が許可されます。

-e commandまたは

-e 'command[; command]'、または

-e @batchFile

実行するExaCLIコマンドまたはバッチ・ファイルのいずれかを指定します。ExaCLIは、コマンドの実行後に終了します。

複数コマンドの実行を指定する場合は、コマンドを一重引用符で囲んで、シェルがセミコロンを解釈しないようにします。

インタラクティブなExaCLIセッションを開始するには、このオプションを省略します。

--cert-proxy proxy[:port]

証明書をダウンロードするときに使用するプロキシ・サーバーを指定します。portを省略すると、デフォルトでポート80が使用されます。

-nまたは

--no-prompt

ユーザー入力を求めるメッセージを抑制します。

使用上のノート

  • 次に、--cookie-jarオプションのノートを示します。

    • ユーザー名およびパスワードは、認証のためリモート・ノードに送信されます。認証に成功すると、リモート・ノードによってCookie (ログイン資格証明)が発行され、データベース・ノード上の指定したfilenameに格納されます。filenameが指定されない場合、Cookieは、HOME/.exacli/cookiejarにあるデフォルトのCookie jarに格納されます(HOMEは、ExaCLIコマンドを実行しているOSユーザーのホーム・ディレクトリです)。

    • Cookie jarファイルの権限は、rw- --- --- (600)に設定されています。

    • ExaCLIコマンドを実行しているオペレーティング・システム・ユーザーがcookie-jarファイルの所有者です。

    • Cookie jarには、パラレル・セッションで複数のノード上の複数のユーザーからの複数のCookieを格納できます。

    • Cookieが見つからない場合や有効期限切れの場合は、ExaCLIによりパスワードの入力を求められます。新しいCookieがfilenameで識別されるCookie jar、またはfilenameが指定されていない場合はデフォルトのCookie jarに格納されます。

    • ExaCLIでは、--cookie-jarオプションがない場合も、デフォルトのcookie-jarからcookieがチェックされます。ただし、cookieが存在しない場合や有効期限切れの場合は、--cookie-jarオプションが指定されていないと、新しいcookieがデフォルトのcookie jarに格納されません

  • 次に、-eオプションのノートを示します。

    • ExaCLIは、コマンドの実行後に終了します。

    • 実行する複数のコマンドを指定する場合、コマンドを一重引用符で囲んで、シェルがセミコロンを解釈しないようにします。

    • バッチ・ファイルは、実行する1つ以上のExaCLIコマンドが含まれているテキスト・ファイルです。

  • 次に、-n (--no-prompt)オプションのノートを示します。

    • ExaCLIがユーザーから追加情報を必要とする場合、たとえばExaCLIがユーザーにパスワードの入力を求めたり(たとえば、Cookie-jarに有効なCookieがないため)、リモート・ノードのアイデンティティを確認するよう求める必要がある場合、ExaCLIはエラー・メッセージを出力して終了します。

次に示す例では、ユーザーを作成して必要な権限を付与した後のExaCLIの使用方法を示します。ユーザーを作成して権限を割り当てる例については、「ExaCLIで使用するユーザーの作成」を参照してください。

例10-1 ExaCLIを使用したセル上のユーザーへの接続

セル・ノードcellnode01celladministratorユーザーとして接続します。デフォルトのCookie jarにcelladministratorユーザーの有効なCookieが含まれない場合、ExaCLIによりパスワードの入力が求められます。--cookie-jarオプションが指定されていないため、CookieはCookie jarには格納されません。

$ exacli -l celladministrator -c cellnode01

次に、同等のコマンドを示します。

$ exacli -c celladministrator@cellnode01

例10-2 IPv6アドレスを使用したリモート・ホストへの接続

IPv6アドレスを使用すると、リモート・ホストを指定できます。IPv6アドレスは、角カッコと一重引用符で囲む必要があります。

$ exacli -c 'scott@[2001:db8:a0b:12f0::1]'

$ exacli -c '[2001:db8:a0b:12f0::1]' -l scott

例10-3 ExaCLI接続用のCookieの作成

認証のために、ユーザーcelladministratorおよびパスワードがcellnode01に送信されます。認証に成功すると、セル・ノードにより、デフォルトのCookie jarに格納されるCookieが送り返されます。この場合、指定されたコマンドがセル・ノードで実行されます。次の点に注意してください

ヒント:

複数のコマンドは一重引用符で囲む必要があります。
$ exacli -l celladministrator -c cellnode01 --cookie-jar -e 'list cell; list celldisk'
Password=************

例10-4 ExaCLIコマンド実行時のCookieの使用

前述の例に示したようにCookieを作成すると、celladministratorユーザーの後続のExaCLIセッションにはデフォルトのCookie jarのCookieが使用されるため、ExaCLIによりパスワードの入力を要求されることがなくなります。

$ exacli -l celladministrator -c cellnode01 -e list griddisk detail

celladministrator以外のユーザーとして接続する場合、そのユーザーのCookieが存在していないときには、パスワードの入力を求められます。

$ exacli -c user1@cellnode01 -e list griddisk detail
Password=************

例10-5 ExaCLIを使用したDBSERVERの詳細の表示

この例のExaCLIは、dbnodeadministratorユーザーとしてdbnode01ノードに接続し、DBSERVERオブジェクトの詳細な属性をリストします。

$ exacli -l dbnodeadministrator -c dbnode01 --cookie-jar -e list dbserver detail

ログインおよびパスワードは、認証のためデータベース・ノードに送信されます。認証に成功すると、データベース・ノードにより、ExaCLIが実行されているマシン上のCookie jarに格納されるログイン資格証明付きのCookieが返されます

例10-6 ExaCLIを使用したDBSERVERのALERTHISTORYの表示

この例のExaCLIは、dbnodeadministratorユーザーとしてdbnode01ノードに接続し、ALERTHISTORYオブジェクトをリストします。デフォルトのCookie jarに有効なCookieがある場合は、ExaCLIからパスワードの入力は求められません。

$ exacli -c dbnodeadministrator@dbnode01 -e list alerthistory

例10-7 ExaCLIでのコマンド・バッチ・ファイルの使用方法

この例では、ファイルcommandFileはローカル・ディレクトリ(ExaCLIコマンドがコールされたディレクトリ)に格納されていて、次の情報が含まれています。

list dbserver detail
list alerthistory

ExaCLIは、dbnode01データベース・ノードにdbnodeadministratorユーザーとして接続し、認証に成功すると、commandFile内のコマンドを実行します。

$ exacli -l dbnodeadministrator -c dbnode01 -e @commandFile