版本注意事項


|6.6 使用 ODBC 存取 Microsoft SQL Server 資料來源(新增章節)

| |

|在您將 Microsoft SQL Server 資料來源新增至 DB2 聯合伺服器之前, |您必須將 ODBC 驅動程式安裝並架構在聯合伺服器上。 |請參閱文件中的安裝程序,其隨附在 ODBC 驅動程式,以取得如何安裝 ODBC 驅動程式的特定明細。

|若要設定聯合伺服器以存取儲存在 Microsoft SQL Server 資料來源的資料,您必須: |

  1. |在聯合伺服器上安裝並架構 ODBC 驅動程式。 |請參閱文件中的安裝程序,其隨附在 ODBC 驅動程式,以取得如何安裝 ODBC 驅動程式的特定明細。 |

    |在 DB2 for Windows NT 伺服器上:
    |使用 ODBC 裝置管理程式架構系統 DSN。在 Windows ODBC Data Administrator 中指定 SQL Server 驅動程式,並且按照對話,新增新的「系統 DSN」。請指定「SQL 伺服器身分驗證採用使用者提供的登入 ID 和通行碼」。

    |在 DB2 for AIX 伺服器上:
    |安裝 MERANT 提供的執行緒版本,指定 MERANT 檔案庫目錄為 LIBPATH 中的第一個登錄,並設定 .odbc.ini 檔案。 |
  2. |安裝 DB2 Relational Connect 版本 7.2。 請參閱6.3.3, 安裝 DB2 Relational Connect
  3. |新增 Microsoft SQL Server 資料來源至您的聯合伺服器中。
  4. |指定 Microsoft SQL Server 字碼頁。(僅適用於 Windows NT) |

|本章討論步驟 3 及 4。

|本章的指示可引用在 Windows NT 及 AIX 平台。 |特定平台的不同處備註於其發生的地方。

|6.6.1 新增 Microsoft SQL Server 資料來源至聯合伺服器

|在您安裝 ODBC 驅動程式及 DB2 Relational Connect 之後,使用下列步驟,將 Microsoft SQL Server 資料來源新增到您的中: |

  1. |設定環境變數 (僅 AIX)。
  2. |執行 Shell Script (僅 AIX)。
  3. |選用的:設定 DB2_DJ_COMM 環境變數。(僅適用於 AIX)
  4. |重新使用 DB2 案例 (僅 AIX)。
  5. |建立外層。
  6. |建立伺服器。
  7. |建立使用者對映。
  8. |建立表格與概略表的暱名。
  9. |選用的:獲得 ODBC 追蹤。 |

|下列各節將對這些步驟作詳細的解釋。

|6.6.1.1 步驟 1:設定環境變數 (僅 AIX)

|

|修改 db2dj.ini 檔案並發出 db2set 指令, |以設定資料來源環境變數。db2dj.ini 檔案包含資訊目的,以連接 Microsoft SQL Server 資料來源。db2set 指令會用您的設定值更新 DB2 設定檔登錄。

|在分割的資料庫系統中,您可以使用特殊案例中的所有節點之單一 db2dj.ini 檔案,或使用特殊案例中的一或多個節點之唯一的 db2dj.ini 檔案。 |未分割的資料庫系統中,每一案例僅可有一個 db2dj.ini 檔案。

|若要設定環境變數: |

  1. |編輯位在 sqllib/cf$HOME/sqllib/cfg/g 的檔案 db2dj.ini,並設定下列環境變數:
    |ODBCINI=$HOME/.odbc.ini
    |DJX_ODBC_LIBRARY_PATH=<path to the Merant driver>/lib
    |DB2ENVLIST=LIBPATH
    | 
    |

|發出 db2set 指令,用您的變更來更新 DB2 設定檔登錄。db2set 的語法,是以您的資料庫系統結構為依據。 |

|

|

|若要設定從屬站檔案庫路徑,請發出這些指令:

|db2set DB2LIBPATH=<path to the Merant client library>
|db2set DB2ENVLIST=LIBPATH

|6.6.1.2 步驟 2:執行 Shell Script (僅 AIX)

|

|djxlink.sh Shell Script 鏈結從屬站檔案庫至外層檔案庫。 |若要執行 Shell Script:

|djxlink

|6.6.1.3 步驟 3:選用的:設定 DB2_DJ_COMM 環境變數 (僅適用於 AIX)

|

|若您發現其花費過多的時間來存取 Microsoft SQL Server 資料來源, |您可以在聯合伺服器起始設定,而非在您嘗試存取資料來源時,設定 DB2_DJ_COMM 環境變數來下載外層, 如此便可增進效能。 |設定 DB2_DJ_COMM 環境變數以包括外層檔案庫,與您在第 5 步驟指定的外層相符。例如: |

|在 DB2 for Windows NT 伺服器上:
|db2set DB2_DJ_COMM=djxmssql3.dll

|在 DB2 for AIX 伺服器上:
|db2set DB2_DJ_COMM=libmssql3.a
|

|請確定等號 (=) 的兩邊都沒有空格。

|請參閱 DB2 SQL Reference,以取得有關外層常式庫名稱的詳細資訊。

