データベースを作成する前に、以下の作業を考慮または実行する必要があります。
データベースを作成する前に、論理的または物理的なデータベースの設計を決定しなければなりません。 論理データベースの設計についての詳細は、第 7 章, 論理データベースの設計を参照してください。 物理データベースの設計についての詳細は、第 8 章, 物理データベースの設計を参照してください。
インスタンスとは、データベースをカタログし、 構成パラメーターを設定するための、論理データベース・マネージャー環境です。 インスタンスは、必要に応じて複数作成できます。 複数インスタンスを使用すると、次のことを行えます。
注意点として、複数インスタンスには以下のように多少の難点があります。
インスタンス・ディレクトリーには、 データベース・インスタンスに関連するすべての情報が保管されます。 インスタンス・ディレクトリーの位置を作成後に変更することはできません。 インスタンス・ディレクトリーの内容は、以下のとおりです。
UNIX オペレーティング・システムでは、 インスタンス・ディレクトリーは INSTHOME/sqllib ディレクトリーにあります。 ただし、INSTHOME は、インスタンス所有者のホーム・ディレクトリーです。
区分データベース・システムにおけるインスタンス・ディレクトリーは、 インスタンスに属するすべてのデータベース区画サーバー間で共用されます。 したがって、インスタンス・ディレクトリーは、 インスタンス内のすべてのマシンがアクセスできるネットワーク共用ドライブ上に作成しなければなりません。
インストール手順の一部として、"DB2"という DB2 の初期インスタンスを作成します。 UNIX では、 命名規則の指針にはずれない範囲で初期インスタンスの名前を付けることができます。 インスタンス名は、ディレクトリー構造を設定するために使用します。
このインスタンスをすぐに使えるようにするために、インストール中に次の設定がなされます。
UNIX では、命名規則の指針にはずれない範囲で省略時の名前を付けることができます。
これらの設定により、"DB2"が省略時インスタンスとして確立されます。 省略時に使用されるインスタンスを変更することはできますが、 最初に、追加インスタンスを作成する必要があります。
DB2 を使用する前に、各ユーザーのデータベース環境を更新して、 インスタンスにアクセスし、DB2 プログラムを実行できるようにします。 このことはすべてのユーザー (管理ユーザーも含む) に当てはまります。
UNIX オペレーティング・システムでは、 データベース環境の設定に役立つサンプル・スクリプト・ファイルが提供されます。 サンプル・ファイルは、Bourne または Korn シェルの場合は db2profile、 C シェルの場合は db2cshrc です。 これらのスクリプトは、 インスタンス所有者のホーム・ディレクトリー下の sqllib サブディレクトリーに配置されます。 インスタンス所有者またはインスタンスの SYSADM グループに属するユーザーはだれでも、 インスタンスの全ユーザーのスクリプトをカスタマイズできます。 また、スクリプトをユーザーごとにコピーして、カスタマイズすることもできます。
サンプル・スクリプトには、次の目的を持つステートメントが入っています。
注: | 以下の説明は、UNIX オペレーティング・システム環境にのみ適用されます。 |
省略時のスクリプトは、現行セッションの期間中に限ってユーザー環境に影響を与えます。 .profile ファイルを変更すれば、 ユーザーが Bourne または Korn シェルを使ってログオンするときに、 db2profile スクリプトを自動的に実行できようになります。 C シェルのユーザーであれば、 .login ファイルを変更して db2shrc スクリプト・ファイルを実行できるようになります。
.profile または .login スクリプト・ファイルに、 以下に示すいずれかのステートメントを追加します。
. INSTHOME/sqllib/db2profile (Bourne または Korn シェルの場合) source INSTHOME/sqllib/db2cshrc (C シェルの場合)この場合の INSTHOME は、使用するインスタンスのホーム・ディレクトリーです。
. USERHOME/db2profile (Bourne または Korn シェルの場合) source USERHOME/db2cshrc (C シェルの場合)USERHOME は、ユーザーのホーム・ディレクトリーです。
注: | 以下の説明は、UNIX オペレーティング・システム環境にのみ適用されます。 |
使用したいインスタンスを選択するには、 コマンド・プロンプトで次のいずれかのステートメントを入力します。 ピリオド (.) とスペースは必須です。
. INSTHOME/sqllib/db2profile (Bourne または Korn シェルの場合) source INSTHOME/sqllib/db2cshrc (C シェルの場合)この場合の INSTHOME は、使用するインスタンスのホーム・ディレクトリーです。
. USERHOME/db2profile (Bourne または Korn シェルの場合) source USERHOME/db2cshrc (C シェルの場合)USERHOME は、ユーザーのホーム・ディレクトリーです。
同時に複数のインスタンスを処理したい場合は、 使用する各インスタンスのスクリプトを別々のウィンドウで実行します。 たとえば、test および prod という 2 つのインスタンスがあり、 そのホーム・ディレクトリーが /u/test および /u/prod であるとします。
ウィンドウ 1 では、次のようにします。
. /u/test/sqllib/db2profile
source /u/test/sqllib/db2cshrc
ウィンドウ 2 では、次のようにします。
. /u/prod/sqllib/db2profile
source /u/prod/sqllib/db2cshrc
ウィンドウ 1 は test インスタンスを処理するため、 ウィンドウ 2 は prod インスタンスを処理するために使用します。
注: | which db2 コマンドを入力し、 検索パスが正確に設定されていることを確かめます。 このコマンドを実行すると、DB2 CLP 実行可能モジュールの絶対パスが戻されます。 その位置が、インスタンスの sqllib ディレクトリーにあることを確かめてください。 |
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) になります。 インスタンスは必ず、管理サーバーが常駐するマシン上で追加してください。
別のインスタンスを追加するには、以下のステップを実行します。
コントロール・センターを使用するには、以下のようにします。
|
コマンド行を使用してインスタンスを追加するには、以下のように入力します。
db2icrt <instance_name>
db2icrt コマンドを使用して別の DB2 インスタンスを追加するときには、 インスタンス所有者のログイン名を提供する必要があり、 任意選択で、インスタンスの認証タイプを指定します。 認証タイプは、そのインスタンスの下で作成されたすべてのデータベースに適用されます。 認証タイプとは、ユーザーの認証が行われる場所を示すものです。 認証についての詳細は、第 16 章, データベース・アクセスの制御を参照してください。
注: | db2iupdt コマンドを使って、 インスタンス構成を更新することができます。 |
インスタンス・ディレクトリーの位置は、 DB2INSTPROF 環境変数を使って DB2PATH から変更することができます。 その場合は、インスタンス・ディレクトリーの書き込みアクセスが必要です。 DB2PATH 以外のパスにディレクトリーを作成したければ、 db2icrt コマンドを入力する前に、 DB2INSTPROF を設定しなければなりません。
DB2 ユニバーサル・データベース エンタープライズ拡張エディションで作業する場合は、 区分データベース・システムである新規インスタンスを追加することを宣言する必要もあります。 この宣言は、コマンド行で -s eee を使って行います。
UNIX オペレーティング・システムで作業する場合、 db2icrt コマンドには、以下の任意指定パラメーターがあります。
このパラメーターは、コマンドのヘルプ・メニューを表示する場合に使用します。
このパラメーターは、問題判別中に使用するデバッグ・モードを設定します。
このパラメーターは、インスタンスの認証タイプを指定します。 有効な認証タイプは、SERVER、CLIENT、DCS、または DCE です。 指定しない場合、DB2 サーバーがインストールされていれば、 省略時値は SERVER に設定されます。 それ以外の場合は、CLIENT に設定されます。
注:
このパラメーターは、 分離ユーザー定義関数 (UDF) とストアード・プロシージャーを実行するユーザーです。 DB2 クライアントまたは DB2 アプリケーション開発クライアントをインストールする場合、 これは必須ではありません。 他の DB2 製品の場合、これは必須パラメーターです。
注: | FencedID は"root"または"bin"ではありません。 |
このパラメーターは、使用予定の TCP/IP サービス名またはポート番号を指定します。 その際、この値はインスタンスのデータベース構成ファイルで設定されます。
異なるタイプのインスタンスを追加できます。 有効なインスタンス・タイプは、ee、eee、 および client です。
次に例を示します。
db2icrt -u db2fenc1 db2inst1
db2icrt -u db2inst1 db2inst1
db2icrt db2inst1 -s client
DB2 クライアント・インスタンスは、 ワークステーションから他のデータベース・サーバーへ接続したい場合に作成します。 作成すると、そのワークステーションにローカル・データベースは必要なくなります。
Windows NT オペレーティング・システムで作業する場合、 db2icrt コマンドには、以下の任意指定パラメーターがあります。
異なるタイプのインスタンスを作成できます。 有効なインスタンス・タイプは、ee、eee、 および client です。
これは、 別のインスタンス・プロファイル・パスを指定する任意指定パラメーターです。 パスを指定しない場合、 インスタンス・ディレクトリーは SQLLIB ディレクトリー内に作成され、 インスタンス名に連結された共用名 DB2 を指定されます。 読み取りおよび書き込み許可は、ドメイン内の各人に自動的に与えられます。 許可は、ディレクトリーへのアクセスを制限するために変更することができます。
異なるインスタンス・プロファイル・パスを実際に指定する場合は、 共用ドライブまたはディレクトリーを作成する必要があります。
区分データベース環境を作成する場合、 DB2 サービスのログオンおよびアカウント名とパスワードを宣言しなければなりません。
これは、 高速コミュニケーション・マネージャー (FCM) の TCP/IP ポート範囲を指定する任意指定パラメーターです。 TCP/IP ポート範囲を指定する場合は、 区分データベース・システムのすべてのマシンで、 そのポート範囲を使用できることを確認しなければなりません。
たとえば、DB2 (Windows NT 版) エンタープライズ拡張エディションでは、 以下の例を利用できます。
db2icrt inst1 -s eee /p:\\machineA\db2mpp /u:yourname,yourpwd /r:9010,9015
注: | db2icrt コマンドにより、
インスタンスの作成に使用するユーザー名に以下の権利が与えられます。
インスタンスは、共用ドライブにアクセスし、ユーザー・アカウントを認証し、 DB2 を Windows NT サービスとして実行するために、これらのユーザー権を必要とします。 |
コントロール・センターを使用して、 システムで使用可能なインスタンスすべてをリストするには、次のようにします。
|
コマンド行を使用して、 システムで使用可能なインスタンスすべてをリストするには、次のようにします。
db2ilist
現行セッションに適用されるインスタンスを判別するには、次のように入力します。
set db2instance
注: | UNIX オペレーティング・システムでは、次のように入力します。
db2 get instance |
インスタンスのデータベース・マネージャーを開始または停止するためのコマンドを実行すると、 DB2 はそのコマンドを現行インスタンスに適用します。 DB2 は以下のように現行インスタンスを判別します。
set db2instance=<new_instance_name>
DB2INSTDEF レジストリー変数をレジストリーのグローバル・レベルで設定するには、 次のように入力します。
db2set db2instdef=<new_instance_name> -g
UNIX オペレーティング・システムで、 各システムの再始動後にインスタンスを自動開始できるようにするには、 次のコマンドを入力します。
db2iauto -on InstName
InstName はインスタンスのログイン名です。
UNIX オペレーティング・システムで、 各システムの再始動後にインスタンスを自動開始できないようにするには、 次のコマンドを入力します。
db2iauto -off InstName
InstName はインスタンスのログイン名です。
DB2 インスタンスは同じレベルのコードを使用している限り、 複数のインスタンスを開始できます。
コントロール・センターを使用して複数インスタンスを並列実行するには、 以下のようにします。
|
コマンド行を使用して複数インスタンスを並列実行するには、 以下のようにします。
set db2instance=<another_instName>
DB2 製品のライセンス管理は主に、 製品のオンライン・インターフェースのコントロール・センター内でライセンス・センターを使って行います。 ライセンス・センターでは、インストールした個々の製品に関して、 ライセンス情報、統計、登録済みユーザー、および現行ユーザーを調べることができます。
環境変数およびレジストリー変数は、データベース環境を制御します。
DB2 プロファイル・レジストリーを導入する前に、 (たとえば) Windows または OS/2 ワークステーションの環境変数を変更するには、 環境変数を変更してリブートする必要がありました。 現在、環境は、いくつかの例外はありますが、 DB2 プロファイル・レジストリーに保管されているレジストリー変数によって制御されます。 特定インスタンスのシステム管理 (SYSADM) 権限を持つユーザーは、 そのインスタンスのレジストリー値を更新することができます。 リブートせずにレジストリー変数を更新するには、 db2set コマンドを使用します。 この情報は、即時にプロファイル・レジストリーの中に保管されます。 DB2 レジストリーは、 変更を行った後に開始した DB2 サーバー・インスタンスと DB2 アプリケーションに更新情報を適用します。
レジストリーを更新する場合、 現在実行中の DB2 アプリケーションまたはユーザーに影響はありません。 更新後に開始されたアプリケーションは新しい値を使用します。
注: | DB2 環境変数 DB2INSTANCE、DB2NODE、 DB2PATH、および DB2INSTPROF は、 オペレーティング・システムにもよりますが、 DB2 プロファイル・レジストリーに保管されない場合があります。 これらの環境変数を更新するためには、 set コマンドを使用し、 システムをリブートしなければなりません。 UNIX プラットフォームでは、 set コマンドの代わりに export コマンドを使用でき、 システムをリブートする必要はありません。 |
プロファイル・レジストリーを使用することによって、 環境変数の中央制御が可能になります。 付録 D, DB2 登録変数と環境変数には、環境変数とレジストリー変数が多数リストされています。 さまざまなレベルのサポートが、 さまざまな環境プロファイルを通して提供されるようになっています。 環境変数のリモートでの管理も、DB2 管理サーバーを使用すれば可能です。
以下の 4 つのプロファイル・レジストリーがあります。
ユーザーは、db2set コマンドを使用してセッション環境変数の設定値を変更することによって、 ユーザーのセッションに対する DB2 インスタンス・プロファイル・レジストリー環境変数の設定値をオーバーライドすることができます。
DB2 は、レジストリー値と環境変数を検査し、 それらを以下の順序で解決することによって、操作環境を構成します。
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
注:
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
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 ファイルを編集し、 変更を有効にするためにシステムをリブートします。
異なるプロファイル・レジストリーが、以下にしたがって配置されます。
%DB2INSTPROF%\instance_name\PROFILE.ENV
注: | instance_name は、作業を行っているデータベース区画に固有のものです。 |
%DB2INSTPROF%\DEFAULT.ENV
%DB2INSTPROF%\instance_name\NODES\node_number.ENV
注: | instance_name と node_number は、 作業しているデータベース区画に固有のものです。 |
定義されたすべてのノードを追跡する、追加のレジストリー・ファイルがあります。 このファイルの中の情報は、 db2nodes.cfg ファイルの中に保持される情報とほとんど同等です。
%DB2INSTPROF%\instance_name\NODES.CFG
%DB2INSTPROF%\PROFILES.REG
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 環境変数 DB2INSTANCE、DB2PATH、 DB2INSTPROF を設定することができます。
注: | 環境変数 DB2INSTANCE もセッション (プロセス) レベルで設定できます。
たとえば、TEST という 2 番目の DB2 インスタンスを開始したければ、
コマンド・ウィンドウで以下のコマンドを発行します。
set db2instance=TEST db2start |
プロファイル・レジストリーは、以下のように配置されます。
\HKEY_LOCAL_MACHINE\SOFTWARE\IBM\DB2\PROFILES\instance_name
注: | instance_name は、作業を行っているデータベース区画に固有のものです。 |
\HKEY_LOCAL_MACHINE\SOFTWARE\IBM\DB2\GLOBAL_PROFILE
...\SOFTWARE\IBM\DB2\PROFILES\instance_name\NODES\node_number
注: | instance_name と node_number は、 作業しているデータベース区画に固有のものです。 |
DB2 UDB には、 リモート・マシン上のインスタンス・レベルの DB2 UDB レジストリー変数にアクセスする機能があります。 現在、DB2 UDB レジストリー変数は、マシンまたはグローバル・レベル、 インスタンス・レベル、およびノード・レベルという 3 つの異なるレベルに保管されています。 インスタンス・レベル (ノード・レベルも含む) に保管されているレジストリー変数は、 DB2REMOTEPREG を使用して別のマシンにリダイレクトすることができます。 DB2REMOTEPREG が設定されると、DB2 UDB は、 DB2REMOTEPREG が指すマシンから DB2 UDB レジストリー変数にアクセスします。 たとえば、次のとおりです。
db2set DB2REMOTEPREG=rmtwkstn
ただし、rmtwkstn はリモート・ワークステーション名です。
注: | すべての DB2 インスタンス・プロファイルとインスタンス・リストが、 指定されたリモート・マシン名上に置かれるので、 このオプションの設定には注意が必要です。 |
この機能は、レジストリーが含まれる同じマシン上のリモート LAN 装置を指すために、 DBINSTPROF の設定と組み合わせて使用することができます。
DB2 固有のレジストリー値はすべて、 DB2 プロファイル・レジストリーで定義することをぜひお勧めします。 DB2 変数がレジストリー以外で設定されていれば、 その変数をリモート管理することはできません。
UNIX オペレーティング・システムでは、 システム環境変数 DB2INSTANCE を設定しなければなりません。
db2profile (Korn シェルの場合) および db2cshrc (Bourne シェルまたは C シェルの場合) というスクリプトが、 データベース環境のセットアップを援助するために例として提供されています。 これらのファイルは insthome/sqllib の中にあります (ただし、 insthome はインスタンス所有者のホーム・ディレクトリーです)。
これらのスクリプトには、以下のためのステートメントが入っています。
注: | PATH および DB2INSTANCE を除いて、 DB2 でサポートされる変数は DB2 プロファイル・レジストリーで設定しなければなりません。 DB2 で設定されない変数を設定するには、 スクリプト・ファイル db2profile および db2cshrc で定義する必要があります。 |
インスタンス所有者または SYSADM ユーザーは、 インスタンスのすべてのユーザーのためにこれらのスクリプトをカスタマイズすることができます。 あるいは、ユーザーがスクリプトをコピーしてカスタマイズした後、 スクリプトを直接呼び出すか、 または自分の .profile または .login ファイルに追加することができます。
現行セッションについての環境変数を変更するには、以下のようなコマンドを出します。
db2instance=inst1 export db2instance
set db2instance inst1
DB2 プロファイル・レジストリーが正しく管理されるようにするためには、 UNIX オペレーティング・システム上で、 以下のファイル所有権規則に従わなければなりません。 (DB2 管理サーバー (DAS) については、DB2 管理サーバー (DAS)を参照してください。)
$INSTHOME/sqllib/profile.env
このファイルのアクセス許可と所有権は、以下のようである必要があります。
-rw-r--r-- Instance_Owner DAS_Instance_Group profile.env
$INSTHOME は、インスタンス所有者のホーム・パスです。
このファイルのアクセス許可と所有権は、以下のようである必要があります。
-rw-r--r-- DAS_Instance_Owner DAS_Instance_Group default.env
グローバル・レジストリー変数を修正する場合、 ユーザーはルートまたは DAS インスタンス所有者としてログオンしなければなりません。 DB2 管理サーバーの詳細は、DB2 管理サーバー (DAS)を参照してください。
$INSTHOME/sqllib/nodes/node_number.env
ディレクトリーとこのファイルのアクセス許可と所有権は、以下のようである必要があります。
drwxrwxr-x Instance_Owner DAS_Instance_Group nodes -rw-r--r-- Instance_Owner DAS_Instance_Group node_number.env
注: | Instance_Owner と DAS_Instance_Owner は、 両方とも DAS_Instance_Group のメンバーである必要があります。 |
$INSTHOME は、インスタンス所有者のホーム・パスです。
このファイルのアクセス許可と所有権は、以下のようである必要があります。
-rw-r--r-- root system profiles.reg
DB2 管理サーバー (DAS) は、 他の DB2 サーバー上での管理作業を支援するためだけに使用される DB2 管理制御点です。 クライアント構成アシスタントまたはコントロール・センターを使用したい場合は、 DAS を実行しておく必要があります。 DAS は、 以下の管理タスクを処理するときにコントロール・センターおよびクライアント構成アシスタントを援助します。
1 つのマシン上には 1 つの DAS しか持つことができません。 オペレーティング・システムのブート時に、 DAS を開始するために DAS の構成がインストール中に行われます。
DAS は、ホスト・システムでリモート・タスクを実行するために、 コントロール・センターまたはクライアント構成アシスタントからのクライアント要求の代わりに使用されます。 DAS にアクセスするには、SYSADM 権限のあるクライアントが必要です。 これらのクライアントのすべてが、 SYSADM_GROUP 構成パラメーターを構成するものとなっていても構いません。
これらの要求されたタスクを実行するのに、特定の権限が必要となる場合があります。 DAS は、特定のユーザーの識別子の下で実行されます。 ユーザーに授与される特権は、 管理者が実行するタスクやオペレーションに関連したコマンドだけに限られていなければなりません。 一般的に、必要なタスクまたはオペレーションには次のものがあります。
DAS の通信の設定についての詳細は、 使用しているプラットフォーム用の概説およびインストール を参照してください。
一般にセットアップ・プログラムは、 DB2 インストール中にインスタンス所有マシン上に DAS を作成します。 しかし、セットアップ・プログラムが DAS の作成に失敗した場合は、 DAS を手動で作成することができます。
インストール処理の間に DAS に関連して生じることの概要については、 以下のことを考慮してください。
ローカル管理者権限を持つアカウントを使って、DAS を作成したいマシンにログオンします。 特定のユーザーを識別する場合は、ローカル管理者権限を持つユーザーを作成します。 db2admin create を入力します。 特定のユーザー・アカウントを使用する場合は、db2admin create を出すときに、 "/USER:"と"/PASSWORD:"を使用する必要があります。
DAS を作成するときに、 ユーザー・アカウント名とユーザー・パスワードを指定することができます (指定は任意です)。 有効であれば、ユーザー・アカウント名とパスワードは、DAS の所有者を識別します。 DAS 用に作成したユーザー ID またはアカウント名は、 ユーザー・アカウントとして使用しないでください。 アカウント名のパスワードを"Password Never Expires" (無期限のパスワード) に設定します。 DAS を作成した後で、db2admin setid コマンドを使用してユーザー・アカウント名とユーザー・パスワードを提供することによって、 その所有権を確立または修正することができます。 このコマンドの詳細については、コマンド解説書 を参照してください。
DB2 UDB (Windows NT 版) エンタープライズ拡張エディションでは、 クライアント構成アシスタントまたはコントロール・センターを使って DB2 サーバーへの接続構成を自動化する場合、 DAS として同一マシン上にあるデータベース区画サーバーは調整プログラム・ノードになります。 つまり、クライアントからデータベースへの物理接続はすべて、 他のデータベース区画サーバーに経路指定される前に、 インスタンス所有マシン上のデータベース区画サーバーに向けられます。
DB2 UDB (Windows NT 版) エンタープライズ拡張エディションでは、 他のマシン上の追加管理サーバーを追加すると、 クライアント構成アシスタントまたはコントロール・センターで DB2 ディスカバリーを使って他のシステムを調整プログラム・ノードとして構成することができます。 そのためには、以下のことを実行します。
db2admin create /user:username /password:passwrdここで、username と passwrd は DAS 用のユーザー名とパスワードです。
dasicrt ASName
/usr/lpp/db2_nn_00&/instance/ dasicrt ASname
/opt/IBMdb2/<version_id>/instance/ dasicrt ASname
/usr/IBMdb2/<version_id>/instance/ dasicrt ASname
注: | NIS および NIS+ を実行する場合は、
次のような仕方でユーザー名とグループ名をセットアップします。
2 次グループのリストは、 システム上で NIS と NIS+ が実行されている場合に限って、自動的に変更されます。 |
ユーザー ID が所有できるインスタンスは 1 つだけなので、 作成する個々の DB2 管理サーバー (DAS) を所有するには、 別々のユーザー ID を持たなければなりません。
管理サーバーを作成した後、 それを使用してディレクトリー構造およびアクセス許可を確立する必要があります。
DAS を手動で開始または停止するには、最初に、 ローカル管理者権限を持つアカウントまたはユーザー ID を使ってマシンにログオンしなければなりません。
DB2 (OS/2 版) または DB2 (Windows NT 版) で作業する場合は、 以下のことを行う必要があります。
注: | Windows NT では、上記の両方の場合に、 これらのコマンドを使用する人は SYSADM、SYSCTRL、または SYSMAINT 権限を持っている必要があります。 |
DB2 (任意の UNIX オペレーティング・システム用) で作業する場合は、 以下のことを行う必要があります。
. INSTHOME/sqllib/db2profile (Bourne または Korn シェルの場合) source INSTHOME/sqllib/db2cshrc (C シェルの場合)ただし、INSTHOME はインスタンスのホーム・ディレクトリーです。
db2admin start
注: | DAS は各システムのリブート後に自動的に開始されます。 |
. INSTHOME/sqllib/db2profile (Bourne または Korn シェルの場合) source INSTHOME/sqllib/db2cshrc (C シェルの場合)ただし、INSTHOME はインスタンスのホーム・ディレクトリーです。
db2admin stop
注: | UNIX のもとでは、上記の両方の場合に、これらのコマンドを使用する人は、 DAS 所有者の許可 ID を使用してログオンされていなければなりません。 |
マシン上の DAS インスタンスの名前を取得するには、 次のように入力します。
db2admin
このコマンドは、DAS の開始と停止、 新しいユーザーとパスワードの作成、DAS インスタンスの除去、 DAS インスタンスに関連したユーザー・アカウントの確立や修正にも使用します。
DAS に関係するこれらの管理構成パラメーターの現行値を調べるには、 以下を入力します。
db2 get admin cfg
このコマンドを実行すると、製品のインストール中に省略時値として与えられた現行値、 または構成パラメーターを以前構成したときに与えられた現行値が表示されます。
DAS に関係するデータベース・マネージャー構成ファイルの中の個々の項目を更新するには、 以下を入力します。
db2 update admin cfg using ...
どのデータベース・マネージャー構成パラメーターを変更できるかについての詳細は、コマンド解説書 を参照してください。
構成パラメーターを推奨されるデータベース・マネージャー省略時値にリセットするには、 以下を入力します。
db2 reset admin cfg
データベース・マネージャー構成ファイルに対する変更は、 それらがメモリーの中にロードされた後 (つまり、 db2admin stop の後に db2admin start が続くとき) にのみ有効になります。
DAS の通信プロトコルをセットアップするには、 使用しているプラットフォーム用の概説およびインストール を参照してください。
最初に、ローカル管理者権限を持つアカウントまたはユーザー ID を使ってマシンにログオンしなければなりません。
注: | Windows NT では、 ログオン・アカウント用に設定されない必須アクセス権があるので、 「コントロール パネル」の「サービス」ユーティリティーを使って DAS 用のログオン・アカウントを変更しないでください。 DB2 管理サーバー (DAS) 用のログオン・アカウントを設定または変更する場合は必ず、 db2admin コマンドを使用します。 |
DAS を作成したら、次のように db2admin コマンドを使って、 ログオン・アカウントを設定または変更できます。
db2admin setid username password
ここで、username と password は、 ローカル管理者権限を持つアカウントのユーザー名とパスワードです。
環境内のサーバーのそれぞれで、 ユーザー ID またはユーザー名が SYSADM 権限を持つことが推奨されます。 こうすれば、必要に応じて、他のインスタンスを開始または停止することができます。
UNIX オペレーティング・システムでは、 DB2 をプログラム一時修正 (PTF) またはコード・パッチによって更新する場合、 すべての DB2 管理サーバー (DAS) とすべての既存インスタンスを更新する必要があります。 DAS を更新するには、 インストールした DB2 バージョンとリリースに固有のサブディレクトリー下の instance サブディレクトリーにある dasiupdt コマンドを使用します。
最初に、"root"として (UNIX の場合)、 またはローカル管理者権限を持つアカウントかユーザー ID を使って、 マシンにログオンしなければなりません。
コマンドは、次のように使用します。
dasiupdt InstName
InstName はインスタンス所有者のログイン名です。 このコマンドには次のような任意指定パラメーターがあり、 InstName の前に配置してスペースで区切ります。
このコマンドのヘルプ・メニューを表示します。
デバッグ・モードを設定し、問題分析に使用します。
最初に、"root"として (UNIX の場合)、 またはローカル管理者権限を持つアカウントかユーザー ID を使って、 マシンにログオンしなければなりません。
DAS を除去するには、以下のようにします。
注: | この例では、除去する DAS の名前を db2das00 とします。 |
注: | Windows NT では、このコマンドを使用する人は SYSADM、SYSCTRL、 または SYSMAINT 権限を持っている必要があります。 |
. INSTHOME/sqllib/db2profile (Bourne または Korn シェルの場合) source INSTHOME/sqllib/db2cshrc (C シェルの場合)ただし、INSTHOME はインスタンスのホーム・ディレクトリーです。
db2admin stop
dasidrop ASNameただし、ASName は、管理サーバーのインスタンス名です。 このコマンドは、 インストールした DB2 バージョンおよびリリースに固有のサブディレクトリー下の instance サブディレクトリーにあります。
注: | dasidrop コマンドを実行すると、 DB2 管理サーバー (DAS) のホーム・ディレクトリーにある sqllib ディレクトリーが除去されます。 |
以下では、コントロール・センターを使用して、 DB2 EEE サーバー (Solaris、NT、Sequent、HP-UX、 および AIX) をリモート管理用に構成するのに必要なステップについて説明します。
インストール中、 セットアップ・プログラムはインスタンス所有マシン上に単一の DAS を作成します。 他のマシン上に追加の DAS を作成して、 コントロール・センターまたはクライアント構成アシスタントから、 他の調整プログラム・ノードにアクセスすることもできます。 そうすれば、調整プログラム・ノードとして作業する場合のオーバーヘッドを、 インスタンス内の複数ノードに分散できます。
調整プログラム機能を分散するには、次のようにします。
構成には 2 つの局面があります。 つまり、DB2 管理サーバー (DAS) で必要なことと、 ターゲットである管理される DB2 インスタンスで推奨されていることです。 以下の 3 つのセクションのうち、 2 つの構成トピックの説明にそれぞれ 1 つのセクションが割り振られています。 2 つの構成トピックの説明の前に、前提となる環境について説明しているセクションがあります。
DB2 インスタンス:
DAS:
注: | 上記のフィールドをサイト特有の値で置き換えてください。 たとえば、 次の表にはサポートされているそれぞれの 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 は、コントロール・センターの代わりに特定のタスクを実行する管理制御点です。 物理的なマシン 1 台につき設けることのできる DAS は多くて 1 つです。 いくつかのマシンで構成される EEE インスタンスの場合は、 コントロール・センターが EEE インスタンスを実行できるよう、 少なくとも 1 つのマシンで DAS を実行している必要があります。 この DAS (db2as) は、 ターゲット DB2 インスタンス (db2inst) の親としてコントロール・センターのナビゲーター・ツリーに存在するシステムを「表して」います。
たとえば、 db2inst は 2 つの物理マシンまたはホストにわたって分散している 3 つのノードから構成されています。 hostA か hostB のいずれかで db2das を実行することによって、 最小要件を満たすことができます。
注:
コントロール・センターは、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 ポート名が上記のとおりのつづりで存在していなければならず、 選択された同じポート番号がすべてのホストで使用される必要があります。
hostA と hostB 上で TCP ポート行を tcp_services_file に挿入すると、 そのインスタンスに参加しているすべてのホストで、 管理 listener 処理またはデーモンである db2cclst を開始する必要があります。 これは、コマンド行から手動で行うこともできますし、 あるいはシステムがブートするたびに db2cclst を自動的に呼び出すようシステムを構成することによっても行えます。
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 になります。
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 によって生成されたエラー・メッセージを見ることができます。 |
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 stop と db2admin 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 パラメーターは次のように、 クライアント・インスタンス (またはクライアントとして動作するサーバー) で設定します。
クライアント構成アシスタントを使って既知リスト内のシステムを最新表示できます。 また、「システムの追加 (Add Systems)」押しボタンを使って、 新しいシステムをリストに追加することもできます。 discover パラメーターを KNOWN に設定すると、 クライアント構成アシスタントはネットワークを検索できなくなります。
既知ディスカバリーの全機能を使用可能にし、ネットワークを検索することができます。
「他のシステム (ネットワークの検索) (Other Systems (Search the network))」アイコンは、 この選択項目を選択した場合だけ表示されます。 これが省略時設定です。
ディスカバリーを使用不能にします。 この例では、「データベースの追加ウィザード (Add Database Wizard)」で、 「ネットワークの検索 (Search the network)」オプションを使用することができません。
注: | 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 プロファイル・レジストリー値は、 クライアント・インスタンス (またはクライアントとして動作するサーバー) で設定されます。 次のようにレジストリー値を設定します。
db2set db2discoverytime=60
このコマンドにより、 検索ディスカバリーはサーバーからの応答を 60 秒待つように指示されます。
db2set db2nbdiscoverrcvbufs=20
このコマンドにより、 検出されたサーバーからの並行応答メッセージ用に割り当てられる NetBIOS バッファーの数が指定されます。
サーバー上に複数のインスタンスがあり、 それらのインスタンス内に複数のデータベースがあるかもしれません。 そのようなインスタンスやデータベースをディスカバリー・プロセスから隠したいと思うことがあります。
クライアントがシステム上のサーバー・インスタンスを検出できるようにするには、 システム上の各サーバー・インスタンスの discover_inst データベース・マネージャー構成パラメーターを ENABLE (省略時値) に設定します。 このパラメーターを DISABLE に設定すると、 このインスタンスとデータベースをディスカバリーから隠すことができます。
クライアントからデータベースを検出できるようにするには、 discover_db データベース構成パラメーターを ENABLE (省略時値) に設定します。 このパラメーターを DISABLE に設定すると、 データベースをディスカバリーから隠すことができます。
discover および discover_comm パラメーターは、 サーバー・システム上の DAS 構成ファイル、 およびクライアント上のデータベース・マネージャー構成ファイルで設定されます。 パラメーターの設定方法は、次のとおりです。
次のコマンド・プロセスを使って DAS 構成ファイルを更新します。
update admin cfg using discover [ DISABLE | KNOWN | SEARCH ] update admin cfg using discover_comm [ NETBIOS | TCPIP ]
次のコマンドを入力して DAS を停止し、再始動します。
db2admin stop db2admin start
注: | 検索ディスカバリーは NetBIOS および TCP/IP でのみ動作します。 |
|
注: | discover_comm に NETBIOS が組み込まれている場合、 ワークステーション名 (nname) パラメーターがクライアントと DAS の両方に設定されていることを確かめてください。 また、 使用したいアダプター番号に DB2NBADAPTERS レジストリー値が設定されていることも確かめる必要があります。 |
コントロール・センターを使って、 以下のように discover_inst および discover_db パラメーターを設定します。
|
コマンド行を使用して複数インスタンスを並列実行するには、 以下のようにします。
set db2instance=<another_instName>
ネットワーク上のシステムについての情報を検索するには、 DB2 ディスカバリーを構成しなければなりません。 DB2 ディスカバリーは、 クライアント構成アシスタントとコントロール・センターが使用する機能です。 この機能の構成では、DB2 ディスカバリーによって正確な情報が検索されるよう、 インスタンス・リストと DB2 管理サーバー (DAS) の構成を更新しなければならない場合があります。
DB2 管理サーバー (DAS) が区分データベース・システム内のすべてのインスタンスを認識する必要はありません。 インスタンスが作成されるとき、 最初はインスタンス所有マシン上の DAS だけがそのインスタンスを認識するからです。
DAS を持たないマシン上にインスタンスを作成した場合、 そのマシン上に DAS を作成してインスタンスを認識させることができます。
複数の DAS を作成し、 区分データベース・システム内のインスタンスすべてを個々の DAS に認識させるには、 以下のステップを実行します。
管理サーバー・マシンで db2ilist コマンドを実行し、 この DAS に認識されているインスタンスのリストを表示します。
注: | インスタンスのリストが完全であれば、 残りのステップを実行しなくても次のセクションに進むことができます。 |
インスタンス所有マシンで、db2nlist コマンドを実行して、 DAS を持つマシン用のエントリーがあるかどうかを調べます。 エントリーがなければ、db2ncrt コマンドを実行して、 インスタンスにこのマシンを追加します。
注: | DAS マシンでは、インスタンス用にネットワーク共用ドライブを使用できなければなりません。 |
省略時解釈により、 セットアップ・プログラムは DB2SYSTEM レジストリー変数を Windows NT のコンピューター名に設定します。 ディスカバリーによって検索されるシステム名は、 DB2 管理サーバー (DAS) が常駐するシステムです。 接続が確立されると、 ディスカバリーは検索したシステムを調整プログラム・ノードとして使用します。
DAS 構成を更新するには、次の 2 つの方法があります。
複数の DAS があると、 クライアント構成アシスタントまたはコントロール・センターのインターフェース上の複数のシステムに同じインスタンスが表示される場合がありますが、 各システムにはインスタンスへの異なる通信アクセス・パスが指定されます。 ユーザーは、通信用の調整プログラム・ノードとして、 異なる DB2 システムを選択することができます。
データベースを区分データベース環境で操作する場合、 db2nodes.cfg というノード構成ファイルを作成する必要があります。 このファイルは、並列機能を持ったデータベース・マネージャーを複数区画にわたって開始する前に、 そのインスタンスに対するホーム・ディレクトリーの sqllib サブディレクトリーの中に配置されていなければなりません。 このファイルには、1 つのインスタンスの中のすべてのデータベース区画の構成情報が含まれ、 そのインスタンスのすべてのデータベース区画によって共用されます。
Windows NT に関する考慮事項: | DB2 エンタープライズ拡張エディションを Windows NT で使用している場合は、 インスタンスを作成したときにノード構成ファイルが作成されます。 |
注: | インスタンスが削除された場合にデータの消失を避けるため、 sqllib サブディレクトリーには、 DB2 によって作成されたもの以外のファイルまたはディレクトリーを作成しないでください。 ただし、以下の 2 つの例外があります。 システムがストアード・プロシージャーをサポートしている場合は、 ストアード・プロシージャー・アプリケーションを sqllib サブディレクトリーの下の function サブディレクトリーに入れます。 (ストアード・プロシージャーについての詳細は、 ストアード・プロシージャーを参照してください。) もう 1 つの例外は、ユーザー定義特殊関数 (UDF) が作成される場合です。 UDF の実行可能コードは、同じディレクトリーに入れることが許されます。 |
ファイルには、1 つのインスタンスに属する各データベース区画ごとに 1 行が含まれます。 それぞれの行は、以下の形式になっています。
nodenum hostname [logical-port [netname]]
トークンはブランクで区切られます。 変数は、以下のとおりです。
いったんノード番号が割り当てられると、それを変更することはできません。 (変更すると、 データを区分する方法を指定する区分化マップの中の情報が信用できないものになります。)
ノードを除去した場合、そのノード番号は、 追加する任意の新しいノードに再使用することができます。
ノード番号は、 データベース・ディレクトリーの中にノード名を生成するために使用されます。 ノード名は、以下の形式になります。
NODEnnnn
nnnn はノード番号で、左側はゼロで埋められます。 このノード番号は、 CREATE DATABASE コマンドおよび DROP DATABASE コマンドによっても使用されます。
IP アドレスと論理ポートの組み合わせは、既知のアドレスとして使用され、 ノード間の通信接続をサポートするために、 すべてのアプリケーション内で固有なものでなければなりません。
各 hostname について、 1 つの logical-port は、 0 かまたはブランク (0 に省略時解釈される) でなければなりません。 この logical-port に関連付けられるノードは、 クライアントが接続するホスト上の省略時のノードです。 これは、db2profile スクリプト内の DB2NODE 環境変数か、 または sqlesetc() API を使用してオーバーライドすることができます。
同じホスト上に複数のノードがある場合 (つまり、 1 つのホストに対して複数の nodenum がある場合)、 logical-port 番号を論理ノードに、0 から昇順に、 間の番号を抜かさずに割り当てる必要があります。
以下の例は、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 を使用可能にし、 他のデータベース区画との通信ができるようにするには、下記に示すように、 区画の etc ディレクトリーの services ファイル内にサービス項目を作成する必要があります。 FCM は、指定されたポートを使用して通信を行います。 同じホスト上に複数の区画を定義している場合、以下に示すように、 ある範囲のポートを定義しなければなりません。
詳細については、DB2 エンタープライズ拡張エディション 概説およびインストール を参照してください。
サービス項目の構文は、以下のとおりです。
DB2_instance port/tcp #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 は、大文字でのみ指定しなければなりません。 また、両方の下線 (_) 文字も含めるようにしなければなりません。 |