Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

UNIX®、Linux、および macOS での InterSystems IRIS の使用法

この章では、UNIX®、Linux、および macOS に固有の管理手順について説明します。

UNIX® のユーザ、グループおよび権限

UNIX® プラットフォームでの InterSystems IRIS® データ・プラットフォームのインストールはすべて、以下のユーザおよびグループを有しています。

  • root — InterSystems IRIS は root によってインストールされ、InterSystems IRIS システム・デーモンによる処理の一部は root として実行する必要があります。

  • インスタンスの所有者 — このユーザがほとんどのインストール・ファイルが所有し、インスタンスを完全にコントロールします。最小の初期セキュリティ設定でインストールした場合は、root が既定の所有者となります。それ以外の場合、インストール中に所有者の指定を求められます。

  • InterSystems IRIS スーパーサーバの実効ユーザとそのジョブ — 受信要求処理のためにスーパーサーバにより生成された InterSystems IRIS プロセスはすべて、このユーザとして実行されます。JOBSERVER プロセスによりホストされるジョブのほかにタスク・マネージャのジョブおよびユーザ定義の起動ルーチン (^%ZSTART など) もこのユーザで実行されます。既定では、このユーザが irisusr となりますが、カスタム・インストール中にユーザを変更することができます。

  • InterSystems IRIS プロセスの実効グループ — すべての InterSystems IRIS プロセスは、自動的にこのグループとして実行され、InterSystems IRIS 内部においての通常のユーザが InterSystems IRIS データベースやジャーナル・ファイルにアクセスできますが、それまではこれらのファイルへのアクセスが認められない場合があります。これらおよびその他の InterSystems IRIS ファイルに対してファイルのアクセス権限を設定することにより、このグループが適正なアクセスを得られます。安全なシステムでは、InterSystems IRIS スーパーサーバとそのジョブの実効ユーザのみがこのグループのメンバとなります。既定では、このグループに含まれるのは irisusr ですが、カスタム・インストール中にグループを変更することができます。

  • インスタンスの開始と停止を許可されたグループ — このグループ、root、およびインスタンスの所有者は、InterSystems IRIS を開始および停止することができます。

すべてのジャーナルおよびジャーナル・ディレクトリは、InterSystems IRIS プロセスの実効グループのグループに設定されたグループ所有権を備え、そのグループに完全アクセス権限 (ジャーナルには rw、ジャーナル・ディレクトリには rwx) を与える必要があります。ジャーナルおよびジャーナル・ディレクトリを所有しているユーザは、それらが作成された方法によって異なる場合があります。

InterSystems IRIS 内で作成されたジャーナルおよびジャーナル・ディレクトリは、適切なアクセス権限で作成されます。ただし、(スクリプトまたは管理者のアクションを通じて) 外部的にジャーナルおよびジャーナル・ディレクトリの移動、コピー、作成を行う場合は、適正なアクセス権限が確実に維持されるようにする必要があります。アクセス権限を適切に設定できないと、不測かつ深刻なエラーを誘発するおそれがあります。

以下の例では、InterSystems IRIS プロセスの実効グループirisusr であり、インスタンスの所有者irisowner ですが、ファイルは作成された状況により、異なるユーザ所有権を備えていることを想定しています。例えば以下のようになります。

journal directory    irisowner    irisusr    drwxrwxr-x 
20170801.001         irisowner    irisusr    -rw-rw----

Note:

これらの設定は部分的に、InterSystems IRIS インストールの install-dir/bin ディレクトリ内の実行可能ファイルに対する一連のアクセス権限として維持されます。関連するプロパティには、所有権、グループ、モード、set-UID、set-GID ビットがあります。オペレーティング・システム・レベルでの管理タスク実行時に、これらのアクセス権限を変更しないよう注意してください。

データベースおよびデータベース・ディレクトリのアクセス権限

すべてのデータベースおよびデータベース・ディレクトリは、InterSystems IRIS プロセスの実効グループのグループに設定されたグループ所有権を備え、そのグループに完全アクセス権限 (データベースには rw、データベース・ディレクトリには rwx) を与える必要があります。データベースおよびデータベース・ディレクトリを所有しているユーザは、それらが作成された方法によって異なる場合があります。