|6.6.1.4 步驟 4:重新使用 DB2 案例 (僅 AIX)

|若要確定環境變數設定於程式中,請重新使用 DB2 案例。 |當您重新使用案例時,復新 DB2 案例以接受您所作的變更。 發出下列指令,重新使用 DB2 案例:

|db2stop
|db2start

|6.6.1.5 步驟 5:建立外層

|

|DB2 Universal Database 有兩種通信協定,稱為外層,您可以使用來存取 Microsoft SQL Server 資料來源。外層是一種機制,聯合伺服器用此機制來通信及擷取資料來源的資料。 |您使用的外層是以 DB2 Universal Database 正在執行的平台為依據。 |使用表 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 for Windows NT 伺服器 (使用 ODBC 3.0 驅動程式) 上使用的預設外層名稱。 若您有 DB2 for AIX 伺服器,您可以指定 MSSQLODBC3 外層名稱。

|您可以用您選擇的名稱來取代預設外層名稱。 |但是,若您這麼做,您必須包含 CREATE WRAPPER 陳述式的聯合伺服器平台之 LIBRARY 參數及外層檔案庫的名稱。 例如: |

|在 DB2 for Windows NT 伺服器上:
|CREATE WRAPPER wrapper_name LIBRARY 'djxmssql3.dll'

|其中 wrapper_name 是您想要提供給外層的名稱, |而 'djxmssql3.dll' 是常式庫名稱。

|在 DB2 for AIX 伺服器上:
|CREATE WRAPPER wrapper_name LIBRARY 'libmssql3.a'

|其中 wrapper_name 是您想要提供給外層的名稱, |而 'libdjxmssql.a' 是常式庫名稱。 |

|請參閱 DB2 SQL Reference 中的 CREATE WRAPPER 陳述式,以取得有關外層常式庫名稱的詳細資訊。

|6.6.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 Universal Database 支援 Microsoft SQL Server 版本 6.5 與 7.0。

|DJXMSSQL3
|代表您在 CREATE WRAPPER 陳述式中定義的外層名稱。

|'sqlnode'
|是系統 DSN 名稱,參照您正在存取的 Microsoft SQL Server 的版本。 |此值有區分大小寫。DB2 Universal Database 支援 Microsoft SQL Server 版本 6.5 與 7.0。

|雖然節點名稱 (系統 DSN 名稱) 是指定為 CREATE SERVER 陳述式中的選項,但此為 Microsoft SQL Server 資料來源所需的。 |若是在 Windows 上,您可以從 Windows ODBC Data Administrator 工具的「系統 DSN」標籤中取得 DSN。若是在 AIX 上,您可以從 DB2 案例擁有者起始目錄內的 .odbc.ini 檔中取得 DSN。

|請參閱 DB2 SQL Reference,以取得您可以與 CREATE WRAPPER 陳述式搭配使用的其他選項。

|'database_name'
|代表您要連接的資料庫之名稱。

|雖然資料庫名稱是指定為 CREATE SERVER 陳述式中的選項,但此為 Microsoft SQL Server 資料來源所需的。 |

|6.6.1.7 步驟 7:建立使用者對映

|若聯合伺服器中的使用者 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')

|其中: |

|db2user
|代表您用來對映使用者 ID (定義於 Microsoft SQL Server 資料來源中) 的本端使用者 ID。

|server_name
|代表您在 CREATE SERVER 陳述式中定義的伺服器名稱。

|'mssqluser'
|代表 Microsoft SQL Server 資料來源的登入 ID,您要用此來對映 db2user。此值有區分大小寫。

|'day2night'
|代表與 'mssqluser' 相關的通行碼。此值有區分大小寫。 |

|請參閱 DB2 SQL Reference,以取得您可以使用 CREATE USER MAPPING 陳述式的其他選項。

|6.6.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
|代表遵循下列格式的三部分識別字:

|data_source_server_name.remote_schema_name.remote_table_name

|建議您在的 remote_schema_nameremote_table_name 部份使用雙引號。 |

|當您建立暱名時,DB2 會嘗試存取資料來源型錄表格 (Microsoft SQL Server 參照這些表格作為系統表格)。這會測試連接到資料來源的狀態。若連線失敗,您會接收到一個錯誤訊息。

|針對您想要建立暱名的所有資料庫表格及概略表,重複此步驟。

|有關 CREATE NICKNAME 陳述式的詳細資訊,請參閱 DB2 SQL Reference。 有關一般暱名及驗證資料類型對映的詳細資訊, 請參閱 DB2 Administration Guide

|6.6.1.9 步驟 9:選用的:獲得 ODBC 追蹤

|

|若您存取資料來源時遇到問題,您可以取得 ODBC 追蹤資訊,以分析並解決這些問題。 |若要確定 ODBC 追蹤的運作正常,請使用「ODBC 資料來源管理者」提供的追蹤工具。啟動追蹤會影響系統效能,因此當您已解決問題時,應該關閉追蹤。

|6.6.2 複查 Microsoft SQL Server 字碼頁 (僅適用於 Windows NT)

|

|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 文件,以取得詳細資訊。


[ 頁面頂端 | 前一頁 | 下一頁 | 目錄 | 索引 ]