リリース情報


|6.7 ODBC による Microsoft SQL Server データ・ソースへのアクセス (新しい章)

| |

|Microsoft SQL Server データ・ソースを DB2 連合サーバーに追加する前に、 |ODBC ドライバーを連合サーバーにインストールし、構成しておく必要があります。 |ODBC ドライバーのインストール方法については、ODBC ドライバーに |付属の資料に記述されているインストール手順を参照してください。

|連合サーバーをセットアップして、Microsoft SQL Server データ・ソースに保管されている |データにアクセスするには、以下を行います。

  1. |ODBC ドライバーを連合サーバーにインストールし、構成します。 |ODBC ドライバーのインストール方法については、ODBC ドライバーに |付属の資料に記述されているインストール手順を参照してください。

    |DB2 (Windows NT サーバー版) の場合:
    |ODBC デバイス・マネージャーでシステム DSN を構成します。 |「ODBC データ・ソース・アドミニストレーター」ウィンドウで、SQL サーバー・ドライバーを指定し、 |そのダイアログを進めて新規システム DSN を追加します。「ユーザー提供のログイン ID |およびパスワードを使用した SQL サーバー認証」を指定します。

    |DB2 (AIX サーバー版) の場合:
    |MERANT によって提供されているライブラリーのスレッド化バージョンをインストールし、 |LIBPATH の最初の項目として MERANT ライブラリー・ディレクトリーを指定し、 |.odbc.ini ファイルをセットアップします。 |
  2. |DB2 リレーショナル・コネクト バージョン 7.2 をインストールします。6.3.3, DB2 リレーショナル・コネクトのインストール |を参照してください。
  3. |Microsoft SQL Server データ・ソースを連合サーバーに追加します。
  4. |Microsoft SQL Server コード・ページを指定します。(Windows NT の場合のみ) |

|この章では、ステップ 3 および 4 が説明されています。

|この章での説明は、Windows NT および AIX プラットフォームに適用されます。 |プラットフォーム固有の違いは、その都度示されています。

|6.7.1 連合サーバーへの Microsoft SQL Server データ・ソースの追加

|ODBC ドライバーと DB2 リレーショナル・コネクトをインストールした後、 |以下のステップに従って Microsoft SQL Server データ・ソースを連合サーバーに |追加します。

  1. |環境変数を設定します。(AIX の場合のみ)
  2. |シェル・スクリプトを実行します。(AIX の場合のみ)
  3. |オプション: DB2_DJ_COMM 環境変数を設定します。(AIX の場合のみ)
  4. |DB2 インスタンスを再生します。(AIX の場合のみ)
  5. |ラッパーを作成します。
  6. |サーバーを作成します。
  7. |ユーザー・マッピングを作成します。
  8. |表および視点のニックネームを作成します。
  9. |オプション: ODBC トレースを取得します。 |

|上記のステップは、以下のセクションで詳しく説明されています。

|6.7.1.1 ステップ 1: 環境変数の設定 (AIX の場合のみ)

|

|データ・ソース環境変数を、db2dj.ini ファイルを |変更し、db2set コマンドを実行することで |設定します。db2dj.ini ファイルには、Microsoft SQL Server データ |・ソースに接続するための構成情報が含まれています。db2set コマンドは、 |DB2 プロファイル・レジストリーをユーザーの設定で更新します。

|区分データベース・システムでは、特定インスタンスのすべてのノードに対して |単一の db2dj.ini ファイルを使用、または |特定インスタンスの 1 つ以上のノードに対して固有の db2dj.ini ファイルを |使用することができます。 |非区分データベース・システムでは、 |保持できる db2dj.ini ファイルはインスタンスごとに 1 つです。

|環境変数を設定するには、以下を行います。

  1. |$HOME/sqllib/cfg/ にある db2dj.ini ファイルを |編集し、次の環境変数を設定します。
    |ODBCINI=$HOME/.odbc.ini
    |DJX_ODBC_LIBRARY_PATH=<path to the Merant driver>/lib
    |DB2ENVLIST=LIBPATH
    | 
    |

