11 exadcliユーティリティの使用
exadcli
ユーティリティは、ExaCLIコマンドの実行を自動化することでOracle Exadataシステム全体の集中管理を容易にします。
exadcli
はリモート・ノードのセットに対してコマンドを実行し、exadcli
ユーティリティが実行された集中管理の場所に出力結果を返します。
- exadcliコマンド・リファレンス
exadcli
ユーティリティでは、複数のリモート・ノードでコマンドをパラレル・スレッドで実行します。 - exadcliの初回使用
ここでは、exadcli
を使用するようにOracle Exadata Database Machineを構成する方法について説明する複数ステップの例を示します。 - exadcliの例
これらの例では、ユーザーを作成して必要な権限を付与した後でExaCLIを使用する方法を示します。
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]
オプション
オプション | 説明 |
---|---|
|
ExaCLIコマンドの送信先となるターゲット・リモート・ノードのカンマ区切りのリストを指定します。 |
|
コマンドの送信先のターゲット・リモート・ノードのリストを含むファイルを指定します。リモート・ノードは、ホスト名またはIPアドレスで識別できます。 |
|
リモート・ノードにログインするユーザーを指定します。これは、オペレーティング・システムのユーザーではなく、DBMCLIまたはCellCLIのユーザーです。 |
|
|
|
リモート・ノードで実行するコマンド・ファイルを指定します。このコマンド・ファイルには、ExaCLIコマンドのリストが含まれています。 ノート: |
|
ユーザー・パスワードを要求します。すべてのリモート・ノードでユーザーはパスワードを使用して認可され、認可はデフォルトのCookie jarに格納されます。 |
|
リモート・ノードからの最大出力行を制限します。デフォルトは100,000行です。 |
|
これにより、出力がXML形式で表示されます。このオプションはExaCLIに渡されます。 |
|
ヘルプ・メッセージを表示します。 |
または
|
リモート・ノードで実行するExaCLIコマンドを指定します。複数のコマンドを指定するには、コマンド文字列を一重引用符で囲んで、それぞれのコマンドをセミコロン文字( ノート: |
|
Cookie jarファイルを指定します。このオプションはExaCLIに渡されます。 ノート: このオプションは非推奨です。現在では、 |
使用上のノート
-
exadcli
からの戻り値は次のとおりです。- 0: すべてのリモート・ノードで、コマンドが正常に実行されました。
- 1: 1つ以上のリモート・ノードにアクセスできず、リモート実行により0以外のステータスが返されました。
- 2: ローカルのエラーによりコマンドを実行できませんでした。
-
いずれかのリモート・ノードが停止しているか、応答がない場合は、メッセージが
stderr
に書き込まれ、応答のないリモート・ノードが表示されます。その他のリモート・ノードは操作が続行され、完了後のリターン・コードは1
になります。 -
管理サーバー(MS)を再起動した場合は、
exadcli --authenticate
コマンドを使用してexadcli
を再認証する必要があります。$ exadcli -c dbnode01,dbnode02,dbnode03 -l dbnodeadministrator --authenticate
関連トピック
親トピック: exadcliユーティリティの使用
11.2 exadcliの初回使用
ここでは、exadcli
を使用するようにOracle Exadata Database Machineを構成する方法について説明する複数ステップの例を示します。
この例は、セル・ノードへのアクセスの構成方法を示しています。わずかな変更を加えることで、データベース・ノードへのアクセスを構成する場合にも同じ手順が使用できます。
親トピック: exadcliユーティリティの使用
11.3 exadcliの例
これらの例では、ユーザーを作成して必要な権限を付与した後でExaCLIを使用する方法を示します。
ユーザーを作成して権限を割り当てる例については、「ExaCLIで使用するユーザーの作成」を参照してください。
ストレージ・セルへのexadcli
アクセスを初めて構成する場合の例は、「exadcliの初回使用」を参照してください。
例11-1 AUTHENTICATEオプションを使用したexadcliの再認証
dbnodeadministrator
ユーザーとしてノードdbnode01,dbnode02,dbnode03
に接続し、~/.exacli/cookiejar
に資格証明を格納することで、それ以降、同じノードに対するexadcli
コマンドがパスワードを要求しないようにします。
$ exadcli -c dbnode01,dbnode02,dbnode03 -l dbnodeadministrator --authenticate
例11-2 exadcliを使用したDBSERVER情報の表示
exadcli
を使用して、DBSERVER情報のリスト表示のような、複数のノードに対するコマンドを実行できます。
$ exadcli -c dbnode01,dbnode02,dbnode03 -l dbnodeadministrator list dbserver
例11-3 exadcliを使用した詳細なセル情報の表示
exadcli
を使用すると、単一のコマンドで複数のノードの詳細なセル情報を取得できます。
$ exadcli -c cell01,cell02,cell03 -l celladministrator list cell detail
例11-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
...
関連トピック
親トピック: exadcliユーティリティの使用