InterSystems IRIS 内で作成されたデータベースおよびデータベース・ディレクトリは、適切なアクセス権限で作成されます。しかし、(スクリプトまたは管理者のアクションを通じて) 外部的にデータベースおよびデータベース・ディレクトリの移動、コピー、作成を行う場合、適正なアクセス権限を確実に維持する必要があります。アクセス権限を適切に設定できないと、不測かつ深刻なエラーを誘発するおそれがあります。

以下の例では、InterSystems IRIS プロセスの実効グループirisusr であり、インスタンスの所有者irisowner ですが、ファイルは作成された状況により、異なるユーザ所有権を備えていることを想定しています。

dataset directory    irisowner    irisusr    drwxrwxr-x 
IRIS.DAT            irisowner    irisusr    -rw-rw----

UNIX® での起動

InterSystems IRIS インスタンスがプロセスの開始、停止、および新規プロセスの作成の制御に使用するリソースは、以下のリソースです。

  • install-dir\mgr ディレクトリの iris.ids ファイル。

  • 共有メモリ。

デーモン・リソース・ロック

InterSystems IRIS では、推奨されるファイル・ロックを使用して、異なるマシン上で同一のインスタンスが同時に複数で起動されないようにします。推奨されるファイル・ロックでは、1 つのロック・ファイル (ここでは、install-dir/mgr ディレクトリのファイル ilock) を複数リソースの排他ロックに使用できます。制御プロセス、ライト・デーモン、およびジャーナル・デーモンのそれぞれによって、ロック・ファイル内でロックされるセクションが異なります。ilock ファイルの当該のセクションが既にロックされている場合は、起動が強制終了します。別のデーモンが保持しているロックは、デーモン・リソース・ロックと呼ばれます。

ファイル・ロックはプロセスが終了するまで、そのプロセスによって保持されます。このように、保持されているロックが存在している場合は、いずれかのノードでいずれかのデーモン・プロセスが実行中であることが示されます。ただし、インスタンスの実行が正常であるかどうか、問題なく実行されているかどうかは示されません。

iris.ids ファイル

iris.ids ファイルには、InterSystems IRIS が開始されたノードの名前が格納されます。iris.ids ファイルの存在によって、ObjectScript ユーティリティ、およびユーザ作成のスクリプトは、インスタンスが起動され実行中であることを認識できます。たいていの場合、起動時にはこのファイルが無視されます。ただし、iris.ids の読み取り時にエラーが発生した場合は、InterSystems IRIS が起動されなくなります。これまでのバージョンの InterSystems IRIS では、共有メモリ識別子も iris.ids ファイルに格納されていましたが、今回のリリースからは格納されません。

起動シーケンス

起動シーケンスの理解を深めるため、インスタンスがノード A とノード B という 2 つの異なるノード (マシン) から起動できると考えてみましょう。iris.ids ファイルは、(共有ファイルに対する) デーモン・リソース・ロックの場合と同様に両方のノードから認識できます。しかし、共有メモリ自体は、作成されたノード (つまり、InterSystems IRIS を起動したノード) でのみ認識できます。

手順 1. インスタンスの状態のチェック

起動ルーチンによって irisdb –cV が実行され、インスタンスの状態が検出されます。最初、インスタンスの共有メモリへのアタッチが試行されます。

  • インスタンスの共有メモリがない場合は、デーモン・リソース・ロックが調べられます。

    • 保持されているデーモン・リソース・ロックが存在しない場合は、インスタンスは “停止” しているとレポートされます。

    • デーモン・リソース・ロックが保持されている場合、iris.ids ファイルで指定されたノード上でインスタンスが実行中であるとレポートされます。iris.ids ファイルが存在しない場合は、デーモンを実行中の場所に関する情報を取得できません。

      アクション : ユーザは iris stop、または iris force を実行し、該当するノード上で実行中のインスタンスを中止する必要があります。これによってデーモンが停止し、iris.ids ファイルが削除されます。

  • アタッチが成功した場合、システムは起動され、実行中であると見なされます。この状態がユーザにレポートされます。起動は中止されます。

  • 共有メモリがまだアタッチされているため、起動を完了できないことを示すエラーが表示されている場合は、メモリが解放されるまで数分間待機します。エラーが続く場合は、iris.shid ファイルに関連するエラーが生じている可能性があります。このファイルは、macOS 以外のすべての UNIX® プラットフォームで InterSystems IRIS の共有メモリ ID を追跡します。このファイルの修正にサポートが必要な場合はインターシステムズのサポート窓口Opens in a new tabにお問い合わせください。