|db2set コマンドを実行して、DB2 プロファイル・レジストリーに |変更を適用します。 |db2set の構文は、使用しているデータベース・システムによって |異なります。

|

|

|クライアント・ライブラリーへのパスを設定するには、以下のコマンドを発行します。

|db2set DB2LIBPATH=<Merant クライアント・ライブラリーへのパス>
|db2set DB2ENVLIST=LIBPATH

|6.7.1.2 ステップ 2: シェル・スクリプトの実行 (AIX の場合のみ)

|

|djxlink.sh シェル・スクリプトは、クライアント・ライブラリーを |ラッパー・ライブラリーにリンクします。 |シェル・スクリプトを実行するには、以下を入力します。

|djxlink

|6.7.1.3 ステップ 3: オプション: DB2_DJ_COMM 環境変数の設定 (AIX の場合のみ)

|

|Microsoft SQL Server データ・ソースへのアクセスにかかる時間が長すぎる場合、 |データ・ソースにアクセスを試みるときではなく、連合サーバーが初期設定されるときに |ラッパーをロードするよう DB2_DJ_COMM 環境変数を設定することによって |パフォーマンスを向上させることができます。 |DB2_DJ_COMM 環境変数を設定して、ステップ 5 で指定したラッパーに対応する |ラッパー・ライブラリーを組み込みます。 |以下に例を示します。 |

|DB2 (Windows NT サーバー版) の場合:
|db2set DB2_DJ_COMM=djxmssql3.dll

|DB2 (AIX サーバー版) の場合:
|db2set DB2_DJ_COMM=libmssql3.a
|

|等号 (=) の両端にスペースがないことを確認します。

|ラッパー・ライブラリー名についての詳しくは、 |DB2 SQL 解説書」を参照してください。

|6.7.1.4 ステップ 4: DB2 インスタンスの再生 (AIX の場合のみ)

|プログラムに確実に環境変数が設定されるようにするには、DB2 インスタンスを再生します。 |インスタンスを再生すると、変更を受け入れられるよう DB2 インスタンスはリフレッシュされます。 |DB2 インスタンスを再生するには、次のコマンドを実行してください。

|db2stop
|db2start

|6.7.1.5 ステップ 5: ラッパーの作成

|

|DB2 ユニバーサル・データベースには、Microsoft SQL Server データ・ソースへの |アクセスに使用できる 2 つの異なるプロトコル (ラッパー) があります。 |ラッパーとは、データ・ソースとの通信およびデータ・ソースからのデータ検索に |連合サーバーが使用するメカニズムのことです。 |使用するラッパーは、DB2 ユニバーサル・データベースが稼動しているプラットフォームに |よって異なります。 |適切なラッパーを選択するためのガイドとして、表 3を使用してください。


|

|表 3. ODBC ドライバー

ODBC ドライバー プラットフォーム ラッパー名
ODBC 3.0 (またはそれ以降) ドライバー Windows NT DJXMSSQL3
MERANT DataDirect Connect ODBC 3.6 ドライバー AIX MSSQLODBC3

|CREATE WRAPPER ステートメントを使用して、Microsoft SQL Server データ・ソースへの |アクセスに使用されるラッパーを指定します。 |以下は CREATE WRAPPER ステートメントの例です。

|CREATE WRAPPER DJXMSSQL3 

|ここで DJXMSSQL3 は、DB2 (Windows NT サーバー版) で使用されるデフォルト・ラッパー名です (ODBC 3.0 ドライバー使用)。 |DB2 (AIX サーバー版) を使用している場合、MSSQLODBC3 ラッパー名を指定します。

