步驟 1.
| 參考 Oracle 提供的文件,在 DB2 聯合伺服器上安裝及架構 Oracle 從屬站軟體。
您可以使用 SQL*Net 或 Net8,存取 Oracle 版本 7 及 Oracle 版本 8 資料來源。
對於 UNIX 平台上執行的聯合伺服器之建議事項:
| 安裝 Oracle 從屬站軟體期間,要求 SQL*Net 或 Net8 的重新鏈結。
|
|
步驟 2.
| 修改 DB2DJ.ini 檔,並發出 db2set
指令,設定資料來源環境變數。 db2set 指令使用您的設定值更新 DB2
設定檔登記。
DB2DJ.ini 檔案包含聯合伺服器上已安裝之 Oracle 從屬站軟體的架構資訊。
在分段的資料庫系統中, 您可以在特定的案例中對所有節點使用單一 DB2DJ.ini
檔, 或在特定案例中對一或多個節點使用唯一的 DB2DJ.ini 檔。
在非分段的資料庫系統中,每一個案例只能有一個 DB2DJ.ini
檔。

| 如果您的架構可以接受 DB2DJ.ini 中的預設設定,則請繼續執行2。
|
- 編輯 DB2DJ.ini 檔,其位於 sqllib/cfg
中,並設定下列環境變數:
ORACLE_HOME
|
將 ORACLE_HOME 環境變數設為 Oracle 起始目錄;例如:
ORACLE_HOME=oracle_home_directory
SQL*Net 及 Net8 需要在啟動聯合案例之前,先設定此變數。
若變更此變數,則必須停止聯合案例,再重新啟動,新的 ORACLE_HOME 值才能生效。
即使聯合案例的一位使用者設定了 ORACLE_HOME
環境變數,聯合案例也不會使用它。因為聯合案例只使用您在 DB2 設定檔登記中設定的
ORACLE_HOME 值。
| ORACLE_BASE
|
對於 UNIX 版本上執行的聯合伺服器而言,若您於安裝 Oracle 從屬站軟體期間設定
ORACLE_BASE 變數,也應該在聯合伺服器上設定 ORACLE_BASE 環境變數:
ORACLE_BASE=oracle_home_directory
| ORA_NLS
|
對於在 UNIX 版本上執行的聯合伺服器而言,若將會存取 Oracle 7.2
或更新版本的資料來源,請設定 ORA_NLS 環境變數:
ORA_NLS=oracle_home_directory/ocommon/nls/admin/data
| TNS_ADMIN
|
如果 SQL*Net 或 Net8 tnsnames.ora
檔位於預設的搜尋路徑外,您必須設定 TNS_ADMIN
環境變數,以指定tnsnames.ora 檔的位置;例如:
TNS_ADMIN=x:\path\tnsnames.ora
Windows 伺服器:
| 此檔案的預設位置,視所使用的從屬站軟體而定:
- 若使用 SQL*Net,tnsnames.ora 位於
%ORACLE_HOME%\NETWORK\ADMIN 目錄。
- 若使用 Net8,tnsnames.ora 位於 %ORACLE_HOME%\NET8\ADMIN
目錄。
| UNIX 伺服器:
| 此檔案的預設位置是 $ORACLE_HOME/admin/util/network
|
|
- 發出 db2set 指令,使用您的變更來更新 DB2
設定檔登記。
如果您在非分段的資料庫系統中使用的是此 DB2DJ.ini 檔,或如果您要此
DB2DJ.ini 檔中的值僅適用於現行的節點,請發出:
db2set DB2_DJ_INI = sqllib/cfg/db2dj.ini
如果您在分段的資料庫系統中使用此 DB2DJ.ini 檔,且您要此
DB2DJ.ini 檔中的值,適用於此案例中的所有節點,請發出:
db2set -g DB2_DJ_INI = sqllib/cfg/db2dj.ini
如果您是在分段的資料庫系統中使用此 DB2DJ.ini 檔,且您要此
DB2DJ.ini 檔中的值適用於特定節點,請發出:
db2set -i INSTANCEX 3 DB2_DJ_INI = sqllib/cfg/node3.ini
其中:
- INSTANCEX 是案例的名稱。
- 3 是 db2nodes.cfg 檔案中列示的節點號碼。
- node3.ini 是修改過及更名過的 DB2DJ.ini 檔案。
|
步驟 3.
| 對於要架構通信的每一個 Oracle 伺服器,確定已更新 SQL*Net 或 Net8
tnsnames.ora 檔案。
在 tnsnames.ora 檔案內,SID 是 Oracle 案例的名稱,HOST 是 Oracle
伺服器所在的主電腦名稱。
|
步驟 4.
| 重複使用 DB2 案例:
Windows 伺服器:
|
NET STOP instance_name
NET START instance_name
| UNIX 伺服器:
|
db2stop
db2start
|
|
步驟 5.
| CREATE WRAPPER 陳述式可用來定義外層陳述式,以用來存取 Oracle
資料來源。外層是聯合伺服器所用的機制,用來與資料來源進行通信,並擷取資料。
下列範例顯示 CREATE WRAPPER 陳述式:
CREATE WRAPPER SQLNET
其中 SQLNET 是外層模組的預設名稱,使用於 Oracle 的 SQL*Net
從屬站軟體。 若使用 Oracle 的 Net8 從屬站軟體,請使用 NET8。
您可以將預設名稱取代成您所選擇的名稱;不過,一旦如此,您必須包括 LIBRARY
參數及 DB2 伺服器平台的外層檔案庫名稱。請參閱 SQL Reference,取得外層檔案庫名稱的相關資訊。
|
步驟 6.
| 可選用的:設定 DB2_DJ_COMM
環境變數來包括外層檔案庫,該檔案庫對應於前一個步驟中建立的外層模組;例如:
db2set DB2_DJ_COMM = libsqlnet.a
DB2_DJ_COMM 環境變數控制著是否於聯合伺服器起始設定時載入外層模組,
這可於第一次存取 Oracle 資料來源時改善效能。 請參閱 SQL Reference,取得外層檔案庫名稱的相關資訊。
|
步驟 7.
| CREATE SERVER 陳述式可用來定義每一個要架構通信的 Oracle 伺服器;例如:
CREATE SERVER ORASERVER TYPE ORACLE VERSION 7.2 WRAPPER SQLNET
OPTIONS (NODE "oranode")
其中:
- ORASERVER 是您指定給 Oracle 伺服器的名稱。此名稱必須是唯一的。
- ORACLE 是您要架構存取的資料來源類型。
- 7.2 是您所存取的 Oracle 版本。
- SQLNET 是您在 CREATE WRAPPER 陳述式中定義的外層名稱。
- oranode 是 ORASERVER 所在的節點名稱。從
tnsnames.ora 檔案中取得節點值。此值會區分大小寫。 圖 6說明節點選項與 tnsnames.ora 檔案之間的關係。
雖然節點值是選用性的,但對於 Oracle 資料來源而言卻是必要的。 請參閱
SQL Reference,取得詳細的選項列示相關資訊。
圖 6 顯示 tnsnames.ora 檔案、SYSCAT.SERVEROPTIONS
概略表及 SYSCAT.SERVERS 概略表中的資訊。
圖 6. DB2 系統檔案及 Oracle tnsnames.ora 檔之間的關係
|
步驟 8.
| 若聯合伺服器的使用者 ID 或通行碼不同於 Oracle 資料來源的使用者 ID
或通行碼,請使用 CREATE USER MAPPING 陳述式,將本端使用者 ID 對映至 Oracle
資料來源上定義的使用者 ID 及通行碼;例如:
CREATE USER MAPPING FOR DB2USER SERVER ORASERVER
OPTIONS ( REMOTE_AUTHID 'orauser', REMOTE_PASSWORD "dayl1te")
其中:
- DB2USER 是本端使用者 ID,供您對映至 Oracle
資料來源上定義的使用者 ID。
- ORASERVER 是您在 CREATE SERVER 陳述式中定義的 Oracle
資料來源名稱。
- orauser 是您將 DB2USER 對映至 Oracle
資料來源上的使用者 ID。此值會區分大小寫。
限制:
| Oracle 使用者 ID (在 Oracle 資料來源上,不是在 DB2 聯合伺服器上) 必須透過
Oracle create user 指令與 'identified by'
子句來建立,而不是透過 'identified externally' 子句來建立。
|
- dayl1te 是與 "orauser" 有關的通行碼。
此值會區分大小寫。
|
步驟 9.
| CREATE NICKNAME 陳述式可用來指定暱稱給 Oracle
資料來源上的概略表或表格。查詢 Oracle 資料來源時,將使用此暱稱。下列範例顯示
CREATE NICKNAME陳述式:
CREATE NICKNAME ORASALES FOR ORASERVER.SALESDATA.MIDWEST
其中:
- ORASALES 是 Oracle 表格或概略表的唯一暱稱。
- ORASERVER.SALESDATA.MIDWEST
是分成三部份的識別字,格式為:
data_source_name.remote_schema_name.remote_table_name
請參閱 SQL Reference,取得 CREATE NICKNAME 陳述式的相關資訊。
請參閱 Administration Guide,取得有關暱名的一般相關資訊。
|
步驟 10.
| 對於您要建立暱稱的所有資料庫物件,重複上一個步驟。
|
步驟 11.
| 對於tnsnames.ora 檔案中 DESCRIPTION 區段的每一個
HOST,可視需要更新 UNIX 伺服器中的 /etc/hosts 檔, 及 Windows
伺服器中的 x:\winnt\system32\drivers\etc\hosts 檔。
您是否必須更新此檔案,須視 TCP/IP 在您網路中的架構而定。 對於
tnsnames.ora 檔案 (範例中是 "oranode") 中 DESCRIPTION
區段所指定的遠端主電腦名稱,網路的部分必須將此名稱轉換成位址。
如果您的網路有一個名稱伺服器可以辨識主電腦名稱,您就不需要更新 TCP/IP
主電腦檔案。否則,您需要遠端主電腦的登錄。
請詢問您的網路管理者,決定如何架構網路。
|