手順 2. InterSystems IRIS の起動

InterSystems IRIS の起動プロセスが実行されます。チェックが繰り返し実行され、起動リソースに対して別の起動処理が完了していないことが保証されます。

  • デーモン・リソース・ロックが保持されている場合は、このインスタンスのいずれかのノードで 1 つ以上のデーモンが実行されていることを示します。この場合 InterSystems IRIS はこれをレポートして、エラーによって終了します。起動は中止されます。

    iris.ids ファイルが存在していないと、デーモンが実行されているノードが不明になります。

    アクション : いずれかのノード上で起動が行われていると見なされます。インスタンスが開始されたノードを判定するには、iris.ids ファイルを調べます。

InterSystems IRIS の起動が続行されます。

InterSystems IRIS の管理

sysmgr グループ内のユーザ ID を持つユーザは、シェルから iris を実行できます (“InterSystems IRIS 複数インスタンスの使用法” の章で "InterSystems IRIS インスタンスの制御" を参照)。このコマンドは、install-dir/bin ディレクトリの InterSystems IRIS の実行可能ファイルやスクリプトを呼び出します。以下のセクションでは、InterSystems IRIS インスタンスでこれらの管理タスクを実行する方法について説明します。

Important:

インストールの所有者は、該当インスタンスの開始および停止、システム管理の実行、該当インスタンスの診断プログラムの実行などが可能な、すべての権限を保持します。

インスタンスの所有者であるユーザ ID のみが、すべての診断操作を実行できます。また、そうすることが必要です。これで、作成されたすべてのファイルやリソースは、root ユーザではなくインスタンスの所有者のものとなります (root ユーザ以外はこれらのリソースにアクセスできなくなります)。このため、root ユーザの所有ではないインスタンスに対して、root ユーザが何らかの管理 (インスタンスの開始や停止など) をできないようにすることをお勧めします。root ユーザが管理できるインスタンスは、その root ユーザが所有するもののみとする必要があります。

InterSystems IRIS の開始

InterSystems IRIS を開始するには、システム・レベルでスタートアップ・プロシージャを実行します。このプロシージャは、既定の構成ファイル、または指定した構成ファイルのいずれかを起動します。

Note:

InterSystems IRIS の起動に問題が発生した場合は、"監視ガイド" の "ログ・ファイルの監視" セクションの説明に従って、messages.log ファイルを表示してください。

コンソール・マシンでない場合は、Telnet を実行して、InterSystems IRIS がインストールされているターゲットのマシンに接続します。UNIX® で InterSystems IRIS システムを開始する前に、以下の条件のうち 1 つを満たしている必要があります。

  • スーパーユーザであること

  • root ユーザとしてサイン・インしていること (root 以外のアカウントでログインしているときでも、su (スーパーユーザ) コマンドで root に変更できます)。

  • UNIX® グループ ID が、システムの停止と開始の特権を持つよう InterSystems IRIS のインストールで指定したグループに一致していること。

    インストール時にこれらの特権を指定する方法の詳細は、"インストール・ガイド" の “UNIX® および Linux への InterSystems IRIS のインストール” の章を参照してください。

iris コマンドを使用して InterSystems IRIS を開始します。

iris start <instname>

instname は、開始する InterSystems IRIS インスタンスの名前です。オプションの詳細は、このドキュメントの “InterSystems IRIS 複数インスタンスの使用法” の章の "InterSystems IRIS インスタンスの制御" を参照してください。

sysmgr グループ内のユーザ ID を持つユーザは、シェルから iris start を実行できます。このコマンドにより、現在のノードまたは別のノードでインスタンスが実行されていないことの確認、複数の補助ライト・デーモン (AWD) を含む基本的な InterSystems IRIS デーモンや共有メモリの作成、その他のデーモン (ECP デーモンなど) を作成するスタートアップ・ルーチン (^STU) の実行の後に、ユーザのログインが許可されます。

InterSystems IRIS の実行

ユーザはそのユーザ ID およびグループ ID (この例では anyuser:anygroup) に関係なく、シェルから iris terminal を実行できます (“InterSystems IRIS 複数インスタンスの使用法” の章で "InterSystems IRIS インスタンスの接続" を参照)。これによって install-dir/bin ディレクトリで irisuxsession が実行されます。