|デフォルト・ラッパー名は、選択した名前で置換することができます。 |ただし、これを行う場合、LIBRARY パラメーターおよび連合サーバー・プラットフォームのラッパー・ |ライブラリー名を CREATE WRAPPER ステートメントに組み込まなければなりません。 |以下に例を示します。 |

|DB2 (Windows NT サーバー版) の場合:
|CREATE WRAPPER wrapper_name LIBRARY 'djxmssql3.dll'

|ここで wrapper_name はラッパーに付ける名前で、 |'djxmssql3.dll' はライブラリー名です。

|DB2 (AIX サーバー版) の場合:
|CREATE WRAPPER wrapper_name LIBRARY 'libmssql3.a'

|ここで wrapper_name はラッパーに付ける名前で、 |'libdjxmssql.a' はライブラリー名です。 |

|ラッパー・ライブラリー名について詳しくは、 |DB2 SQL 解説書|で CREATE WRAPPER ステートメントを調べてください。

|6.7.1.6 ステップ 6: サーバーの作成

|

|CREATE SERVER ステートメントを使用して、接続したい Microsoft SQL Server データ・ソースを |それぞれ定義します。 |以下に例を示します。

|CREATE SERVER sqlserver TYPE MSSQLSERVER VERSION 7.0 WRAPPER djxmssql3
|OPTIONS (NODE 'sqlnode', DBNAME 'database_name')

|説明:

|sqlserver
|Microsoft SQL Server サーバーに割り当てる名前です。 |この名前は固有でなければなりません。

|MSSQLSERVER
|アクセスを構成するデータ・ソースのタイプです。

|7.0
|アクセスする Microsoft SQL Server のバージョンです。 |DB2 ユニバーサル・データベースは、バージョン 6.5 と 7.0 の Microsoft SQL Server を |サポートしています。

|DJXMSSQL3
|CREATE WRAPPER ステートメントで定義したラッパー名です。

|'sqlnode'
|ユーザーがアクセスしている Microsoft SQL Server と同じバージョンの Microsoft SQL Server を |参照するシステム DSN 名です。この値については大文字小文字が区別されます。DB2 ユニバーサル・データベースは、バージョン 6.5 と 7.0 の Microsoft SQL Server を |サポートしています。

|ノードの名前 (システム DSN 名) が CREATE SERVER ステートメントでオプションとして |指定されていても、Microsoft SQL Server データ・ソースにはノード名が必要です。 |Windows の場合、Windows ODBC データ・ソース・アドミニストレーター・ツールの「システム DSN」タブで |DSN を取得します。AIX の場合、DB2 インスタンス所有者ホーム・ディレクトリーの |.odbc.ini ファイルから DSN を取得します。

|CREATE WRAPPER ステートメントで使用できるその他のオプションについては、 |DB2 SQL 解説書」を |参照してください。

|'database_name'
|接続するデータベースの名前です。

|データベースの名前が CREATE SERVER ステートメントで |オプションとして指定されていても、Microsoft SQL Server データ・ソースには |データベース名が必要です。 |

|6.7.1.7 ステップ 7: ユーザー・マッピングの作成

|連合サーバーのユーザー ID またはパスワードが Microsoft SQL Server データ・ソースの |ユーザー ID またはパスワードと異なる場合、CREATE USER MAPPING ステートメントを |使用して、Microsoft SQL Server データ・ソースで定義されたユーザー ID と |パスワードにローカル・ユーザー ID をマップします。 |以下に例を示します。

|CREATE USER MAPPING FOR db2user SERVER server_name
|OPTIONS (REMOTE_AUTHID 'mssqluser', REMOTE_PASSWORD 'day2night')

|説明:

|db2user
|Microsoft SQL Server データ・ソースで定義されたユーザー ID にマップするローカル・ユーザー ID です。

|server_name
|CREATE SERVER ステートメントで定義したサーバーの名前です。

|'mssqluser'
|db2user のマップ先である、Microsoft SQL Server データ・ソースでのログイン ID です。 |この値については大文字小文字が区別されます。

