|在您將 Microsoft SQL Server 資料來源新增至 DB2 聯合伺服器之前, |您必須將 ODBC 驅動程式安裝並架構在聯合伺服器上。 |請參閱文件中的安裝程序,其隨附在 ODBC 驅動程式,以取得如何安裝 ODBC 驅動程式的特定明細。
|若要設定聯合伺服器以存取儲存在 Microsoft SQL Server 資料來源的資料,您必須: |
|本章討論步驟 3 及 4。
|本章的指示可引用在 Windows NT 及 AIX 平台。 |特定平台的不同處備註於其發生的地方。
|在您安裝 ODBC 驅動程式及 DB2 Relational Connect 之後,使用下列步驟,將 Microsoft SQL Server 資料來源新增到您的中: |
|下列各節將對這些步驟作詳細的解釋。
|修改 db2dj.ini 檔案並發出 db2set 指令, |以設定資料來源環境變數。db2dj.ini 檔案包含資訊目的,以連接 Microsoft SQL Server 資料來源。db2set 指令會用您的設定值更新 DB2 設定檔登錄。
|在分割的資料庫系統中,您可以使用特殊案例中的所有節點之單一 db2dj.ini 檔案,或使用特殊案例中的一或多個節點之唯一的 db2dj.ini 檔案。 |未分割的資料庫系統中,每一案例僅可有一個 db2dj.ini 檔案。
|若要設定環境變數: |
|ODBCINI=$HOME/.odbc.ini |DJX_ODBC_LIBRARY_PATH=<path to the Merant driver>/lib |DB2ENVLIST=LIBPATH ||
|發出 db2set 指令,用您的變更來更新 DB2 設定檔登錄。db2set 的語法,是以您的資料庫系統結構為依據。 |
|db2set DB2_DJ_INI=<path to ini file>/db2dj.ini
||
|db2set -g DB2_DJ_INI=<path to ini file>/db2dj.ini
||
|db2set -i INSTANCEX 3 DB2_DJ_INI=$HOME/sqllib/cfg/node3.ini
|其中: |
|若要設定從屬站檔案庫路徑,請發出這些指令:
|db2set DB2LIBPATH=<path to the Merant client library> |db2set DB2ENVLIST=LIBPATH
|djxlink.sh Shell Script 鏈結從屬站檔案庫至外層檔案庫。 |若要執行 Shell Script:
|djxlink
|若您發現其花費過多的時間來存取 Microsoft SQL Server 資料來源, |您可以在聯合伺服器起始設定,而非在您嘗試存取資料來源時,設定 DB2_DJ_COMM 環境變數來下載外層, 如此便可增進效能。 |設定 DB2_DJ_COMM 環境變數以包括外層檔案庫,與您在第 5 步驟指定的外層相符。例如: |
|db2set DB2_DJ_COMM=djxmssql3.dll
|db2set DB2_DJ_COMM=libmssql3.a
||請確定等號 (=) 的兩邊都沒有空格。
|請參閱 DB2 SQL Reference,以取得有關外層常式庫名稱的詳細資訊。
|若要確定環境變數設定於程式中,請重新使用 DB2 案例。 |當您重新使用案例時,復新 DB2 案例以接受您所作的變更。 發出下列指令,重新使用 DB2 案例:
|db2stop |db2start
|DB2 Universal Database 有兩種通信協定,稱為外層,您可以使用來存取 Microsoft SQL Server 資料來源。外層是一種機制,聯合伺服器用此機制來通信及擷取資料來源的資料。 |您使用的外層是以 DB2 Universal Database 正在執行的平台為依據。 |使用表 3 作為指南,以選取適當的外層。
|
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 for Windows NT 伺服器 (使用 ODBC 3.0 驅動程式) 上使用的預設外層名稱。 若您有 DB2 for AIX 伺服器,您可以指定 MSSQLODBC3 外層名稱。
|您可以用您選擇的名稱來取代預設外層名稱。 |但是,若您這麼做,您必須包含 CREATE WRAPPER 陳述式的聯合伺服器平台之 LIBRARY 參數及外層檔案庫的名稱。 例如: |
|CREATE WRAPPER wrapper_name LIBRARY 'djxmssql3.dll'
|其中 wrapper_name 是您想要提供給外層的名稱, |而 'djxmssql3.dll' 是常式庫名稱。
|CREATE WRAPPER wrapper_name LIBRARY 'libmssql3.a'
|其中 wrapper_name 是您想要提供給外層的名稱, |而 'libdjxmssql.a' 是常式庫名稱。 |
|請參閱 DB2 SQL Reference 中的 CREATE WRAPPER 陳述式,以取得有關外層常式庫名稱的詳細資訊。
|使用 CREATE SERVER 陳述式來定義您想要連接的每一個 Microsoft SQL Server 資料來源。例如:
|CREATE SERVER sqlserver TYPE MSSQLSERVER VERSION 7.0 WRAPPER djxmssql3 |OPTIONS (NODE 'sqlnode', DBNAME 'database_name')
|其中: |
|雖然節點名稱 (系統 DSN 名稱) 是指定為 CREATE SERVER 陳述式中的選項,但此為 Microsoft SQL Server 資料來源所需的。 |若是在 Windows 上,您可以從 Windows ODBC Data Administrator 工具的「系統 DSN」標籤中取得 DSN。若是在 AIX 上,您可以從 DB2 案例擁有者起始目錄內的 .odbc.ini 檔中取得 DSN。
|請參閱 DB2 SQL Reference,以取得您可以與 CREATE WRAPPER 陳述式搭配使用的其他選項。
|雖然資料庫名稱是指定為 CREATE SERVER 陳述式中的選項,但此為 Microsoft SQL Server 資料來源所需的。 |
|若聯合伺服器中的使用者 ID 與通行碼,與 Microsoft SQL Server 中的使用者 ID 與通行碼不同,請使用 CREATE USER MAPPING 陳述式,使本端使用者 ID 與 Microsoft SQL Server 資料來源中定義的使用者 ID 與通行碼相互對映;例如:
|CREATE USER MAPPING FOR db2user SERVER server_name |OPTIONS (REMOTE_AUTHID 'mssqluser', REMOTE_PASSWORD 'day2night')
|其中: |
|請參閱 DB2 SQL Reference,以取得您可以使用 CREATE USER MAPPING 陳述式的其他選項。
|指定您想要存取的 Microsoft SQL Server 資料來源中,每一個概略表及表格之暱名。 |當您查詢 Microsoft SQL Server 資料來源時,將使用這些暱名。 使用 CREATE NICKNAME 陳述式來指定暱名。 |暱名有區分大小寫。下列範例顯示 CREATE NICKNAME 陳述式:
|CREATE NICKNAME mssqlsales FOR server_name.salesdata.europe
|其中: |
|data_source_server_name.remote_schema_name.remote_table_name
|建議您在的 remote_schema_name 及 remote_table_name 部份使用雙引號。 |
|當您建立暱名時,DB2 會嘗試存取資料來源型錄表格 (Microsoft SQL Server 參照這些表格作為系統表格)。這會測試連接到資料來源的狀態。若連線失敗,您會接收到一個錯誤訊息。
|針對您想要建立暱名的所有資料庫表格及概略表,重複此步驟。
|有關 CREATE NICKNAME 陳述式的詳細資訊,請參閱 DB2 SQL Reference。 有關一般暱名及驗證資料類型對映的詳細資訊, 請參閱 DB2 Administration Guide。
|若您存取資料來源時遇到問題,您可以取得 ODBC 追蹤資訊,以分析並解決這些問題。 |若要確定 ODBC 追蹤的運作正常,請使用「ODBC 資料來源管理者」提供的追蹤工具。啟動追蹤會影響系統效能,因此當您已解決問題時,應該關閉追蹤。
|Microsoft SQL Server 支援許多 DB2 UDB 支援的一般「國家語言支援 (NLS)」字碼頁選項。 使用與 DB2 相同的字碼集之資料來源不需要轉換。
|表格 3 列示 DB2 Universal Database 及 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 文件,以取得詳細資訊。