同じコンピューター上の複数の Db2 コピー (Windows)

同一コンピューターで複数の DB2 コピーを使用できます。 各 Db2 のコピーは、同じコード・レベルでも、異なるコード・レベルでもかまいません。

この構成には、以下のような利点があります。
  • 同時に同じホスト上で異なる DB2 バージョンを必要とするアプリケーションを実行することができます。
  • 異なる機能のための独立した DB2 製品のコピーを実行できます。
  • 実動データベースをその後のバージョンの DB2 製品にマイグレーションする前に、同じコンピューターでテストすることができます。
  • 独立系ソフトウェア・ベンダーの場合、DB2 サーバー製品をご自分の製品に組み込み、ユーザーからは DB2 データベースが分からないようにできます。

Db2 コピーは、同じ場所にインストールされた Db2 製品のグループのことです。

DB2 コピーを 1 つだけインストールする場合の考慮点

  • インストールの際、固有のデフォルト DB2 コピー名が生成されます。 デフォルトの DB2 コピーの名前は、DB2 セットアップ・ウィザードの実行中に変更できます。 インストールの完了後に DB2 コピー名を変更することはできません。
  • アプリケーションは、 Db2 バージョン 11.5 環境に似た環境で、デフォルトの Db2 コピーを使用します。

同じコンピューターに複数の DB2 コピーをインストールした場合の考慮点

  • Db2 バージョン 11.5 のコピーは、 Db2 バージョン 10.1 以前のリリースのコピーと共存できますが、以下の制約事項があります。
    • デフォルトのコピーを定義する必要があります。 Db2 バージョン 11.5 をインストールした後、グローバル・スイッチャーを使用して、 バージョン 11.5 のコピーをデフォルト・コピーとして設定できます。
    • デフォルトの IBM データベース・クライアント・インターフェース・コピーの IBM® Data Server Provider for .NET のみが、グローバル・アセンブリー・キャッシュに登録されます。
    • Db2 コピーには固有のインスタンス名がなければなりません。 NO_CONFIG フラグを YES に設定しているサイレント・インストールでは、デフォルトのインスタンスは作成されません。 しかし、インストール後にインスタンスを作成する場合、それは固有でなければなりません。 インスタンスのデフォルト名は DB2®です。 DB2 名のインスタンスが存在する場合は、そのインスタンスの固有の名前が生成されます。 固有の名前は、 DB2 名を使用し、下線を追加し、最後の 2 文字を数字順に生成することによって生成されます。 生成される後続のインスタンス名は、 DB2_01DB2_02などです。
  • Microsoft COM + アプリケーションの場合は、 IBM Data Server Runtime Clientの代わりに、 IBM Data Server Driver Package (インストーラー) または IBM Data Server Driver for ODBC and CLI (圧縮ファイル) をアプリケーションで使用して配布します。 COM + アプリケーションには、一度に 1 つの Data Server Runtime Client しか使用できません。 IBM Data Server Driver Package (インストーラー) または IBM Data Server Driver for ODBC and CLI (圧縮ファイル) には、この制限はありません。 Db2 データ・ソースにアクセスする Microsoft COM + アプリケーションは、デフォルトの Db2 コピーでのみサポートされます。 別のコピーにアクセスする COM+ アプリケーションの並行サポートは、サポートされません。 デフォルト・コピーは、デフォルト Db2 コピー選択ウィザードを使用して変更できます。

新規 Db2 コピーのインストール時のデフォルトの選択

以下の図に示すシナリオでは、複数の Db2 コピー (Db2COPY1Db2COPY2、そして Db2COPYn まで) がインストールされています。 Db2 コピーの 1 つをデフォルト Db2 コピーとして選択します。 ここでは、Db2COPY1 がデフォルト Db2 コピーとして選択されています。
ご使用のシステム環境には、いくつかの Db2 コピーが含まれています。ここで、 DB2COPY1 はデフォルトの Db2 コピーです。

ここで、1 つの Db2 コピーをインストールして、このコピーの名前を Db2COPY1 に指定するというシナリオを想定してください。 DB2COPY1 は、デフォルトの Db2 コピーおよびデフォルトの IBM データベース・クライアント・インターフェース・コピーです。

次に、 Db2 製品を DB2COPY2という名前の新しいコピーにインストールします。 DB2COPY2 のインストール中に、この新規コピーをデフォルト・コピーにするかどうかを確認されます。 Noと応答すると、次の図に示すように、 DB2COPY1 がデフォルト・コピーとデフォルトの IBM データベース・クライアント・インターフェース・コピーのままになります。
新しい Db2 コピーをインストールする際に、新しいコピーをデフォルト・コピーにしないことにします。
ただし、同じシナリオを検討しますが、新しい Db2 コピーをデフォルトの Db2 コピーにするかどうかを尋ねられたら、 「はい」 と応答します。 この場合、次の図に示すように、 DB2COPY2 が新しいデフォルトの Db2 コピーになり、デフォルトの IBM データベース・クライアント・インターフェース・コピーになります。
新しい Db2 コピーをインストールする際に、新しい Db2 コピーをデフォルトの Db2 コピーにすることにします。

サービスとして実行するアプリケーション

