安裝與架構補充資料

新增 Oracle 資料來源至聯合系統

若要使用暱稱來存取 Oracle 資料庫:

步驟  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

  1. 編輯 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
    



    捷徑

    請參閱Oracle 字碼頁選項,取得有關 Oracle 資料來源的「國家語言支援」的相關資訊。

    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

  2. 發出 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 是案例的名稱。
    • 3db2nodes.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 陳述式中定義的外層名稱。
  • oranodeORASERVER 所在的節點名稱。從 tnsnames.ora 檔案中取得節點值。此值會區分大小寫。 圖 6說明節點選項與 tnsnames.ora 檔案之間的關係。

    雖然節點值是選用性的,但對於 Oracle 資料來源而言卻是必要的。 請參閱 SQL Reference,取得詳細的選項列示相關資訊。

    圖 6 顯示 tnsnames.ora 檔案、SYSCAT.SERVEROPTIONS 概略表及 SYSCAT.SERVERS 概略表中的資訊。

    圖 6. DB2 系統檔案及 Oracle tnsnames.ora 檔之間的關係


    DB2 系統檔與 Oracle

步驟  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 主電腦檔案。否則,您需要遠端主電腦的登錄。 請詢問您的網路管理者,決定如何架構網路。



捷徑

若要取得 Oracle 字碼頁對映的詳細資訊,請繼續閱讀Oracle 字碼頁選項

若要驗證是否順利架構聯合伺服器來存取資料來源,請跳至驗證 Oracle 資料來源的連接


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