InterSystems IRIS を anyuser:irisusr として実行すると、Kerberos ネゴシエーションを含む標準スタートアップ・ロジックが実行され、$USERNAME と一連のログイン・ロールが識別されます。多くの場合、この $USERNAME 値は、iris terminal を呼び出した実際のユーザと関連付けられています。したがって、どのユーザも InterSystems IRIS を実行できますが、InterSystems IRIS でのユーザのアクティビティは、そのユーザに割り当てられたセキュリティ・ロールによって定義され、制限されます。

Caution:

install-dir/bin ディレクトリから InterSystems IRIS の実行可能ファイルを直接呼び出す方法で、InterSystems IRIS を開始しないでください

InterSystems IRIS 実行可能ファイルは、それ自体は setgid 実行可能ファイルではありません。InterSystems IRIS を開始するユーザの代わりにグループを適切に設定するのは、iris terminal ラッパの役割です。

iris terminal に加え、/usr/bin ディレクトリの irisdb 実行可能ファイルを使用して InterSystems IRIS を実行することもできます。このコマンドは、iris terminal <default-instance> を呼び出し、権限を設定して、既定の InterSystems IRIS インスタンスのターミナルを開きます。irisdb 実行可能ファイルを作成するには、iris default <instname> 関数を実行することにより、既定のインスタンスを指定します。

Note:

macOS 10.11 以降では、irisiris terminal/usr/bin からのリンクを使用して、/usr/local/bin に格納されます。

InterSystems IRIS の停止

通常は、InterSystems IRIS システムを実行したままの状態にしておきます。しかし、オペレーティング・システムに再起動が必要であれば、システムをシャットダウンする前に InterSystems IRIS を停止します。バックアップやデータベースの修復ユーティリティなど InterSystems IRIS のメンテナンス・タスクの場合は、InterSystems IRIS を停止させる必要はありません。

UNIX® で InterSystems IRIS を停止するには、InterSystems IRIS の開始時と同じ手順を行います。以下の条件のうち 1 つを満たしている必要があります。

  • スーパーユーザであること

  • ルート・ユーザとしてサイン・インしていること (root 以外のアカウントでログインしているときでも、su (スーパーユーザ) コマンドで root に変更できます)。

  • UNIX® グループ ID が、システムの停止と開始の特権を持つよう InterSystems IRIS のインストールで指定したグループに一致していること。

コマンド行から InterSystems IRIS を停止するには以下の作業を行います。

  1. iris stop コマンドを使用します。

    iris stop <instname>
    
    

    instname は、停止する InterSystems IRIS インスタンスの名前です (iris オプションの詳細は、このドキュメントの “InterSystems IRIS 複数インスタンスの使用法” の章の "InterSystems IRIS インスタンスの制御" を参照してください)。

    Caution:

    iris force コマンドで InterSystems IRIS を停止することができますが、データが失われることがあるので、これを行うときは注意が必要です。

  2. このプロシージャは InterSystems IRIS SHUTDOWN ユーティリティを呼び出し、状態レポートを表示します。レポートで起動中のプロセスをチェックし、次のステップが必要かどうかを決定します。

  3. 必要な場合は、システム上のすべてのユーザにメッセージを送信します。

    Do you want to broadcast a message to anyone? No=> Yes
    Send a message to other terminals. Message => Please sign off
    Terminal => /dev/tty/06
    Terminal =>
    Message =>
    
    
  4. Message プロンプトで Enter キーを押すまで、メッセージの送信後も他のメッセージを送信できます。

  5. 他のシステムの状態を参照するかどうかを尋ねられた場合、参照するには「Yes」と入力し、参照する必要がない場合は Enter キーを押します。

  6. Yes」と応答すると、システムの状態が再度表示され、動作中のターミナルを確認できます。

  7. 停止したいときは「Yes」と入力します。「No」と応答すると、シャットダウン・プロシージャを中止し、InterSystems IRIS は起動されたままになります。

Note:

UNIX® プラットフォームでは、停止、再起動、または強制終了された InterSystems IRIS インスタンスは、すべてのプロセスが共有メモリからアタッチ解除されるまで最大 30 秒待機します。30 秒後にこのインスタンスは閉じます。インスタンスが閉じた後でも共有メモリにアタッチされているプロセスがまだある場合、このインスタンスの再起動は失敗します。

FeedbackOpens in a new tab