Db2 DLL ファイルを動的にバインドするアプリケーション (例えば、 db2api.libにリンクされているアプリケーション) は、 PATHで DLL ファイルを見つけます。 つまり、複数のDb2 バージョン用に開発されていない既存のアプリケーションは、デフォルト・コピーを使用します。 この動作を回避するために、アプリケーションは、 Db2 ライブラリーをロードする前に db2SelectDB2Copy API を使用できます。
注: db2api.libとリンクする場合、関数は、Windows 32 ビット・プラットフォームと Windows 64 ビット・プラットフォームでは異なる DLL ファイルに解決されます。 64 ビット・プラットフォーム上のランタイム DLL ファイルは、ベース名が 32 ビット・バージョンと同じで、それに「64」のサフィックスを追加したものになります。 例えば、Windows 32 ビット・オペレーティング・システム上の db2app.dll は、Windows 64 ビット・オペレーティング・システム上の db2app64.dll と同等です。
詳しくは、「 Call Level Interface Guide and Reference Volume 1」を参照してください。

Windows x64 上の 32 ビット・バージョンと 64 ビット・バージョン

Db2 は、Windows にインストールされている複数の Db2 32 ビット・バージョンと 64 ビット・バージョンをサポートしていません。これは、 Db2 32 および 64 ビット・レジストリーが異なる場所に保管されているためです。 Db2 64 ビット・バージョンをインストールすると、32 ビット・バージョンはシステムから除去されます。

LDAP および CLI 構成

Db2 バージョン 8 では、アプリケーションが別の LDAP 設定を必要とする場合、異なる LDAP ユーザーで認証する必要があります。 そのようにしないと、CLI 構成は LDAP ユーザーが使用する可能性があるすべての Db2 コピーに影響を及ぼします。

パフォーマンス・カウンター

パフォーマンス・カウンターは、一度に 1 つの Db2 コピーに対してのみ登録でき、それらが登録されているコピー内のインスタンスのみをモニターできます。 デフォルト・コピーを切り替えると、 Db2 選択ウィザードは、デフォルトの Db2 コピーでアクティブになるように、パフォーマンス・カウンターを登録解除して再登録します。

Windows Management Instrumentation (WMI)

登録できる WMI プロバイダーは一時点で 1 つのバージョンだけです。

クライアント接続

同じプロセス内で使用できる Db2 コピーは 1 つだけです。 詳しくは、 複数のコピーを使用したIBM データ・サーバー・クライアント接続を参照してください。

Db2 DLL ファイルに動的にリンクするアプリケーション

Db2 DLL ファイルに直接リンクするアプリケーション、または LOAD_WITH_ALTERED_SEARCH_PATH フラグを指定した LoadLibraryEx の代わりに LoadLibrary を使用するアプリケーションは、初期従属ライブラリーが適切にロードされていることを確認する必要があります。 独自のコーディング手法を使用して、ライブラリーがロードされることを確認できます。また、アプリケーションを実行する前に db2envar.bat ファイルを呼び出して環境をセットアップすることも、 db2SelectDB2Copy API を呼び出すこともできます。この API は、アプリケーションに静的にリンクすることができます。

Visual Studio プラグイン

デフォルトの Db2 コピーが バージョン 10.1 以前のリリースのコピーである場合は、同じコンピューターに同時に登録できるプラグインのバージョンは 1 つだけです。 アクティブなプラグインのバージョンは、デフォルト Db2 コピーとともにインストールされるバージョンです。

ライセンス交付

Db2 コピーごとに、ライセンスを登録する必要があります。 ライセンスは、システム規模ではありません。 コピーごとのライセンスにより、同じホスト上にある Db2 製品の制限つきバージョンと、Db2 製品の完全なバージョンの両方に対する機能が提供されます。

Windows サービス

Windows プラットフォーム上の Db2 サービスは、<servicename_installationname> 命名規則を使用します。 例えば、DB2NETSECSERVER_MYCOPY1 などです。 また表示名にもコピー名が含まれますが、これは括弧で囲み、付け加えられて、例えば Db2 Security Server (MYCOPY1) のようになります。 インスタンスの表示名には、サービス・コントロール・パネル・アプレットに表示される DB2-<DB2 Copy Name>-< Instance Name>-< Node Number> も含まれます。 実際のサービス名は、そのままです。

使用する Db2 コピーを選択するための API

db2SelectDB2Copy API を使用して、アプリケーションで使用する Db2 コピーを選択することができます。 この API は DLL ファイルを必要としません。 ご使用のアプリケーションに静的にリンクされます。 Db2 ライブラリーのロードを遅らせて、他の Db2 API を呼び出す前にまずこの API を呼び出すことができます。
注: 特定のプロセスに対して db2SelectDB2Copy API を複数回呼び出すことはできません。つまり、ある Db2 コピーから別のコピーにプロセスを切り替えることはできません。

db2SelectDB2Copy API は、 Db2 コピー名または指定された場所を使用するためにアプリケーションが必要とする環境を設定します。 使用する Db2 コピー用に既に環境がセットアップされている場合には、この API を呼び出す必要はありません。 しかし、別の Db2 コピーを使用する必要がある場合、Db2 DLL ファイルをロードする前にご使用のプロセスでこの API を呼び出してください。 プロセスごとに一度限り、この呼び出しが可能です。

複数の物理ノードでのデータベースのパーティション化

各物理パーティションでは、すべてのコンピューターで同じ Db2 コピー名を使用する必要があります。

複数の Db2 リソースでの MSCS の使用

Db2 リソースは、別個のリソース・モニターで実行されるように構成する必要があります。