InterSystems IRIS インスタンスの管理 : iris コマンド
InterSystems IRIS® データ・プラットフォームの複数のインスタンスを 1 つのホスト・システムにインストールして実行できます。各インスタンス は、独立した一意の InterSystems IRIS 環境です。
インスタンスの管理オプション
指定されたシステムにインストールされたいくつかの InterSystems IRIS インスタンスのうちの 1 つに接続し、これを管理する方法は数多くあります。最も一般的な 2 つのメソッドを以下に示します。
-
Windows ランチャー
Windows システム上にインストールされた各 InterSystems IRIS インスタンスは、システム・トレイに独自のランチャーを備え、以下の操作が可能となります。
-
管理ポータル、InterSystems ターミナル、およびスタジオ開発者クライアントを開くことで、インスタンスに接続します。
-
インスタンスを開始、停止、および再起動します。
-
ユーザおよび開発者のドキュメントを開きます。
ランチャーから、複数のリモート InterSystems IRIS インスタンスを管理することもできます。これらの管理には、リモート・バックアップの実行、構成設定の編集、リモートのオブジェクトおよびルーチンの作成やコンパイルなどが含まれますが、これらに限られるわけではありません。詳細は、"リモート・サーバへの接続" を参照してください。
-
-
iris コマンド
オペレーティング・システムのコマンド行で iris コマンドを実行すると、InterSystems IRIS インスタンスへの管理アクセスが可能となり、以下の操作を行うことができます。
-
InterSystems ターミナルを使用してインスタンスに接続します。
-
インスタンスを開始、停止、および再起動します。
-
インスタンスに関する情報、およびシステムにインストールされている他のインスタンスに関する情報を表示します。
iris コマンドの詳細は、"InterSystems IRIS インスタンスの接続" および "InterSystems IRIS インスタンスの制御" を参照してください。
リモート・サーバで iris コマンドを使用するには、Telnet または SSH クライアントを使用します。コンテナ化されたインスタンスでこれを使用するには、コンテナ内でこれを使用するか、docker exec コマンドを使用して、コンテナ外からこれを実行します。
-
インスタンスへの接続
ここでは、シェルの一つ、具体的には ObjectScript シェルを使用して、インスタンスに接続し、そのインスタンスにアクセスできるようにする方法を説明します。このシェルは、InterSystems IRIS インスタンスの任意のネームスペースで使用できます。ObjectScript シェルはターミナルと呼ばれることもありますが、ターミナルは実際にはこのシェルを提供する Windows アプリケーションです。実行中のインスタンスに対してこのシェルを開くには、コマンド iris terminal instname を使用します。instname は、インストール時にインスタンスに付けた名前です。 コンテナ化されたインスタンスは、一般に IRIS という名前が付与されます。
事前定義のユーザ・アカウントのいずれかとインストール時に指定したパスワードを使用するか、作成したアカウントを使用してログインします。表示されるプロンプトは、次のようなログイン・ネームスペースを示します。
# iris terminal IRIS
Node: intersystems2588, Instance: IRIS27
Username: admin
Password: ********
USER>
ターミナルを終了し、ウィンドウを閉じるには、コマンド halt を入力します。
docker exec コマンドを使用して、コンテナ化されたインスタンスのターミナルを開く場合 ("InterSystems ターミナルを使用した操作" の説明に従って)、自動的に irisowner としてログインされるため、認証は不要です。
Windows システムでは、InterSystems IRIS インスタンスの install-dir\bin ディレクトリからこのコマンドを実行するか、例えば c:\InterSystems\IRIS27\bin\iris terminal IRIS4 のようにコマンドにフル・パスを含める必要があります。指定されたインスタンスのバイナリを実行して、そのインスタンスまたは別のインスタンスに接続できます。どちらの場合もインスタンス名が必要です。
インスタンスの制御
iris コマンドは、terminal を超える多くの関数をサポートし、iris function instname arguments の形式で呼び出されます。ここで instname はインストール時に選択したインスタンス名、arguments は関数によって異なります。
iris help コマンドによってコマンドのすべての関数と引数が表示されます。IRISHelp.html ファイルは install-dir\Help ディレクトリにあります。iris コマンドの一部の関数は、このドキュメントに記載されていませんが、help ディスプレイには表示されます。
iris コマンドは、プラットフォームによって動作が異なります。これを次の表で説明します。
UNIX®、Linux、および MacOS での iris コマンド
iris コマンドは、メッセージ・ボックスにエラー情報を表示することがよくあります。iris コマンドへの最後の引数として quietly を追加することで、このメッセージ・ボックスを抑制できます。この引数は、ダイアログを最小限にして非対話式でコマンドを実行します。この引数は、コマンドの確認を行うことなくインスタンスをシャットダウンする場合などにも有用です。
インストールされているすべてのインスタンスについて、1 行につき 1 インスタンスで、以下の説明のとおり要約情報をリストします。
解析やレポートのために完全な情報が必要な場合は、iris list を使用します。
それぞれのインスタンスに対して同じ情報を iris all としてリストしますが、長いフィールド値はラップしません。行の長さは 80 文字以上になる場合があります。
ObjectScript シェルのコマンド・ウィンドウを開きます。
引数 : iris terminal と同じ引数。
インスタンスを強制終了します。
iris コマンドの最新情報を表示します。
引数 : start、stop、force — 起動、シャットダウン、および強制終了の各機能に関する固有のヘルプを表示します。
インストールされている InterSystems IRIS インスタンスに関する情報を、以下の説明のとおりに表示します。
引数 : instname — オプションで、InterSystems IRIS インスタンスの名前を指定し、そのインスタンスに関する情報のみを表示します。例えば、iris list MyIRIS は、MyIRIS インスタンスに関する情報のみを表示します。
##class(%DeepSee.Shell).%Go() を実行することにより、ターミナルから DeepSee シェルに直接アクセスできます。
構成マージ・ファイルをインスタンスに適用し、その CPF を更新します ("構成マージを使用した InterSystems IRIS の自動構成" を参照)。
引数 : [merge-file]、[target-CPF] — 必要に応じて、適用するマージ・ファイルの場所、ターゲットの CPF (インスタンスのアクティブな CPF) の場所、またはその両方を指定できます。例えば、iris merge MyIRIS /tmp/merge.cpf /net/home/MyIRIS は、マージ・ファイル /tmp/merge.cpf をインスタンス MyIRIS に適用します。このインスタンスのアクティブな CPF は /net/home/MyIRIS にあります。マージ・ファイルまたはターゲット CPF を指定していない場合、環境変数が存在すればそれが使用されます。詳細は、"構成マージを使用して既存のインスタンスを再構成する方法" を参照してください。
##class(%SYS.Python).Shell() を実行することにより、ターミナルから Python シェルに直接アクセスできます。
それぞれのインスタンスに対して同じ情報を iris all としてリストしますが、長い行は 78 文字に終了チルダ (~) 1 つを加えた長さに切り捨てられます。
iris list と同様ですが、追加情報があります。各インスタンス (以下で説明) は、1 行でキャレット (^) で区切って出力されます。
引数 : instname — オプションで、InterSystems IRIS インスタンスの名前を指定し、そのインスタンスに関する情報のみを表示します。例えば、iris qlist MyIRIS は、MyIRIS インスタンスに関する情報のみを表示します。
インスタンスの名前を変更します。
インスタンスを再起動します。iris stop instname と同等の機能です。 restart
引数 : nofailover — オプションのこの引数を指定すると、ミラー・フェイルオーバーがトリガされません。
##class(%SQL.Shell).%Go() を実行することにより、ターミナルから SQL シェルに直接アクセスできます。
インスタンスを開始します。
緊急モードでの起動を求めるメッセージが表示されることがあります。その場合は、"緊急アクセス" を参照してください。
引数 :
-
full CPF path — 既定で InterSystems IRIS は、<install-dir>/mgr ディレクトリにある iris.cpf ファイルから特定の設定を読み取ります。代わりに使用する別の .cpf ファイルへのフル・パスを指定することもできます。
-
nostu — ^STU を実行せずに、指定したインスタンスを開始します。
irisstat ユーティリティと同じシステムの統計を取得します ("irisstat ユーティリティを使用した InterSystems IRIS の監視" を参照)。
インスタンスをシャットダウンします。
引数 :
-
restart — インスタンスのシャットダウン後にそのインスタンスを開始します。
-
nofailover — このオプションの引数を指定すると、ミラー・フェイルオーバーがトリガされません。
-
quietly — 最後の引数として、確認を必要とせずにインスタンスをシャットダウンします (他の iris コマンドを非対話式で実行する場合にも使用できます)。
INTNOSHUT^SHUTDOWN を実行して、ユーザのシャットダウン・ルーチンを実行せずに、指定したインスタンスをシャットダウンします。
インスタンス所有者と irisusr のみが、ターミナルにログインすることなく INTNOSHUT^SHUTDOWN を実行できます。
引数 : nofailover — オプションのこの引数を指定すると、ミラー・フェイルオーバーがトリガされません。
インスタンスの ObjectScript シェルを開きます。
引数 :
-
-B — システム管理者の緊急ログインを有効にします ("管理者ターミナル・セッション" を参照)。
-
-b partition_size — プロセスの最大パーティション・サイズ (KB) を指定します。
-
"[label[+offset]]^routine" — ユーザ・モードで実行する ObjectScript プログラムの名前を指定します。指定の形式のほかに、文字列または数値リテラルで構成するパラメータ、および省略 (void) パラメータを以下のように渡すことができます。
-
"routine[([parameter-list])]"
-
"[label]^routine[([parameter-list])]"
-
"##CLASS(package.class).method[([parameter-list])]"
ここでは例えば、parameter-list を "string literal",,-+-000123.45600E+07 の形式で指定し、省略パラメータは $Data(parameter)=0 としてターゲットへ渡します。
Note:空白やシェル・メタ文字は、オペレーティング・システムに依存する形式で引用する必要があります。
-
-
-U namespace — ログイン・ネームスペースを指定します。
Note:[開始ネームスペース] が指定されているユーザ・アカウントで InterSystems IRIS を開始した場合は、-U 引数に効果はありません ("ユーザ・アカウントのプロパティ" を参照)。
Windows での iris コマンド
Windows では、install-dir\bin ディレクトリから iris コマンドを実行する必要があります (または、コマンドにフル・パスを含めます)。
インストールされているすべてのインスタンスについて、1 行につき 1 インスタンスで、以下の説明のとおり要約情報をリストします。
解析やレポートのために完全な情報が必要な場合は、iris list を使用します。
それぞれのインスタンスに対して同じ情報を iris all としてリストしますが、長いフィールド値はラップしません。行の長さは 80 文字以上になる場合があります。
ObjectScript シェルのコマンド・ウィンドウを開きます。
引数 : iris terminal と同じ引数。
インスタンスを強制終了します。
iris コマンドの最新情報を表示します。
インストールされている InterSystems IRIS インスタンスに関する情報を、以下の説明のとおりに表示します。
引数 : instname — オプションで、InterSystems IRIS インスタンスの名前を指定し、そのインスタンスに関する情報のみを表示します。例えば、iris list MyIRIS は、MyIRIS インスタンスに関する情報のみを表示します。
構成マージ・ファイルをインスタンスに適用し、その CPF を更新します ("構成マージを使用した InterSystems IRIS の自動構成" を参照)。
引数 : [merge-file]、[target-CPF] — 必要に応じて、適用するマージ・ファイルの場所、ターゲットの CPF (インスタンスのアクティブな CPF) の場所、またはその両方を指定できます。マージ・ファイルまたはターゲット CPF を指定していない場合、環境変数が存在すればそれが使用されます。詳細は、"構成マージを使用して既存のインスタンスを再構成する方法" を参照してください。
iris list と同様ですが、追加情報があります。各インスタンス (以下で説明) は、1 行でキャレット (^) で区切って出力されます。
引数 : instname — オプションで、InterSystems IRIS インスタンスの名前を指定し、そのインスタンスに関する情報のみを表示します。例えば、iris qlist MyIRIS は、MyIRIS インスタンスに関する情報のみを表示します。
インスタンスのシャットダウン後にそのインスタンスを開始します。
引数 : /nofailover — オプションのこの引数を指定すると、ミラー・フェイルオーバーがトリガされません。
$Principal の入出力デバイスを使用せず、プログラマ・モードで InterSystems IRIS を実行します。
引数 : iris terminal と同じ引数。
$Principal の入出力デバイスを使用せず、アプリケーション・モードで指定の InterSystems IRIS ルーチンを実行します。バッチ・スクリプトから実行した場合、コマンドは InterSystems IRIS プロセスが終了するのを待ってから、そのプロセスからの終了コードを返します。
引数 : namespace — 指定されたネームスペースでルーチンを実行します。
[開始ネームスペース] が指定されているユーザ・アカウントで InterSystems IRIS を開始した場合は、namespace 引数に効果はありません ("ユーザ・アカウントのプロパティ" を参照)。
インスタンスを開始します。
“緊急モード” での起動を求めるメッセージが表示されることがあります。その場合は、"暗号化ガイド" の "緊急事態への対処" を参照してください。
引数 : full CPF path — 既定で InterSystems IRIS は、<install-dir>/mgr ディレクトリにある iris.cpf ファイルから特定の設定を読み取ります。代わりに使用する別の .cpf ファイルへのフル・パスを指定することもできます。
^STU を実行せずに、指定したインスタンスを開始します。
インスタンスをシャットダウンします。
引数 : /nofailover — オプションのこの引数を指定すると、ミラー・フェイルオーバーがトリガされません。
INTNOSHUT^SHUTDOWN を実行して、ユーザのシャットダウン・ルーチンを実行せずに、指定したインスタンスをシャットダウンします。
インスタンス所有者と irisusr のみが、ターミナルにログインすることなく INTNOSHUT^SHUTDOWN を実行できます。
引数 : /nofailover — オプションのこの引数を指定すると、ミラー・フェイルオーバーがトリガされません。
インスタンスのシャットダウン後にそのインスタンスを開始します。
引数 : /nofailover — オプションのこの引数を指定すると、ミラー・フェイルオーバーがトリガされません。
インスタンスの InterSystems ターミナル (正式には ObjectScript シェル) を開きます。
引数 :
-
routine — $Principal のターミナルで、指定した InterSystems IRIS ルーチンをアプリケーション・モードで実行します
-
"[label[+offset]]^routine" — ユーザ・モードで実行する ObjectScript プログラムの名前を指定します。指定の形式のほかに、文字列または数値リテラルで構成するパラメータ、および省略 (void) パラメータを以下のように渡すことができます。
-
"routine[([parameter-list])]"
-
"[label]^routine[([parameter-list])]"
-
"##CLASS(package.class).method[([parameter-list])]"
ここでは例えば、parameter-list を "string literal",,-+-000123.45600E+07 の形式で指定し、省略パラメータは $Data(parameter)=0 としてターゲットへ渡します。
Note:空白やシェル・メタ文字は、オペレーティング・システムに依存する形式で引用する必要があります。
-
-
namespace — routine と共に使用され、指示されたネームスペースでルーチンを実行します。
Note:[開始ネームスペース] が指定されているユーザ・アカウントで InterSystems IRIS を開始した場合は、namespace に効果はありません ("ユーザ・アカウントのプロパティ" を参照)。
iris list、qlist、および all
ここでは、一部の iris 関数に関する追加情報について説明します。
1 つ以上の InterSystems IRIS インスタンスに関する以下の情報をリストします。
-
インスタンスの状態 (以下の状態)
-
<blank> (状態利用不可、ログイン無効)
-
dn (ダウンまたはクラッシュ)
-
up (実行中)
-
st (開始または停止)
-
-
インスタンス名
-
InterSystems IRIS のバージョン
-
スーパーサーバのポート番号
-
インストール・ディレクトリ
1 つ以上の InterSystems IRIS インスタンスに関する以下の情報をリストします。
-
インスタンス名 (およびインストール・タイプ)
-
インストール・ディレクトリ
-
InterSystems IRIS のバージョン
-
InterSystems IRIS パラメータ (.cpf) ファイルのパス名
-
スーパーサーバおよび Web サーバのポート番号
-
インスタンスの状態 (以下の状態)
-
実行
-
ダウン
-
開始または停止
-
開始または停止が不完全、ログイン無効
-
-
実行中の場合、インスタンスのシステム・ヘルス状態 ("システム・モニタのヘルス状態" を参照) (Windows の場合は含まれません)
-
ミラー・メンバのタイプとステータス (ミラー・メンバの場合。%SYSTEM.Mirror.GetMemberType()Opens in a new tab および %SYSTEM.Mirror.GetMemberStatus()Opens in a new tab を参照)
1 つ以上の InterSystems IRIS インスタンスについて、以下の情報を 1 行にキャレット (^) で区切って出力します。
-
インスタンス名 (およびインストール・タイプ)
-
インストール・ディレクトリ
-
InterSystems IRIS のバージョン
-
インスタンスの状態
-
インストール・ディレクトリを基準にした、現在の構成パラメータ・ファイルのパス名。Windows システムでは、代わりにフル・パスが示されます。
-
スーパーサーバのポート番号
-
Web サーバのポート番号
-
JDBC ゲートウェイのポート番号
-
インスタンスのシステム・ヘルス状態 (実行中の場合。Windows の場合は常に空白)
-
製品名
-
ミラー・メンバのタイプ (ミラー・メンバの場合)
-
ミラー・ステータス (ミラー・メンバの場合)
-
データ・ディレクトリ (該当する場合)
複数のインスタンスの構成
1 台のマシンに、InterSystems IRIS の複数のインスタンスをインストールし、同時に実行できます。単一のインストールとして InterSystems IRIS をインストールする場合は、各インスタンスに一意の名前、一意のインストール・ディレクトリ、およびスーパーサーバ、Web サーバ、および Telnet 用の一意のポート番号を指定します。
複数のインスタンスに関する特別な考慮事項は以下のとおりです。
-
複数のインスタンスをインストールする場合、1 つのシステムにつき 1 つのコンポーネントしかインストールできません。例えば、通常 Web サーバはシステムに 1 つに制限されるため、InterSystems IRIS をインストールすると、Web ゲートウェイが最新のインストールに対して構成されます。レジストリに格納されている InterSystems IRIS クライアント・コンポーネントについても、同様の問題が発生します。InterSystems IRIS では、その ODBC ドライバが、それぞれ 1 つの名前を使用してレジストリに格納されます。現在、これらのコンポーネントは、インストールされている最新のインスタンスを参照するように、最新のインストールによって更新されるようになっています。
インターシステムズは、InterSystems IRIS インスタンス全体で共有できるように、共通のコンポーネントを共通のディレクトリに移動する作業を進めています。
-
複数のインスタンスで、同じマルチサーバ・キーを共有できます。しかし、その場合は同じ 1 つのあるいは 1 組みのライセンス・サーバを使用する必要があります。1 つ以上のライセンス・サーバの下で InterSystems IRIS インスタンスを実行するそれぞれのシステムのローカルには、インスタンスごとに認証ライセンス・キー・ファイルのコピーがインストールされている必要があります。
-
複数のインスタンスはネットワーク接続できます。
-
データベースは、同時に複数のインスタンスからは使用できないように保護されています (各インスタンスは個別にデータベースが必要です。他のインスタンスのデータベースにアクセスしたり修正することはできません)。
-
複数のインスタンスが構成されているときに、特定のインスタンスに要求をルーティングする場合は、追加の考慮事項があります。この詳細は、"複数の InterSystems IRIS サーバ上のターゲット・アプリケーション" を参照してください。
-
各インスタンスには一意のポート番号が必要です。ポート番号の設定方法の詳細は、次のセクションを参照してください。
ポート番号の設定
標準では、単一の InterSystems IRIS インスタンスのスーパーサーバ・ポート番号は既定で 1972 です。1 台のマシンに InterSystems IRIS のインスタンスを複数設定する場合、それぞれに一意のスーパーサーバ・ポート番号が必要です。自動的にポート番号を設定するようにした場合、後続のインスタンスにはインストール中に番号が割り当てられます。また、インストール中に手動でポート番号を入力することもできます。
InterSystems IRIS インストールの際にスーパーサーバ・ポート番号が割り当てられるため、たいていの場合はこれらのポート番号を変更する必要はありません。スーパーサーバ・ポートの値は、インストール後に、管理ポータルの [メモリと開始設定] ページ ([システム管理]→[構成]→[システム構成]→[メモリと開始設定]) から変更できます。
各インスタンスに一意の Telnet ポート番号を割り当てる必要はあります。Telnet ポートの値は、インストール後に、管理ポータルの [開始設定] ページ ([システム管理]→[構成]→[追加の設定]→[開始]) および [Telnet設定] ページ ([システム管理]→[構成]→[デバイス設定]→[Telnet設定]) から 変更できます。