首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 CREATE SERVER 語法詳解:DRDA 包裝器遠端伺服器定義實戰

     編輯:DB2 教學

CREATE SERVER 核心角色

在 DB2 Federation (同聯邦) 架構中,CREATE SERVER 定義**遠端資料源伺服器的連接端點**,關聯 Wrapper (通訊協議庫) 與認證資訊,供後續 CREATE NICKNAME 映射遠端物件。

完整語法


CREATE SERVER server_name
[ TYPE server_type ]
[ VERSION { version_string | 'version_string' } ]
[ WRAPPER wrapper_name ]
[ AUTHORIZATION "auth_id" PASSWORD "password" ]
[ OPTIONS ( option_name 'value' [, ...] ) ]

參數詳細解析

參數必要性說明
server_name是本地唯一伺服器名稱 (如 FP, ORA_SRV)。
TYPE建議遠端資料源類型/OS:DB2/LINUX, DB2/WINDOWS, DB2/ZOS, ORACLE, MSSQLSERVER 等。優化器用於推斷能力。
VERSION建議遠端版本 (如 '11.5', '12c')。影響功能相容性判斷 (如謂詞下推)。
WRAPPER是關聯 CREATE WRAPPER 定義的包裝器名 (如 DRDA, NET8, MSSQLODBC)。
AUTHORIZATION / PASSWORD選填遠端連接預設認證。可被 CREATE USER MAPPING 覆蓋。區分大小寫需雙引號。
OPTIONS視 WrapperWrapper 專屬選項。DRDA 必填 DBNAME 'remote_db_alias' (遠端資料庫別名,需本地編目)。

實戰範例:DB2 連接 DB2 (DRDA Wrapper)

1. 建立 DRDA Wrapper (一次性)


-- Linux/AIX
CREATE WRAPPER DRDA LIBRARY 'libdb2drda.a';
-- Windows
CREATE WRAPPER DRDA LIBRARY 'db2drda.dll';

2. 完整 CREATE SERVER 範例


CREATE SERVER DB2SERVER
TYPE DB2/LINUX
VERSION '11.5'
WRAPPER DRDA
AUTHORIZATION "remote_user"
PASSWORD "remote_pwd"
OPTIONS (
  DBNAME 'REMOTE_DB_ALIAS',      -- 必填: 遠端資料庫別名 (本地已 CATALOG)
  NODE 'REMOTE_NODE',            -- 可選: 遠端節點名 (若 DBNAME 未編目節點)
  PUSHDOWN 'Y',                  -- 可選: 謂詞下推開關 (預設 Y)
  TIMEFORMAT 'Y',                -- 可選: 日期時間格式轉換
  VARCHAR_NO_TRAIL_BLANKS 'Y'    -- 可選: VARCHAR 尾部空白處理
);

3. 後續步驟 (完整鏈路)


-- 用戶映射 (覆蓋 SERVER 級預設認證)
CREATE USER MAPPING FOR "local_user" SERVER "DB2SERVER"
OPTIONS (REMOTE_AUTHID 'remote_user', REMOTE_PASSWORD 'remote_pwd');

-- 別名映射遠端表
CREATE NICKNAME LOCAL_EMP FOR "DB2SERVER"."REMOTE_SCHEMA"."EMPLOYEE";

-- 查詢驗證
SELECT * FROM LOCAL_EMP WHERE WORKDEPT = 'A00';

異構資料源關鍵差異

目標資料源WrapperLibrarySERVER TYPE關鍵 OPTIONS
DB2 (LUW/zOS)DRDAlibdb2drda.a / db2drda.dllDB2/LINUX, DB2/ZOSDBNAME (必填)
OracleNET8libdb2net8.a / db2net8.dllORACLENODE (TNS 服務名)
Microsoft SQL ServerMSSQLODBClibdb2mssqlodbc.a / db2mssqlodbc.dllMSSQLSERVERNODE (DSN), DBNAME
InformixINFORMIXlibdb2informix.aINFORMIXNODE, DBNAME
ODBC 通用ODBClibdb2odbc.a / db2odbc.dllODBCNODE (DSN)

常見問題排查

  1. SQL1101N:DBNAME 未在本地 CATALOG DATABASE / CATALOG TCPIP NODE。
  2. SQL30081N:網路不通、防火牆、埠錯誤、主機名解析失敗。
  3. Wrapper Library 載入失敗:32/64 位不匹配、Library 路徑不在 LIBPATH/PATH、缺少依賴庫 (如 Oracle Client)。
  4. 謂詞未下推:檢查 PUSHDOWN 選項、遠端版本支援度、統計資訊是否收集 (NNSTAT)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved