管理の手引き


データベースの作成に関する詳細

データベースを作成する前に、以下の作業を考慮または実行する必要があります。

論理および物理データベースの特性の設計

データベースを作成する前に、論理的または物理的なデータベースの設計を決定しなければなりません。 論理データベースの設計についての詳細は、第 7 章, 論理データベースの設計を参照してください。 物理データベースの設計についての詳細は、第 8 章, 物理データベースの設計を参照してください。

インスタンスの作成

インスタンスとは、データベースをカタログし、 構成パラメーターを設定するための、論理データベース・マネージャー環境です。 インスタンスは、必要に応じて複数作成できます。 複数インスタンスを使用すると、次のことを行えます。

注意点として、複数インスタンスには以下のように多少の難点があります。

インスタンス・ディレクトリーには、 データベース・インスタンスに関連するすべての情報が保管されます。 インスタンス・ディレクトリーの位置を作成後に変更することはできません。 インスタンス・ディレクトリーの内容は、以下のとおりです。

UNIX オペレーティング・システムでは、 インスタンス・ディレクトリーは INSTHOME/sqllib ディレクトリーにあります。 ただし、INSTHOME は、インスタンス所有者のホーム・ディレクトリーです。

区分データベース・システムにおけるインスタンス・ディレクトリーは、 インスタンスに属するすべてのデータベース区画サーバー間で共用されます。 したがって、インスタンス・ディレクトリーは、 インスタンス内のすべてのマシンがアクセスできるネットワーク共用ドライブ上に作成しなければなりません。

インストール手順の一部として、"DB2"という DB2 の初期インスタンスを作成します。 UNIX では、 命名規則の指針にはずれない範囲で初期インスタンスの名前を付けることができます。 インスタンス名は、ディレクトリー構造を設定するために使用します。

このインスタンスをすぐに使えるようにするために、インストール中に次の設定がなされます。

UNIX では、命名規則の指針にはずれない範囲で省略時の名前を付けることができます。

これらの設定により、"DB2"が省略時インスタンスとして確立されます。 省略時に使用されるインスタンスを変更することはできますが、 最初に、追加インスタンスを作成する必要があります。

DB2 を使用する前に、各ユーザーのデータベース環境を更新して、 インスタンスにアクセスし、DB2 プログラムを実行できるようにします。 このことはすべてのユーザー (管理ユーザーも含む) に当てはまります。

UNIX オペレーティング・システムでは、 データベース環境の設定に役立つサンプル・スクリプト・ファイルが提供されます。 サンプル・ファイルは、Bourne または Korn シェルの場合は db2profile、 C シェルの場合は db2cshrc です。 これらのスクリプトは、 インスタンス所有者のホーム・ディレクトリー下の sqllib サブディレクトリーに配置されます。 インスタンス所有者またはインスタンスの SYSADM グループに属するユーザーはだれでも、 インスタンスの全ユーザーのスクリプトをカスタマイズできます。 また、スクリプトをユーザーごとにコピーして、カスタマイズすることもできます。

サンプル・スクリプトには、次の目的を持つステートメントが入っています。

DB2 環境の自動設定

注:以下の説明は、UNIX オペレーティング・システム環境にのみ適用されます。

省略時のスクリプトは、現行セッションの期間中に限ってユーザー環境に影響を与えます。 .profile ファイルを変更すれば、 ユーザーが Bourne または Korn シェルを使ってログオンするときに、 db2profile スクリプトを自動的に実行できようになります。 C シェルのユーザーであれば、 .login ファイルを変更して db2shrc スクリプト・ファイルを実行できるようになります。

.profile または .login スクリプト・ファイルに、 以下に示すいずれかのステートメントを追加します。

DB2 環境の手動設定

注:以下の説明は、UNIX オペレーティング・システム環境にのみ適用されます。

使用したいインスタンスを選択するには、 コマンド・プロンプトで次のいずれかのステートメントを入力します。 ピリオド (.) とスペースは必須です。

同時に複数のインスタンスを処理したい場合は、 使用する各インスタンスのスクリプトを別々のウィンドウで実行します。 たとえば、test および prod という 2 つのインスタンスがあり、 そのホーム・ディレクトリーが /u/test および /u/prod であるとします。

ウィンドウ 1 では、次のようにします。

ウィンドウ 2 では、次のようにします。

ウィンドウ 1 は test インスタンスを処理するため、 ウィンドウ 2 は prod インスタンスを処理するために使用します。
注:which db2 コマンドを入力し、 検索パスが正確に設定されていることを確かめます。 このコマンドを実行すると、DB2 CLP 実行可能モジュールの絶対パスが戻されます。 その位置が、インスタンスの sqllib ディレクトリーにあることを確かめてください。

1 つのシステム上の複数インスタンス

1 つのシステム上で複数のインスタンスを持つことが可能です。 しかし、一度に 1 つの DB2 インスタンス内の作業だけが可能です。

インスタンス所有者およびシステム管理 (SYSADM) グループであるグループは、 個々のインスタンスと関連付けられます。 インスタンス所有者および SYSADM グループは、 インスタンスの作成プロセス中に割り当てられます。 1 つのインスタンスに限って 1 つのユーザー ID またはユーザー名を使用することができます。 そのユーザー ID またはユーザー名は、インスタンス所有者とも呼ばれます。

各インスタンス所有者は固有のホーム・ディレクトリーを持つ必要があります。 インスタンスの実行に必要なファイルすべては、 インスタンス所有者のユーザー ID またはユーザー名のホーム・ディレクトリーに作成されます。 インスタンス所有者のユーザー ID またはユーザー名をシステムから除去する必要が生じた場合、 インスタンスに関連付けられたファイルと、 そのインスタンスに保管されたデータへのアクセスを失うおそれがあります。 このため、インスタンス所有者のユーザー ID またはユーザー名は、 DB2 の実行だけのために使用することをお勧めします。

インスタンス所有者の 1 次グループも重要です。 この 1 次グループは自動的にインスタンスのシステム管理グループになり、 インスタンスに対する SYSADM 権限を取得します。 インスタンス所有者の 1 次グループのメンバーである他のユーザー ID またはユーザー名も、 このレベルの権限を取得します。 この理由から、インスタンス所有者のユーザー ID またはユーザー名は、 インスタンスの管理用に確保した 1 次グループに割り当てたいと思うかもしれません。 (また、1 次グループは必ずインスタンス所有者のユーザー ID またはユーザー名に割り当てるようにします。 割り当てなければ、システム省略時値の 1 次グループが使用されます。)

インスタンスのシステム管理グループにしたいグループがすでにある場合は、 インスタンス所有者ユーザー ID またはユーザー名の作成時に、 そのグループを 1 次グループとして割り当てるだけで済みます。 インスタンスに対する管理権限を他のユーザーに付与するには、 システム管理グループとして割り当てられたグループに該当するユーザーを追加します。

インスタンス間で SYSADM 権限を分離するには、 インスタンス所有者ユーザー ID またはユーザー名ごとに異なる 1 次グループを使用します。 ただし、複数インスタンスで共通の SYSADM 権限を持つことにした場合は、 複数インスタンスに対して同じ 1 次グループを使用することができます。

インスタンスの追加

OS/2 での管理権限を持っている場合、 または Windows NT 上の管理グループに属している場合、 追加の DB2 インスタンスを追加できます。 インスタンスの追加先のマシンは、 インスタンス所有マシン (ノード 0) になります。 インスタンスは必ず、管理サーバーが常駐するマシン上で追加してください。

別のインスタンスを追加するには、以下のステップを実行します。

  1. 管理権限を持っているか、 またはローカル管理者グループに属するユーザー ID またはユーザー名でログオンします。
  2. インスタンスを追加するには、次の方法のいずれかを使用してください。

    コントロール・センターを使用するには、以下のようにします。


    1. オブジェクト・ツリーを順に展開し、 「インスタンス (Instances)」フォルダーを表示します。
    2. インスタンスのフォルダーを右クリックして、 ポップアップ・メニューから「追加 (Add)」を選択します。
    3. 情報をすべて入力し、 「適用 (Apply)」をクリックします。

    コマンド行を使用してインスタンスを追加するには、以下のように入力します。

       db2icrt <instance_name>
    
  3. 管理サーバーを作成します。

db2icrt コマンドを使用して別の DB2 インスタンスを追加するときには、 インスタンス所有者のログイン名を提供する必要があり、 任意選択で、インスタンスの認証タイプを指定します。 認証タイプは、そのインスタンスの下で作成されたすべてのデータベースに適用されます。 認証タイプとは、ユーザーの認証が行われる場所を示すものです。 認証についての詳細は、第 16 章, データベース・アクセスの制御を参照してください。
注:db2iupdt コマンドを使って、 インスタンス構成を更新することができます。

インスタンス・ディレクトリーの位置は、 DB2INSTPROF 環境変数を使って DB2PATH から変更することができます。 その場合は、インスタンス・ディレクトリーの書き込みアクセスが必要です。 DB2PATH 以外のパスにディレクトリーを作成したければ、 db2icrt コマンドを入力する前に、 DB2INSTPROF を設定しなければなりません。

DB2 エンタープライズ拡張エディション上でインスタンスを追加する際の詳細

DB2 ユニバーサル・データベース エンタープライズ拡張エディションで作業する場合は、 区分データベース・システムである新規インスタンスを追加することを宣言する必要もあります。 この宣言は、コマンド行で -s eee を使って行います。

UNIX 上でインスタンスを作成する際の詳細

UNIX オペレーティング・システムで作業する場合、 db2icrt コマンドには、以下の任意指定パラメーターがあります。

次に例を示します。

DB2 クライアント・インスタンスは、 ワークステーションから他のデータベース・サーバーへ接続したい場合に作成します。 作成すると、そのワークステーションにローカル・データベースは必要なくなります。

Windows NT 上でインスタンスを作成する際の詳細

Windows NT オペレーティング・システムで作業する場合、 db2icrt コマンドには、以下の任意指定パラメーターがあります。

たとえば、DB2 (Windows NT 版) エンタープライズ拡張エディションでは、 以下の例を利用できます。

   db2icrt inst1 -s eee
      /p:\\machineA\db2mpp
      /u:yourname,yourpwd /r:9010,9015
注:db2icrt コマンドにより、 インスタンスの作成に使用するユーザー名に以下の権利が与えられます。
  • オペレーティング・システムの一部として活動する。
  • トークン・オブジェクトを作成する。
  • 割り当て量を増やす。
  • サービスとしてログオンする。
  • 処理レベル・トークンを置換する。

インスタンスは、共用ドライブにアクセスし、ユーザー・アカウントを認証し、 DB2 を Windows NT サービスとして実行するために、これらのユーザー権を必要とします。

インスタンスのリスト

コントロール・センターを使用して、 システムで使用可能なインスタンスすべてをリストするには、次のようにします。


  1. オブジェクト・ツリーを順に展開し、 「インスタンス (Instances)」フォルダーを表示します。
  2. インスタンスのフォルダーを右クリックして、 ポップアップ・メニューから「追加 (Add)」を選択します。
  3. "「データベースの追加 (Add Database)」"ウィンドウで、 「最新表示 (Refresh)」をクリックします。
  4. ドロップダウン矢印をクリックして、 リモート・データベース・インスタンスのリストを表示します。
  5. 「取消 (Cancel)」をクリックして、 ウィンドウを終了します。

コマンド行を使用して、 システムで使用可能なインスタンスすべてをリストするには、次のようにします。

   db2ilist

現行セッションに適用されるインスタンスを判別するには、次のように入力します。

   set db2instance

注:UNIX オペレーティング・システムでは、次のように入力します。
   db2 get instance

現行インスタンスの設定

インスタンスのデータベース・マネージャーを開始または停止するためのコマンドを実行すると、 DB2 はそのコマンドを現行インスタンスに適用します。 DB2 は以下のように現行インスタンスを判別します。

自動始動インスタンス

UNIX オペレーティング・システムで、 各システムの再始動後にインスタンスを自動開始できるようにするには、 次のコマンドを入力します。

   db2iauto -on InstName

InstName はインスタンスのログイン名です。

UNIX オペレーティング・システムで、 各システムの再始動後にインスタンスを自動開始できないようにするには、 次のコマンドを入力します。

   db2iauto -off InstName

InstName はインスタンスのログイン名です。

複数インスタンスの並列実行

DB2 インスタンスは同じレベルのコードを使用している限り、 複数のインスタンスを開始できます。

コントロール・センターを使用して複数インスタンスを並列実行するには、 以下のようにします。


  1. オブジェクト・ツリーを順に展開し、 「データベース (Databases)」フォルダーを表示します。
  2. インスタンスを右クリックして、 ポップアップ・メニューから「開始 (Start)」を選択します。
  3. ステップ 2 を繰り返し実行し、 並行実行したいインスタンスをすべて開始します。

コマンド行を使用して複数インスタンスを並列実行するには、 以下のようにします。

ライセンス管理

DB2 製品のライセンス管理は主に、 製品のオンライン・インターフェースのコントロール・センター内でライセンス・センターを使って行います。 ライセンス・センターでは、インストールした個々の製品に関して、 ライセンス情報、統計、登録済みユーザー、および現行ユーザーを調べることができます。

環境変数およびプロファイル・レジストリーの確立

環境変数およびレジストリー変数は、データベース環境を制御します。

DB2 プロファイル・レジストリーを導入する前に、 (たとえば) Windows または OS/2 ワークステーションの環境変数を変更するには、 環境変数を変更してリブートする必要がありました。 現在、環境は、いくつかの例外はありますが、 DB2 プロファイル・レジストリーに保管されているレジストリー変数によって制御されます。 特定インスタンスのシステム管理 (SYSADM) 権限を持つユーザーは、 そのインスタンスのレジストリー値を更新することができます。 リブートせずにレジストリー変数を更新するには、 db2set コマンドを使用します。 この情報は、即時にプロファイル・レジストリーの中に保管されます。 DB2 レジストリーは、 変更を行った後に開始した DB2 サーバー・インスタンスと DB2 アプリケーションに更新情報を適用します。

レジストリーを更新する場合、 現在実行中の DB2 アプリケーションまたはユーザーに影響はありません。 更新後に開始されたアプリケーションは新しい値を使用します。
注:DB2 環境変数 DB2INSTANCEDB2NODEDB2PATH、および DB2INSTPROF は、 オペレーティング・システムにもよりますが、 DB2 プロファイル・レジストリーに保管されない場合があります。 これらの環境変数を更新するためには、 set コマンドを使用し、 システムをリブートしなければなりません。 UNIX プラットフォームでは、 set コマンドの代わりに export コマンドを使用でき、 システムをリブートする必要はありません。

プロファイル・レジストリーを使用することによって、 環境変数の中央制御が可能になります。 付録 D, DB2 登録変数と環境変数には、環境変数とレジストリー変数が多数リストされています。 さまざまなレベルのサポートが、 さまざまな環境プロファイルを通して提供されるようになっています。 環境変数のリモートでの管理も、DB2 管理サーバーを使用すれば可能です。

以下の 4 つのプロファイル・レジストリーがあります。

ユーザーは、db2set コマンドを使用してセッション環境変数の設定値を変更することによって、 ユーザーのセッションに対する DB2 インスタンス・プロファイル・レジストリー環境変数の設定値をオーバーライドすることができます。

DB2 は、レジストリー値と環境変数を検査し、 それらを以下の順序で解決することによって、操作環境を構成します。

  1. set コマンドを使用して設定された環境変数。 (あるいは、 UNIX プラットフォームでは export コマンド。)
  2. インスタンス・ノード・レベル・プロファイルを使用して設定されたレジストリー値 (以下に示すノード番号を使用した db2set -i コマンドを使用)。
  3. db2set コマンドを使用して設定されたレジストリー値。
  4. インスタンス・プロファイルを使用して設定されたレジストリー値 (以下に示す db2set -i コマンドを使用)。
  5. グローバル・プロファイルを使用して設定されたレジストリー値 (以下に示す db2set -g コマンドを使用)。

db2set コマンドの使用

db2set コマンドは、 レジストリー変数 (および環境変数) のローカルでの宣言をサポートします。

コマンドに対するヘルプ情報を表示するには、以下を使用します。

   db2set ?

サポートされるすべてのレジストリー変数の完全なセットをリストするには、以下を使用します。

   db2set -lr

このセッションについて、現在定義されているすべてのレジストリー変数をリストするには、 以下を使用します。

   db2set

プロファイル・レジストリーに定義されているすべてのレジストリー変数をリストするには、 以下を使用します。

   db2set -all

レジストリー変数の現在のセッション値を表示するには、以下を使用します。

   db2set registry_variable_name

全レベルのレジストリー変数の値を表示するには、以下を使用します。

   db2set registry_variable_name -all

指定レベルの変数値を削除するには、同じコマンド構文を使って変数を設定できますが、 変数値には何も指定しません。 たとえば、ノード・レベルの変数設定値を削除するには、次のように入力します。

   db2set registry_variable_name= -i instance_name
 node_number

変数値を削除してその使用を制限する場合、 その値が上位レベルで定義されていれば、次のように入力します。

   db2set registry_variable_name= -null instance_name

このコマンドを使用すると、指定するパラメーターの設定値が削除され、 上位レベルのプロファイルでこの変数の値 (この場合は DB2 グローバル・レベル・プロファイル) を変更できなくなります。 ただし、 指定する変数を下位レベルのプロファイル (この場合は DB2 ノード・レベル・プロファイル) で引き続き設定することはできます。

このセッションについてのレジストリー変数を変更するには、以下を使用します。

   db2set registry_variable_name=new_value

インスタンス内のすべてのデータベースについて、レジストリー変数の省略時値を変更するには、 以下を使用します。

   db2set registry_variable_name=new_value
      -i instance_name

このシステム内のすべてのインスタンス内のレジストリー変数の省略時値を変更するには、 以下を使用します。

   db2set registry_variable_name=new_value -g

レジストリー値をユーザー・レベルで設定するには、以下を使用します。

   db2set -ul

レジストリー値を特定ユーザーのユーザー・レベルで設定するには、以下を使用します。

   db2set -ul user_name

注:

  1. パラメーター "-i"、"-g"、"-ul" は、 同じコマンド内では同時に使用できません。

  2. 省略時値として常にグローバル・レベル・プロファイルに設定されるパラメーターもあります。 そのようなパラメーターをインスタンスまたはノード・レベル・プロファイルで設定することはできません。 たとえば、db2system および db2instdef があります。

  3. UNIX では、インスタンスのレジストリー値を変更するためには、 システム管理 (SYSADM) 権限を持っていなければなりません。 グローバル・レベル・レジストリー中のパラメーターを変更できるのは、 root 権限を持つユーザーだけです。

LDAP 環境で実行している場合、 ある DB2 レジストリー変数値については、LDAP 内で設定することができます (つまり、 その効力範囲が、 ディレクトリー区画または Windows NT ドメインに属するすべてのマシンとすべてのユーザーに渡る、 グローバルなものとなります)。 現時点で、LDAP グローバル・レベルで設定できる DB2 レジストリー変数は、 DB2LDAP_SEARCH_SCOPE だけです。

この変数を LDAP グローバル・レベルで設定するには、 db2set コマンドの -gl オプションを使用してください。
注:このオプションは -g オプションとは違います。 -g オプションは、 マシン・グローバル・レベルで DB2 レジストリー変数を設定するのに使用するオプションです。 それに対し、-gl は LDAP グローバル・レベルに固有のオプションです。 また、LDAP 内での DB2 レジストリー変数の設定をサポートするのは、 Windows プラットフォームだけです。

LDAP でグローバル・レベルの検索有効範囲値を設定するには、以下を使用します。

   db2set -gl db2ldap_search_scope = value

value には "local"、"domain"、または "global" を指定できます。

このインスタンス内の特定のノードのレジストリー変数の省略時値を変更するには、 以下を使用します。

   db2set registry_variable_name=new_value
      -i instance_name node_number

1 つのインスタンスのすべてのレジストリー変数をリセットして、 グローバル・プロファイル・レジストリーの中の省略時値に戻すには、 以下を使用します。

   db2set -r registry_variable_name

1 つのインスタンス内の 1 つのノードのすべてのレジストリー変数をリセットして、 グローバル・プロファイル・レジストリーの中の省略時値に戻すには、 以下を使用します。

   db2set -r registry_variable_name node_number

OS/2 上の環境変数の設定

DB2 固有のレジストリー値はすべて、 DB2 プロファイル・レジストリーで定義することをぜひお勧めします。 DB2 変数がレジストリー以外で設定されていれば、 その変数をリモート管理することはできません。 変数値を有効にするには、ワークステーションをリブートしなければなりません。

OS/2 上では、DB2PATH および DB2INSTPROF とは別に、 config.sys 内に環境変数を定義してはなりません。 すべての変数は、db2set コマンドを使用してプロファイル・レジストリーの中に定義する必要があります (実際の環境変数として残っている値を除きます)。

DB2INSTANCE も実際の環境変数として残りますが、 DB2INSTDEF レジストリー変数を使用する場合は必要ありません。 このレジストリー変数は、 DB2INSTANCE が設定されない場合に使用される省略時のインスタンス名を定義します。

DB2INSTANCE および DB2PATH は DB2 をインストールするときに設定されます。 DB2INSTPROF はインストール後に設定できます。 環境変数 DB2PATH は設定する必要があります。 この環境変数はインストール中に設定され、変更すべきではありません。 DB2INSTANCE および DB2INSTPROF 環境変数の設定は任意選択です。

環境変数の設定値を判別するには、次のように入力します。

   set variable

環境変数の設定値を変更するには、次のコマンドを入力します。

   set variable=value

システム環境変数を設定するためには、config.sys ファイルを編集し、 変更を有効にするためにシステムをリブートします。

異なるプロファイル・レジストリーが、以下にしたがって配置されます。

Windows NT および Windows 95 上での環境変数の設定

DB2 固有のレジストリー値はすべて、 DB2 プロファイル・レジストリーで定義することをぜひお勧めします。 DB2 変数がレジストリー以外で設定されていれば、 その変数をリモート管理することはできません。 変数値を有効にするには、ワークステーションをリブートしなければなりません。

Windows 32 ビット・オペレーティング・システムには 1 つのシステム環境変数 DB2INSTANCE があり、 この値はプロファイル・レジストリーの外部でしか設定できません。 ただし、DB2INSTANCE の設定は必須ではありません。 DB2 プロファイル・レジストリー変数 DB2INSTDEF をグローバル・レベル・プロファイルで設定すれば、 DB2INSTANCE が定義されていない場合に使用するインスタンス名を指定することができます。

Windows NT 上の DB2 エンタープライズ拡張エディションには、 2 つのシステム環境変数 DB2INSTANCE および DB2NODE があり、 この値はプロファイル・レジストリーの外部でしか設定できません。 DB2INSTANCE の設定は必須ではありません。 DB2 プロファイル・レジストリー変数 DB2INSTDEF をグローバル・レベル・プロファイルで設定すれば、 DB2INSTANCE が定義されていない場合に使用するインスタンス名を指定することができます。

DB2NODE 環境変数は、 マシン内のターゲット論理ノードへの要求を経路指定するために使用します。 この環境変数は、DB2 プロファイル・レジストリーの中ではなく、 アプリケーションまたはコマンドが発行されるセッションで設定しなければなりません。 この変数を指定しない場合、ターゲット論理ノードは省略時値として、 マシン上のポートをゼロ (0) に定義された論理ノードに設定されます。

環境変数の設定値を判別するためには、echo コマンドを使用します。 たとえば、DB2PATH 環境変数の値を検査するには、以下のように入力します。

   echo %db2path%

システム環境変数を設定するには、以下のことを行います。

Windows 95 および Windows 98 の場合: autoexec.bat ファイルを編集し、変更を有効にするためにシステムをリブートします。

Windows NT 4.x の場合: 以下のように、 DB2 環境変数 DB2INSTANCEDB2PATHDB2INSTPROF を設定することができます。

注:環境変数 DB2INSTANCE もセッション (プロセス) レベルで設定できます。 たとえば、TEST という 2 番目の DB2 インスタンスを開始したければ、 コマンド・ウィンドウで以下のコマンドを発行します。

   set db2instance=TEST
   db2start

プロファイル・レジストリーは、以下のように配置されます。

DB2 UDB には、 リモート・マシン上のインスタンス・レベルの DB2 UDB レジストリー変数にアクセスする機能があります。 現在、DB2 UDB レジストリー変数は、マシンまたはグローバル・レベル、 インスタンス・レベル、およびノード・レベルという 3 つの異なるレベルに保管されています。 インスタンス・レベル (ノード・レベルも含む) に保管されているレジストリー変数は、 DB2REMOTEPREG を使用して別のマシンにリダイレクトすることができます。 DB2REMOTEPREG が設定されると、DB2 UDB は、 DB2REMOTEPREG が指すマシンから DB2 UDB レジストリー変数にアクセスします。 たとえば、次のとおりです。

   db2set DB2REMOTEPREG=rmtwkstn

ただし、rmtwkstn はリモート・ワークステーション名です。
注:すべての DB2 インスタンス・プロファイルとインスタンス・リストが、 指定されたリモート・マシン名上に置かれるので、 このオプションの設定には注意が必要です。

この機能は、レジストリーが含まれる同じマシン上のリモート LAN 装置を指すために、 DBINSTPROF の設定と組み合わせて使用することができます。

UNIX システム上の環境変数の設定

DB2 固有のレジストリー値はすべて、 DB2 プロファイル・レジストリーで定義することをぜひお勧めします。 DB2 変数がレジストリー以外で設定されていれば、 その変数をリモート管理することはできません。

UNIX オペレーティング・システムでは、 システム環境変数 DB2INSTANCE を設定しなければなりません。

db2profile (Korn シェルの場合) および db2cshrc (Bourne シェルまたは C シェルの場合) というスクリプトが、 データベース環境のセットアップを援助するために例として提供されています。 これらのファイルは insthome/sqllib の中にあります (ただし、 insthome はインスタンス所有者のホーム・ディレクトリーです)。

これらのスクリプトには、以下のためのステートメントが入っています。

注:PATH および DB2INSTANCE を除いて、 DB2 でサポートされる変数は DB2 プロファイル・レジストリーで設定しなければなりません。 DB2 で設定されない変数を設定するには、 スクリプト・ファイル db2profile および db2cshrc で定義する必要があります。

インスタンス所有者または SYSADM ユーザーは、 インスタンスのすべてのユーザーのためにこれらのスクリプトをカスタマイズすることができます。 あるいは、ユーザーがスクリプトをコピーしてカスタマイズした後、 スクリプトを直接呼び出すか、 または自分の .profile または .login ファイルに追加することができます。

現行セッションについての環境変数を変更するには、以下のようなコマンドを出します。

DB2 プロファイル・レジストリーが正しく管理されるようにするためには、 UNIX オペレーティング・システム上で、 以下のファイル所有権規則に従わなければなりません。 (DB2 管理サーバー (DAS) については、DB2 管理サーバー (DAS)を参照してください。)

DB2 管理サーバー (DAS)

DB2 管理サーバー (DAS) は、 他の DB2 サーバー上での管理作業を支援するためだけに使用される DB2 管理制御点です。 クライアント構成アシスタントまたはコントロール・センターを使用したい場合は、 DAS を実行しておく必要があります。 DAS は、 以下の管理タスクを処理するときにコントロール・センターおよびクライアント構成アシスタントを援助します。

1 つのマシン上には 1 つの DAS しか持つことができません。 オペレーティング・システムのブート時に、 DAS を開始するために DAS の構成がインストール中に行われます。

DAS は、ホスト・システムでリモート・タスクを実行するために、 コントロール・センターまたはクライアント構成アシスタントからのクライアント要求の代わりに使用されます。 DAS にアクセスするには、SYSADM 権限のあるクライアントが必要です。 これらのクライアントのすべてが、 SYSADM_GROUP 構成パラメーターを構成するものとなっていても構いません。

これらの要求されたタスクを実行するのに、特定の権限が必要となる場合があります。 DAS は、特定のユーザーの識別子の下で実行されます。 ユーザーに授与される特権は、 管理者が実行するタスクやオペレーションに関連したコマンドだけに限られていなければなりません。 一般的に、必要なタスクまたはオペレーションには次のものがあります。

DAS の通信の設定についての詳細は、 使用しているプラットフォーム用の概説およびインストール を参照してください。

DAS の作成

一般にセットアップ・プログラムは、 DB2 インストール中にインスタンス所有マシン上に DAS を作成します。 しかし、セットアップ・プログラムが DAS の作成に失敗した場合は、 DAS を手動で作成することができます。

インストール処理の間に DAS に関連して生じることの概要については、 以下のことを考慮してください。

管理サーバーを作成した後、 それを使用してディレクトリー構造およびアクセス許可を確立する必要があります。

DAS の開始と停止

DAS を手動で開始または停止するには、最初に、 ローカル管理者権限を持つアカウントまたはユーザー ID を使ってマシンにログオンしなければなりません。

DB2 (OS/2 版) または DB2 (Windows NT 版) で作業する場合は、 以下のことを行う必要があります。

注:Windows NT では、上記の両方の場合に、 これらのコマンドを使用する人は SYSADM、SYSCTRL、または SYSMAINT 権限を持っている必要があります。

DB2 (任意の UNIX オペレーティング・システム用) で作業する場合は、 以下のことを行う必要があります。

注:UNIX のもとでは、上記の両方の場合に、これらのコマンドを使用する人は、 DAS 所有者の許可 ID を使用してログオンされていなければなりません。

DAS のリスト

マシン上の DAS インスタンスの名前を取得するには、 次のように入力します。

   db2admin

このコマンドは、DAS の開始と停止、 新しいユーザーとパスワードの作成、DAS インスタンスの除去、 DAS インスタンスに関連したユーザー・アカウントの確立や修正にも使用します。

DAS の構成

DAS に関係するこれらの管理構成パラメーターの現行値を調べるには、 以下を入力します。

   db2 get admin cfg

このコマンドを実行すると、製品のインストール中に省略時値として与えられた現行値、 または構成パラメーターを以前構成したときに与えられた現行値が表示されます。

DAS に関係するデータベース・マネージャー構成ファイルの中の個々の項目を更新するには、 以下を入力します。

   db2 update admin cfg using ...

どのデータベース・マネージャー構成パラメーターを変更できるかについての詳細は、コマンド解説書 を参照してください。

構成パラメーターを推奨されるデータベース・マネージャー省略時値にリセットするには、 以下を入力します。

   db2 reset admin cfg

データベース・マネージャー構成ファイルに対する変更は、 それらがメモリーの中にロードされた後 (つまり、 db2admin stop の後に db2admin start が続くとき) にのみ有効になります。

DAS の通信プロトコルをセットアップするには、 使用しているプラットフォーム用の概説およびインストール を参照してください。

DAS についての機密保護の考慮事項

最初に、ローカル管理者権限を持つアカウントまたはユーザー ID を使ってマシンにログオンしなければなりません。
注:Windows NT では、 ログオン・アカウント用に設定されない必須アクセス権があるので、 「コントロール パネル」「サービス」ユーティリティーを使って DAS 用のログオン・アカウントを変更しないでください。 DB2 管理サーバー (DAS) 用のログオン・アカウントを設定または変更する場合は必ず、 db2admin コマンドを使用します。

DAS を作成したら、次のように db2admin コマンドを使って、 ログオン・アカウントを設定または変更できます。

   db2admin setid username password

ここで、usernamepassword は、 ローカル管理者権限を持つアカウントのユーザー名とパスワードです。

環境内のサーバーのそれぞれで、 ユーザー ID またはユーザー名が SYSADM 権限を持つことが推奨されます。 こうすれば、必要に応じて、他のインスタンスを開始または停止することができます。

DAS の更新

UNIX オペレーティング・システムでは、 DB2 をプログラム一時修正 (PTF) またはコード・パッチによって更新する場合、 すべての DB2 管理サーバー (DAS) とすべての既存インスタンスを更新する必要があります。 DAS を更新するには、 インストールした DB2 バージョンとリリースに固有のサブディレクトリー下の instance サブディレクトリーにある dasiupdt コマンドを使用します。

最初に、"root"として (UNIX の場合)、 またはローカル管理者権限を持つアカウントかユーザー ID を使って、 マシンにログオンしなければなりません。

コマンドは、次のように使用します。

   dasiupdt InstName

InstName はインスタンス所有者のログイン名です。 このコマンドには次のような任意指定パラメーターがあり、 InstName の前に配置してスペースで区切ります。

DAS の除去

最初に、"root"として (UNIX の場合)、 またはローカル管理者権限を持つアカウントかユーザー ID を使って、 マシンにログオンしなければなりません。

DAS を除去するには、以下のようにします。

EEE システムを使用した DAS のセットアップ

以下では、コントロール・センターを使用して、 DB2 EEE サーバー (Solaris、NT、Sequent、HP-UX、 および AIX) をリモート管理用に構成するのに必要なステップについて説明します。

インストール中、 セットアップ・プログラムはインスタンス所有マシン上に単一の DAS を作成します。 他のマシン上に追加の DAS を作成して、 コントロール・センターまたはクライアント構成アシスタントから、 他の調整プログラム・ノードにアクセスすることもできます。 そうすれば、調整プログラム・ノードとして作業する場合のオーバーヘッドを、 インスタンス内の複数ノードに分散できます。

調整プログラム機能を分散するには、次のようにします。

  1. 区分データベース・システム内で選択した追加マシンに新しい DAS を作成します。
  2. コントロール・センターまたはクライアント構成アシスタント内で個々の DAS を別個のシステムとしてカタログ化します。
  3. 個々の新しいシステム下の同じインスタンスをカタログ化し、 その都度、DAS をカタログ化するために使用した同じマシン名を指定します。

構成には 2 つの局面があります。 つまり、DB2 管理サーバー (DAS) で必要なことと、 ターゲットである管理される DB2 インスタンスで推奨されていることです。 以下の 3 つのセクションのうち、 2 つの構成トピックの説明にそれぞれ 1 つのセクションが割り振られています。 2 つの構成トピックの説明の前に、前提となる環境について説明しているセクションがあります。

環境の例

製品 / バージョン:
DB2 UDB EEE V7.1

インストール・パス:
install_path

TCP サービス・ファイル:
tcp_services_file

DB2 インスタンス:

名前:
db2inst

所有者 ID:
db2inst

インスタンス・パス:
instance_path

ノード:
3 つのノード、db2nodes.cfg:

DB 名:
db2instDB

DAS:

名前:
db2as

所有者 / ユーザー ID:
db2as

インスタンス・パス:
das_path

インストール / 実行ホスト:
hostA

ノード間通信ポート:
16000 (hostA および hostB 用の未使用ポート)
注:上記のフィールドをサイト特有の値で置き換えてください。 たとえば、 次の表にはサポートされているそれぞれの EEE プラットフォーム用のパス名の例が含まれています。

表 24. サポートされている EEE プラットフォーム用のパス名の例
パス DB2 UDB EEE (AIX 版) DB2 UDB EEE (Solaris 版) DB2 UDB EEE (Windows NT 版)
install_path /usr/lpp/<v_r_ID> /opt/IBMdb2/<v_r_ID> C:\sqllib
instance_path /home/db2inst/sqllib /home/db2inst/sqllib C:\profiles\db2inst
das_path /home/db2as/sqllib /home/db2as/sqllib C:\profiles\db2as
tcp_services_file /etc/services /etc/services C:\winnt\system32\ drivers\etc\services

この表で、 <v_r_ID> はプラットフォーム固有のバージョンとリリースの識別子です。 たとえば、DB2 UDB (AIX 版) EEE バージョン 5.2 の場合は、 <v_r_ID>db2_05_00 になります。

DB2 UDB EEE のインストール時に、 セットアップ・プログラムはインスタンス所有マシン上に DAS を作成します。 データベース区画サーバーは DAS と同じマシン上に常駐し、インスタンス用の接続点となります。 つまり、このデータベース区画サーバーは、 コントロール・センターまたはクライアント構成アシスタントからインスタンスに対して発行される要求の調整プログラム・ノードです。

DAS 構成

DAS は、コントロール・センターの代わりに特定のタスクを実行する管理制御点です。 物理的なマシン 1 台につき設けることのできる DAS は多くて 1 つです。 いくつかのマシンで構成される EEE インスタンスの場合は、 コントロール・センターが EEE インスタンスを実行できるよう、 少なくとも 1 つのマシンで DAS を実行している必要があります。 この DAS (db2as) は、 ターゲット DB2 インスタンス (db2inst) の親としてコントロール・センターのナビゲーター・ツリーに存在するシステムを「表して」います。

たとえば、 db2inst は 2 つの物理マシンまたはホストにわたって分散している 3 つのノードから構成されています。 hostA hostB のいずれかで db2das を実行することによって、 最小要件を満たすことができます。

注:

  1. hostA に存在する区画の数は、 hostA で実行できる DAS の数については何の関係もありません。 ホストに複数の論理ノード (MLN) 構成が存在するとしても、 hostA で実行できる db2as のコピーは 1 つだけです。

  2. すべてのホストで DAS ID、db2as を作成する必要はありません。 むしろ、DAS ID は DAS が実行されるホスト上にのみ存在していなければなりません。 また、DAS ID のホーム・ディレクトリーをすべてのホストにマウントする必要もありません。 特にこの例では、ID db2as は hostA に存在していなければならず、hostB では必要ありません。 また、db2as のホーム・ディレクトリーは hostB にマウントされている必要はありません。

DAS とのコントロール・センター通信: サービス・ポート

コントロール・センターは、TCP サービス・ポートを使用して DAS と通信します。 このポートは DB2 UDB 専用として予約されているので、 tcp_services_file に新しいエントリーを挿入する必要はありません。

ノード間管理通信: サービス・ポート

いくつかの管理タスクについて、DAS はすべてのノードとの通信を確立する必要があります。 そうするためには、 インスタンスに参加している各ホストの tcp_services_file に、 名前付き TCP ポートを定義する必要があります。
注:Windows NT EEE は、 TCP ポート・エントリーを tcp_services_file に追加しようとします。

たとえば、db2inst が 2 つのホスト hostA と hostB にわたって定義されています。 環境の例で指定したとおり、ポート 16000 は両方のホストで未使用です。 したがって、 次の行を hostA と hostB の両方の tcp_services_file に挿入する必要があります。

   db2ccmsrv  16000/tcp

db2ccmsrv ポート名が上記のとおりのつづりで存在していなければならず、 選択された同じポート番号がすべてのホストで使用される必要があります。

ノード間管理通信: UNIX DB2 EEE サーバー

hostA と hostB 上で TCP ポート行を tcp_services_file に挿入すると、 そのインスタンスに参加しているすべてのホストで、 管理 listener 処理またはデーモンである db2cclst を開始する必要があります。 これは、コマンド行から手動で行うこともできますし、 あるいはシステムがブートするたびに db2cclst を自動的に呼び出すようシステムを構成することによっても行えます。

手動:
管理したいインスタンスの ID である db2inst で、 次のコマンドを hostA または hostB のいずれかから呼び出します。

   rah 'install_path/bin/db2cclst'

たとえば、AIX では、このコマンド呼び出しは次のようになります。

   rah '/usr/lpp/<v_r_ID>/bin/db2cclst'

rah コマンドは、 バージョンおよびリリース・サブディレクトリーの instance サブディレクトリーにあります。 バージョンおよびリリース・サブディレクトリーの厳密な名前は、 オペレーティング・システムによって異なります。 instance は、使用するインスタンスのホーム・ディレクトリーです。

この例で、 <v_r_ID> はプラットフォーム固有のバージョンとリリースの識別子です。 たとえば、DB2 UDB (AIX 版) EEE バージョン 5.2 の場合は、 <v_r_ID>db2_05_00 になります。

自動:
スーパーユーザー特権 (ルートなど) の ID で、 次のコマンドを hostA と hostB で実行します。

   mkitab "db2cclst::once:su - db2inst -c install_path /bin/db2cclst"

たとえば、AIX では、このコマンド呼び出しは次のようになります。

   mkitab "db2cclst::once:su - db2inst -c install_path
      /usr/lpp/<v_r_ID>/bin/db2cclst"

いずれかのマシンがブートするたびに、 ユーザー介入なしで db2cclst が呼び出されます。

この表で、 <v_r_ID> はプラットフォーム固有のバージョンとリリースの識別子です。 たとえば、DB2 UDB (AIX 版) EEE バージョン 5.2 の場合は、 <v_r_ID>db2_05_00 になります。

各ホストで listener デーモンがアクティブになっていることを確認するには、 次のコマンドをインスタンス ID である db2inst で呼び出します。

   rah 'ps -ef | grep db2cclst'

db2cclst 処理が各ホストで実行されていない場合は、 各ホストで次の行を /etc/syslog.conf に追加することによって、 詳細な診断情報を得ることができます。

   *.info  /tmp/db2/user.info

ここで、ファイル /tmp/db2/user.info は、 よりふさわしいファイルで置き換えることができます。
注:このファイルは存在していなければならず、変更が加えられた後に、 SYSLOG デーモンが自らの構成ファイルを再読み取りするようになっている必要があります。

   kill -1 <syslogd PID>
ここで、syslogd PID は次のコマンドを実行することによって得ることができます。

   ps -ef | grep syslogd
上記のようにして手動で listener を呼び出した後、 障害の発生したホストの syslog ファイル /tmp/db2/user.info で、 db2cclst によって生成されたエラー・メッセージを見ることができます。

ノード間管理通信: Windows NT DB2 EEE サーバー

DB2 リモート・コマンド・サービス (db2rcmd.exe) は、 ノード間管理通信を自動的に処理します。 万一障害が発生する場合は、Windows NT レジストリーに診断情報が入れられます。

機密保護

インスタンスに対して DAS が管理タスクを実行するためには、 DAS に十分の権限がなければなりません。 特に、DAS はターゲット (管理されるインスタンス) のシステム管理者 (SYSADM) でなければなりません。

DAS には、 DAS が管理するすべての DB2 インスタンスについての同様の権限を授与する必要があります。 候補となるインスタンスは、DAS と同じマシンにインストールされているインスタンスです。 DB2 EEE インスタンスについては、上記の説明に適合するよう、 少なくとも 1 つのデータベース区画サーバーが、DAS と同じマシンに存在している必要があります。

たとえば、UNIX では、db2inst を管理するのに必要な権限を db2as に授与する方法の 1 つは、 db2inst と db2as の 1 次グループを同一にすることです。 あるいは、db2inst の 1 次グループを db2as の 2 次グループとし、 db2as の 1 次グループを db2inst の 2 次グループとするだけでも十分です。 最後に、別のオプションとして、 db2inst の SYSADM_GROUP データベース管理構成パラメーターを db2as の 1 次グループに設定する方法があります。

Windows NT では、 db2as は hostA と hostB のローカル管理者グループのメンバーとなっている必要があります。 db2as ID を作成して両方のホストのローカル管理者グループに追加するというオプションに加えて、 db2as のドメイン ID を作成し、 この ID を各ホストのローカル管理者グループに追加することもできます。

環境

DAS のインストールでは、正常な操作に必要な特定のレジストリー変数を構成しなければなりません。 これらの変数の現行値を確認するには、 DB2 インスタンス ID である db2inst か DAS ID である db2das のいずれかで、 次のコマンドを実行します。

   db2set -g

少なくとも以下のパラメーターは、以下に示す値を指定して定義する必要があります。

   DB2SYSTEM=hostA
   DB2ADMINSERVER=db2as

同様に、コントロール・センターから DAS と通信するためには、 DB2COMM レジストリー変数が"TCPIP"に設定されていなければなりません。 この設定を確認するには、DAS ID である db2as で、次のコマンドを実行して、 グローバル (-g) とインスタンス (-i) レベル (設定する必要があるのは 1 つのみ) をチェックします。

   db2set -all

DB2 インスタンスがコントロール・センターと db2inst の通信を確立できるようにするために、 db2inst ID で次のコマンドを出すことによって、 DB2COMM パラメーターが "TCPIP" に設定されていることを確認します。

   db2set -all

DAS のこのパラメーターを変更する場合は、 変更を有効にするために DAS を再始動させる必要があります。 このパラメーターが DB2 インスタンス用に変更されると、 DB2 インスタンスの再始動も必要になります。 db2inst については、db2stop に続けて db2start を出しますが、 db2admin stopdb2admin start は DAS について出します。

管理サーバー、インスタンス、およびデータベースのディスカバリー

既知ディスカバリー (Known Discovery) を使用すると、 クライアントに認識されているシステム上のインスタンスとデータベースを検出することができます。 また、新しいシステムを追加して、そのインスタンスとデータベースを検出することもできます。 検索ディスカバリー (Search Discovery) を使用すると、 既知ディスカバリーの全機能が提供され、 他の DB2 サーバーのためのローカル・ネットワークを検索できるオプションが追加されます。

サーバーで既知ディスカバリーをサポートするには、 DAS 構成ファイル中の discover パラメーターを KNOWN に設定します。 検索ディスカバリーをサポートするには、このパラメーターを SEARCH に設定します。 サーバーとそのインスタンスおよびデータベースの検出を行わないようにするには、 このパラメーターを DISABLE に設定します。
注:検索ディスカバリーによってクライアントに戻される TCP/IP ホスト名は、 hostname コマンドの入力時に DB2 サーバー・システムによって戻されるのと同じホスト名です。 クライアント側では、このホスト名によってマップされる IP アドレスは、 クライアント・マシンで構成される TCP/IP ドメイン・ネーム・サーバー (DNS) か、 あるいは、DNS が構成されていない場合はクライアントの hosts ファイル中のマッピング・エントリーによって判別されます。 DB2 サーバー・システムに複数のアダプター・カードを構成してある場合は、 TCP/IP が正確なホスト名を戻すようにサーバー上で構成されており、 DNS またはローカル・クライアントの hosts ファイルが任意の IP アドレスにホスト名をマップすることを確かめます。

クライアント側では、discover パラメーターを使ってディスカバリー機能も使用可能にします。 ただし、この場合の discover パラメーターは次のように、 クライアント・インスタンス (またはクライアントとして動作するサーバー) で設定します。

注:discover パラメーターは省略時解釈により、 すべてのクライアントおよびサーバー・インスタンスに SEARCH が設定されます。 discover パラメーターは省略時解釈により、 すべての DB2 管理サーバー (DAS) に SEARCH が設定されます。 ただし、UNIX エンタープライズ拡張エディション環境にインストールされた DAS の場合は、 discover の省略時値として KNOWN が設定されます。

検索ディスカバリーの追加設定

検索ディスカバリーでは、 discover_comm パラメーターをサーバー (DB2 管理サーバーの構成ファイル内) にも、 クライアント (データベース・マネージャーの構成ファイル内) にも設定しなければなりません。

discover_comm パラメーターは、サーバーがクライアントからの検索要求を聴取し、 クライアントが検索要求を送出するために使用する通信プロトコルを制御するために使用します。 discover_comm パラメーターは TCP/IP または NetBIOS に設定することができます。 現在サポートされているプロトコルは TCP/IP と NetBIOS だけです。

DAS では、discover_comm に指定された値は、 DB2COMM に設定された値と同等か、そのサブセットでなければなりません。
注:コントロール・センターおよびクライアント構成アシスタントでの問題を回避するには、 db2set コマンドを使って、 DB2COMM レジストリー変数が DB2 レジストリーで設定されていることを確かめます。 DB2COMM レジストリー変数の設定に他の方法を使用することはお勧めできません。

サーバーでは、discover_comm パラメーターを DAS 構成ファイルで設定します。 クライアント (またはクライアントとして動作するサーバー) では、 discover_comm をデータベース・マネージャー構成ファイルで設定します。
注:検索ディスカバリーを使用する場合、 discover_comm パラメーターによってクライアントに指定された少なくとも 1 つのプロトコルが、 discover_comm パラメーターによって DAS に指定されたプロトコルと一致していなければなりません。 一致するものがなければ、サーバーはクライアントの要求に応答しません。

DB2COMM レジストリー変数の設定値を調べるには、次のように入力します。

   db2set db2comm

さらに、 2 つの DB2 プロファイル・レジストリー変数 DB2DISCOVERYTIME と DB2NBDISCOVERYRECVBUFS を使用して、 クライアント上で NetBIOS を使って検索ディスカバリーを調整できます。 たいていの場合、これらのレジストリー変数の省略時値が適切な値になります。

DB2DISCOVERYTIME および DB2NBDISCOVERRCVBUFS プロファイル・レジストリー値は、 クライアント・インスタンス (またはクライアントとして動作するサーバー) で設定されます。 次のようにレジストリー値を設定します。

ディスカバリーからサーバー・インスタンスおよびデータベースを隠す

サーバー上に複数のインスタンスがあり、 それらのインスタンス内に複数のデータベースがあるかもしれません。 そのようなインスタンスやデータベースをディスカバリー・プロセスから隠したいと思うことがあります。

クライアントがシステム上のサーバー・インスタンスを検出できるようにするには、 システム上の各サーバー・インスタンスの discover_inst データベース・マネージャー構成パラメーターを ENABLE (省略時値) に設定します。 このパラメーターを DISABLE に設定すると、 このインスタンスとデータベースをディスカバリーから隠すことができます。

クライアントからデータベースを検出できるようにするには、 discover_db データベース構成パラメーターを ENABLE (省略時値) に設定します。 このパラメーターを DISABLE に設定すると、 データベースをディスカバリーから隠すことができます。

ディスカバリー・パラメーターの設定

discover および discover_comm パラメーターは、 サーバー・システム上の DAS 構成ファイル、 およびクライアント上のデータベース・マネージャー構成ファイルで設定されます。 パラメーターの設定方法は、次のとおりです。

注:discover_commNETBIOS が組み込まれている場合、 ワークステーション名 (nname) パラメーターがクライアントと DAS の両方に設定されていることを確かめてください。 また、 使用したいアダプター番号に DB2NBADAPTERS レジストリー値が設定されていることも確かめる必要があります。

コントロール・センターを使って、 以下のように discover_inst および discover_db パラメーターを設定します。


  1. オブジェクト・ツリーを順に展開し、 「インスタンス (Instances)」フォルダーを表示します。
  2. インスタンスを右クリックして、 ポップアップ・メニューから「構成 (Configure)」を選択します。
  3. 「環境 (Environment)」ページで、 discover_inst パラメーターを選択します。
  4. クライアントからサーバー・インスタンスを検出できるようにするには、 「使用可能化 (Enable)」を選択して、 「OK」をクリックします。
  5. オブジェクト・ツリー内のデータベースを右クリックして、 ポップアップ・メニューから「構成 (Configure)」を選択します。
  6. 「環境 (Environment)」ページで、 discover_db パラメーターを選択します。
  7. クライアントからデータベースを検出できるようにするには、 「使用可能化 (Enable)」を選択して、 「OK」をクリックします。

コマンド行を使用して複数インスタンスを並列実行するには、 以下のようにします。

クライアント構成アシスタントおよびコントロール・センターを使用するための DAS の設定

ネットワーク上のシステムについての情報を検索するには、 DB2 ディスカバリーを構成しなければなりません。 DB2 ディスカバリーは、 クライアント構成アシスタントとコントロール・センターが使用する機能です。 この機能の構成では、DB2 ディスカバリーによって正確な情報が検索されるよう、 インスタンス・リストと DB2 管理サーバー (DAS) の構成を更新しなければならない場合があります。

インスタンス・リストの更新

DB2 管理サーバー (DAS) が区分データベース・システム内のすべてのインスタンスを認識する必要はありません。 インスタンスが作成されるとき、 最初はインスタンス所有マシン上の DAS だけがそのインスタンスを認識するからです。

DAS を持たないマシン上にインスタンスを作成した場合、 そのマシン上に DAS を作成してインスタンスを認識させることができます。

複数の DAS を作成し、 区分データベース・システム内のインスタンスすべてを個々の DAS に認識させるには、 以下のステップを実行します。

  1. それぞれの DAS ごとに

    管理サーバー・マシンで db2ilist コマンドを実行し、 この DAS に認識されているインスタンスのリストを表示します。

    注:インスタンスのリストが完全であれば、 残りのステップを実行しなくても次のセクションに進むことができます。

  2. 上記のステップのインスタンス・リストで個々のインスタンスが欠落している場合

    インスタンス所有マシンで、db2nlist コマンドを実行して、 DAS を持つマシン用のエントリーがあるかどうかを調べます。 エントリーがなければ、db2ncrt コマンドを実行して、 インスタンスにこのマシンを追加します。

    注:DAS マシンでは、インスタンス用にネットワーク共用ドライブを使用できなければなりません。

DAS 構成の更新

省略時解釈により、 セットアップ・プログラムは DB2SYSTEM レジストリー変数を Windows NT のコンピューター名に設定します。 ディスカバリーによって検索されるシステム名は、 DB2 管理サーバー (DAS) が常駐するシステムです。 接続が確立されると、 ディスカバリーは検索したシステムを調整プログラム・ノードとして使用します。

DAS 構成を更新するには、次の 2 つの方法があります。

ノード構成ファイルの作成

データベースを区分データベース環境で操作する場合、 db2nodes.cfg というノード構成ファイルを作成する必要があります。 このファイルは、並列機能を持ったデータベース・マネージャーを複数区画にわたって開始する前に、 そのインスタンスに対するホーム・ディレクトリーの sqllib サブディレクトリーの中に配置されていなければなりません。 このファイルには、1 つのインスタンスの中のすべてのデータベース区画の構成情報が含まれ、 そのインスタンスのすべてのデータベース区画によって共用されます。
Windows NT に関する考慮事項:DB2 エンタープライズ拡張エディションを Windows NT で使用している場合は、 インスタンスを作成したときにノード構成ファイルが作成されます。
注:インスタンスが削除された場合にデータの消失を避けるため、 sqllib サブディレクトリーには、 DB2 によって作成されたもの以外のファイルまたはディレクトリーを作成しないでください。 ただし、以下の 2 つの例外があります。 システムがストアード・プロシージャーをサポートしている場合は、 ストアード・プロシージャー・アプリケーションを sqllib サブディレクトリーの下の function サブディレクトリーに入れます。 (ストアード・プロシージャーについての詳細は、 ストアード・プロシージャーを参照してください。) もう 1 つの例外は、ユーザー定義特殊関数 (UDF) が作成される場合です。 UDF の実行可能コードは、同じディレクトリーに入れることが許されます。

ファイルには、1 つのインスタンスに属する各データベース区画ごとに 1 行が含まれます。 それぞれの行は、以下の形式になっています。

   nodenum hostname [logical-port [netname]]

トークンはブランクで区切られます。 変数は、以下のとおりです。

nodenum
ノードを固有に定義するノード番号 (0 〜 999 が可能)。 ノード番号は、昇順でなければなりません。 間の番号が抜けていてもかまいません。

いったんノード番号が割り当てられると、それを変更することはできません。 (変更すると、 データを区分する方法を指定する区分化マップの中の情報が信用できないものになります。)

ノードを除去した場合、そのノード番号は、 追加する任意の新しいノードに再使用することができます。

ノード番号は、 データベース・ディレクトリーの中にノード名を生成するために使用されます。 ノード名は、以下の形式になります。

   NODEnnnn

nnnn はノード番号で、左側はゼロで埋められます。 このノード番号は、 CREATE DATABASE コマンドおよび DROP DATABASE コマンドによっても使用されます。

hostname
区画間通信のための IP アドレスのホスト名。 (netname が指定された場合は、例外です。 この場合、netname がほとんどの通信で使用され、 hostname は DB2START、DB2STOP、 および db2_all でのみ使用されます。)

logical-port
このパラメーターの指定は任意であり、ノードの論理ポート番号を指定します。 この番号は、データベース・マネージャーのインスタンス名と一緒に使用され、 etc/services ファイルの中の TCP/IP サービス名項目を識別します。

IP アドレスと論理ポートの組み合わせは、既知のアドレスとして使用され、 ノード間の通信接続をサポートするために、 すべてのアプリケーション内で固有なものでなければなりません。

hostname について、 1 つの logical-port は、 0 かまたはブランク (0 に省略時解釈される) でなければなりません。 この logical-port に関連付けられるノードは、 クライアントが接続するホスト上の省略時のノードです。 これは、db2profile スクリプト内の DB2NODE 環境変数か、 または sqlesetc() API を使用してオーバーライドすることができます。

同じホスト上に複数のノードがある場合 (つまり、 1 つのホストに対して複数の nodenum がある場合)、 logical-port 番号を論理ノードに、0 から昇順に、 間の番号を抜かさずに割り当てる必要があります。

netname
このパラメーターの指定は任意であり、それぞれが独自のホスト名を持つ、 複数の活動状態の TCP/IP インターフェースを持ったホストをサポートするために使用されます。

以下の例は、RS/6000 SP システムのための可能なノード構成ファイルを示したものであり、 SP2EN1 が複数の TCP/IP インターフェースと 2 つの論理ノードを持ち、 DB2 ユニバーサル・データベースのインターフェースとして SP2SW1 を使用しています。 この例は、ノード番号が 1 (0 ではなく) から開始しており、 nodenum の順番は間の番号が抜けていることも示しています。

nodenum   hostname   logical-port   netname
1         SP2EN1     0              SP2SW1
2         SP2EN1     1              SP2SW1
4         SP2EN2     0
5         SP2EN3

好みのエディターを使用して、db2nodes.cfg ファイルを更新することができます。 (例外: Windows NT ではエディターは使用しないでください。) ただし、データ区分化ではノード番号を変更してはならないため、 ファイル内の情報の保全性を注意して保護する必要があります。 ノード構成ファイルは、DB2START を出したときにロックされ、 DB2STOP がデータベース・マネージャーを停止させた後でロックが解除されます。 ファイルがロックされている場合、DB2START コマンドで、必要に応じて、 ファイルを更新することができます。 たとえば、RESTART オプションまたは ADDNODE オプションを指定して DB2START を出すことができます。
注:DB2STOP コマンドが失敗し、ノード構成ファイルがロック解除されない場合、 ロック解除するために DB2STOP FORCE を出してください。

データベース構成ファイルの作成

データベースごとにデータベース構成ファイル も作成されます。 このファイルの作成は管理者のために行われます。 このファイルには、データベースの使用に影響を与える、 次のような様々な構成パラメーター の値が入れられます。

これらのパラメーターについては、 第 32 章, DB2 の構成に詳しく記されています。

パフォーマンス上のヒント: 構成パラメーターの多くは省略時値が提供されていますが、 データベースの最適なパフォーマンスを達成するためには構成パラメーターの更新が必要な場合があります。

複数区画の場合: 複数の区画にわたって区分化されたデータベースを持っている場合、 構成ファイルは、すべてのデータベース区画で同じものである必要があります。 SQL コンパイラーは、 ローカル・ノードの構成ファイルの情報に基づいて分散 SQL ステートメントをコンパイルし、 SQL ステートメントのニーズを満足させるためのアクセス・プランを作成するので、 これらの構成ファイルには整合性が必要です。 データベース区画ごとに異なる構成ファイルを維持していると、 どのデータベース区画でステートメントが準備されたかによって、 異なるアクセス・プランが作成される可能性があります。 db2_all を使用して、 すべてのデータベース区画で構成ファイルの同期を保ってください。

応答ファイルを使った構成情報の複製

db2rspgn という応答ファイル生成ユーティリティーを使用すれば、 システムを再インストールするとき、または現行システムのレジストリー値、 データベース・マネージャー構成パラメーター、 およびデータベース管理構成パラメーターを、 同一のシステムに複製したいときに使える応答ファイルを作成できます。

あるシステムに 1 つまたは複数の DB2 製品をインストールしたら、 db2rspgn を使って必要な値を応答ファイルに生成できます。 その後、応答ファイルは同一のシステムを再作成するために使用できます。

コマンド行構文では、応答ファイルおよびサポート・ファイルがある場合に、 その宛先ディレクトリーを宣言します。 さらに、コピーしたいインスタンスを指定することもできます。 また、管理インスタンスまたは DataLink サーバー・インスタンス、 あるいはその両方を使用不能にすることもできます。

このユーティリティーの構文についての詳細、 および生成された応答ファイルの使用方法についての説明は、 該当する概説およびインストール を参照してください。

FCM 通信の使用可能化

区分データベース環境では、データベース区画間のほとんどの通信は、 高速コミュニケーション・マネージャー (FCM) によって処理されます。 データベース区画で FCM を使用可能にし、 他のデータベース区画との通信ができるようにするには、下記に示すように、 区画の etc ディレクトリーの services ファイル内にサービス項目を作成する必要があります。 FCM は、指定されたポートを使用して通信を行います。 同じホスト上に複数の区画を定義している場合、以下に示すように、 ある範囲のポートを定義しなければなりません。

Windows NT に関する考慮事項
DB2 エンタープライズ拡張エディションを Windows NT 環境で使用している場合、 TCP/IP のポート範囲は次のものによって自動的にサービス・ファイルに追加されます。

詳細については、DB2 エンタープライズ拡張エディション 概説およびインストール を参照してください。

サービス項目の構文は、以下のとおりです。

   DB2_instance port/tcp #comment

DB2_instance
instance の値は、 データベース・マネージャーのインスタンスの名前です。 名前の中のすべての文字は小文字でなければなりません。 db2puser というインスタンス名であるとすれば、 DB2_db2puser というように指定します。

port/tcp
データベース区画のために予約したい TCP/IP ポート。

#comment
この項目と関連付けたい任意の注釈。 注釈の前には、ポンド記号 (#) を付けなければなりません。

/etc/services ファイルが共用されている場合、 ファイル内に割り当てられるポートの数は、 そのインスタンス内の複数のデータベース区画の最大数と等しいかそれより大きくなるようにしなければなりません。 ポートを割り当てる場合には、 バックアップとして使用できるプロセッサーもその数の中に入れるようにしなければなりません。

/etc/services ファイルが共用されていない場合は、同じ考慮事項が適用されます。 ただし、DB2 インスタンスのために定義された項目が、 すべての /etc/services ファイルで同じになるようにしなければならない (区分データベースに適用されない項目は、 同じである必要はありません) という追加の考慮事項があります。

1 つのインスタンス内で同じホスト上に複数のデータベース区画がある場合、 使用する FCM のために複数のポートを定義しなければなりません。 このためには、etc/services ファイルの中に 2 行を組み込んで、 割り当てるポートの範囲を示します。 最初の行は最初のポートを指定し、2 番目の行は複数のポート・ブロックの終わりを示します。 以下の例では、sales というインスタンスに 5 つのポートが割り当てられます。 これは、そのインスタンスには、 5 つを超えるデータベース区画を持つプロセッサーはないことを意味します。

   DB2_sales         9000/tcp
   DB2_sales_END     9004/tcp

注:END は、大文字でのみ指定しなければなりません。 また、両方の下線 (_) 文字も含めるようにしなければなりません。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]