|'day2night'
|'mssqluser' に関連付けられているパスワードです。 |この値については大文字小文字が区別されます。 |

|CREATE USER MAPPING ステートメントで使用できるその他のオプションについては、 |DB2 SQL 解説書」を参照してください。

|6.7.1.8 ステップ 8: 表および視点のニックネームの作成

|アクセスしたい Microsoft SQL Server データ・ソースにある視点または表ごとに |ニックネームを割り当てます。 |Microsoft SQL Server データ・ソースを照会するとき、これらのニックネームを使用します。 |ニックネームを割り当てるには、CREATE NICKNAME ステートメントを使用してください。 |ニックネームでは、大文字小文字が区別されます。 |以下は CREATE NICKNAME ステートメントの例です。

|CREATE NICKNAME mssqlsales FOR server_name.salesdata.europe

|説明:

|mssqlsales
|Microsoft SQL Server 表または視点の固有のニックネームです。

|server_name.salesdata.europe
|以下の形式に従う、3 つの部分からなる ID です。

|data_source_server_name.remote_schema_name.remote_table_name

|ニックネームの remote_schema_name および remote_table_name の部分には |二重引用符を使用するようお勧めします。 |

|ニックネームが作成されると、DB2 はデータ・ソース・カタログ表にアクセスを試みます (Microsoft SQL Server は |このカタログ表をシステム表として参照します)。 |これで、データ・ソースへの接続がテストされます。 |接続が失敗した場合、エラー・メッセージが表示されます。

|ニックネームを作成したいデータベース表および視点すべてについて、このステップを |繰り返してください。

|CREATE NICKNAME ステートメントの詳細については、 |DB2 SQL 解説書」を |参照してください。 |一般的なニックネームの詳細、およびデータ・タイプ・マッピングの検証については、 |DB2 管理の手引き」を |参照してください。

|6.7.1.9 ステップ 9: オプション: ODBC トレースの取得

|

|データ・ソースへのアクセス時に問題が発生する場合、その問題の分析と解決のため、ODBC トレース情報 |を取得することができます。ODBC トレースが正しく機能していることを確認するには、ODBC データ・ |ソース・アドミニストレーターにより提供されているトレース・ツールを使用します。 |トレースの活動化はシステム・パフォーマンスに影響するため、 |問題が解決したらトレースをオフにしてください。

|6.7.2 Microsoft SQL Server コード・ページの検討 (Windows NT の場合のみ)

|

|Microsoft SQL Server は、DB2 UDB がサポートしている NLS (各国語サポート) 共通コード・ページの |多くをサポートしています。 |DB2 と同じコード・セットを使用しているデータ・ソースでは、変換は必要ありません。 |表 3 には、DB2 ユニバーサル・データベースと Microsoft SQL Server の両方が |サポートしているコード・ページがリストされています。
|

|表 4. DB2 UDB および Microsoft SQL Server コード・ページ・オプション

コード・ページ サポートされている言語
1252 ISO 文字セット
850 マルチリンガル
437 米国英語
874 タイ語
932 日本語
936 中国語 (簡体字)
949 韓国語
950 中国語 (繁体字)
1250 中央ヨーロッパ言語
1251 キリル文字
1253 ギリシャ語
1254 トルコ語
1255 ヘブライ語
1256 アラビア語

|DB2 連合サーバーと Microsoft SQL Server が異なる NLS (各国語サポート) コード・ページを |使用している場合、Microsoft SQL Server データ・ソースが、これらの同等の値に対応するように |構成されている必要があります。 |あるいは、クライアント・コードが一致しない部分を見つけて、エラーとしてフラグを立てるか、 |データ自体の意味を使用してデータをマップすることができなければなりません。 |ソース・コード・ページからターゲット・コード・ページへの変換表が見つからない場合、 |DB2 はエラー・メッセージを出します。 |詳しくは、Microsoft SQL Server の資料を参照してください。


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