【51CTO独家特稿】DB2中联合SQL Server步骤:

1、安装DB2

2、安装IBM DataDirect ODBC驱动

3、安装关系连接器

或安装InfoSphere DB2(InfoSphere DB2是一个受限的DB2版本,它使用关系连接器连接到其它关系数据库,如SQL Server,Oracle,Sybase等),但在安装InfoSphere DB2之前,你必须安装IBM DataDirect ODBC驱动(InfoSphere DB2通常被视为IBM Webspehere Federation Server)。

安装IBM DataDirect ODBC驱动

对于DB2 9.5,从ftp://ftp.software.ibm.com/software/db2ii/downloads/odbc_driver/iiv95_odbc_linux390-fs-080802.tar.gz下载适用于zLinux的IBM DataDirect ODBC驱动。

从ftp://ftp.software.ibm.com/software/db2ii/downloads/odbc_driver/可以下载到其它*NIX for DB2 9.5或更高版本的IBM DataDirect ODBC驱动。

解压DataDirect ODBC文件的内容后,在你的zLinux上运行./odbcsetupbin安装SQL Server ODBC驱动,需要指定DataDirect ODBC驱动的安装位置。

GUI将会在你指定的位置安装DataDirect ODBC驱动,但在安装DB2关系连接器之前,需要执行许多手工操作才能正确配置到SQL Server的连接。

在你的DB2实例用户的.bashrc文件中,增加以下内容:export ODBCINI=$HOME/odbc.ini

export DJX_ODBC_LIBRARY_PATH=/opt/ibm/WSII/odbc/lib

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DJX_ODBC_LIBRARY_PATH

export LANG=en_US

调整DJX_ODBC_LIBRARY_PATH为你安装ODBC驱动的位置,修改好后注销一下重新登录以便让修改生效,也可以执行下面的source命令让修改立即生效。$ source .bashrc

在DB2实例用户的Home目录中创建一个odbc.ini文件,增加以下内容到该文件中:[ODBC Data Sources]

mssqlserver=Microsoft SQL Server

[ODBC]

Trace=0

TraceDll=/opt/ibm/WSII/odbc/lib/odbctrc.so

InstallDir=/usr/opt/ibm/WSII/odbc

quotedID=yes

[sqlserverdb]

Driver=/opt/ibm/WSII/odbc/lib/VMmsss23.so

Description=Microsoft SQL Server DriverforS390

Address=xxx.xxx.xxx.xxx,portnumber

Database=DBNAME

QuotedId=No

在使用DataDirect提供的示例程序连接到SQL Server之前,必须确保SQL Server的共享库的安装是正确的。适用于DB2 9.5的SQL Server ODBC驱动共享库如下:DataDirect 4.2

VMmsss22.so

libVMicu22.so

DataDirect 4.3

VMmsss23.so

libVMicu23.so

进入DB2实例用户的Home目录,输入ldd /opt/ibm/WSII/odbc/lib/VMmsss23.so命令,将会看到类似下面这样的输出信息:$ ldd VMmsss23.so

libpthread.so.0 => /lib64/libpthread.so.0

librt.so.1 => /lib64/librt.so.1

libVMicu23.so => /opt/ibm/WSII/odbc/lib/libVMicu23.so

libodbcinst.so => /opt/ibm/WSII/odbc/lib/libodbcinst.so

libnsl.so.1 => /lib64/libnsl.so.1

libdl.so.2 => /lib64/libdl.so.2

libc.so.6 => /lib64/libc.so.6

libstdc++.so.5 => /usr/lib64/libstdc++.so.5

libm.so.6 => /lib64/libm.so.6

libgcc_s.so.1 => /lib64/libgcc_s.so.1

/lib/ld64.so.1 (0x000002aaaa000)

你可能会遇到libVMicu23.so和libodbcinst.so不出现在输出中,如果真的这样,你需要先创建好符号连接,ldd命令应该能够解决所有依赖问题。

进入/usr/lib,输入以下命令:$ cd /usr/lib

$ ln -s /opt/ibm/WSII/odbc/lib/libodbcinst.so libodbcinst.so

$ ln -s /opt/ibm/WSII/odbc/lib/libVMicu23.so libVMicu23.so

SQL Server连接测试

进入/opt/ibm/WSII/odbc/example目录,运行./example。

指定你在$HOME/odbc.ini文件中使用的数据源名,连接到SQL Server的用户id和密码,如果你连接成功,你就可以开始下一步操作,如果./example不能连接到SQL Server,在DB2中安装关系连接器连接SQL Server之前,必须先修复这些问题。

安装InfoSphere DB2或DB2关系连接器

请注意:如果前面的步骤失败了,从DB2连接到SQL Server永远不会成功,千万不要存在侥幸心理。

在要联合其它数据源,如SQL Server或Oracle的DB2实例上,安装IBM InfoSphere DB2或在现有DB2实例上DB2关系连接器。

跟着GUI安装程序向导完成安装,在“选择安装功能”屏幕上,仅选择SQL Server数据源支持,如果你想将Oracle作为一个附加数据源,必须先安装Oracle客户端。

注意:如果你安装失败了,检查你的zLinux上是否安装了g++,可以使用which g++系统命令来检查,如果没有,应该先在zLinux上安装g++,如果你在使用SUSE Linux,可以使用YaST安装g++,在Red Hat上,你可以使用yum来安装g++。

GUI安装结束后,也会自动创建libdb2mssql3F.so库,如果GUI没有找到g++命令,创建库就会失败。

进入~/sqllib/lib64目录,你应该看到连接SQL Server要使用的主要库libdb2mssql3.so,其它两个共享库文件分别是libdb2mssql3F.so和libdb2mssql3U.so。

进入$HOME/sqllib/cfg目录,检查db2dj.ini文件的内容,如果在GUI安装过程中有些设置不当,现在你可以手工对其进行修改。$ cat db2dj.ini

DJX_ODBC_LIBRARY_PATH=/opt/ibm/WSII/odbc/lib

ODBCINI=/home/db2inst1/odbc.ini

确保DJX_ODBC_LIBRARY_PATH和ODBCINI与你在.bashrc文件中指定的项目完全匹配,你可能在想为什么同一个设置会出现在两个地方,那是因为DB22进程在连接到SQL Server时不会读取环境变量设置信息,而是使用db2dj.ini文件,如果你修改了这个文件,需要重启数据库实例$ db2stopforce

$ db2start

现在你可以开始创建SQL Server封装器了,最简单且最不容易出错的方法是使用DB2控制中心GUI工具,你可以将每一步的命令保存到文件中,以便以后需要时可直接调用。

1、首先确保DBM CFG参数被设置为FEDERATED=YES。$ db2 get dbm cfg | grep -i federate

FederatedDatabaseSystem Support           (FEDERATED) = YES

2、在客户端或服务器上启动db2cc,编目DB2系统,实例和数据库名。

A)在“联合的数据库对象”上点击右键,在右键菜单中选择“创建封装器”。

B)选择SQL Server作为数据源,它会自动选择libdb2mssql3.so库,输入封装器的名字,点击“显示SQL”,复制SQL命令。

C)当你点击“确定”时,可能要求你指定LD_LIBRARY_PATH and SHLIB的路径,我已经在.bashrc文件中指定LD_LIBRARY_PATH路径,因此可以安全地忽略,点击“取消”。

D)在“服务器定义”上点击右键,在右键菜单中选择“创建”。

E)为SQL Server指定一个名称,并指定SQL Server数据库的版本。

F)选中“设置”标签,指定DBNAME和NODE,DBNAME就是SQL Server数据库的名字,NODE是数据源的名字,也就是在$HOME/odbc.ini文件中创建的数据源名字,节点名称必须与odbc.ini文件中定义的DSN名称匹配,DBNAME必须与SQL Server数据库名匹配,点击“显示SQL”,保存命令以备将来使用。

G)在“创建别名”上点击右键,在右键菜单中选择“创建”,点击“显示”,你应该能看到你所选方案的SQL Server表,点击“显示SQL”,保存命令以备将来使用。

现在你有了SQL Server表的别名,可以在DB2中象使用自己的表一样使用SQL Server中的表了

原文名:Federation of SQL Server Data in DB2

作者:Vikram Khatri

db2 联合数据源 mysql_详解DB2中联合SQL Server数据相关推荐

  1. delimiter mysql_详解 Mysql中的delimiter定义及作用

    初学mysql时,可能不太明白delimiter的真正用途,delimiter在mysql很多地方出现,比如存储过程.触发器.函数等. 学过oracle的人,再来学mysql就会感到很奇怪,百思不得其 ...

  2. LoRa节点开发:5、代码详解LoRaWAN中的几种数据包(发送与接收数据)

    本文来源微信公众号[物联网思考] 本文主要结合LoRaNode SDK v4.4.2和LoRaWAN规范1.0.3来展开. 1.数据包类型 LoRaWAN规范中有不同的数据包,通过MType字段区分, ...

  3. ecstore mysql_详解Ecstore中的数据表结构定义文件dbschema

    任何系统的操作无非都是对数据库的各种操作的结合,而对于ecstore的数据库操作可能与其他常见项目有些不太一样.可能有新入手的朋友会尝试在数据库中直接创建表,可是发现创建之后不能使用,那是因为ecst ...

  4. ecstore mysql_详解Ecstore中的数据表结构定义文件dbschema的特殊字段 | Suvan的随性笔记...

    官方目录结构对dbschema目录的解释是: app/{$app_name}/dbschema //{$app_name}是数据库表定义文件 1 app/{$app_name}/dbschema//{ ...

  5. php pho 连接 MySQL_详解PHP中的PDO类_php技巧 - Pho

    $query = $db->query('SELECT * FROM `foods`'); $foods = $query->fetchAll(PDO::FETCH_CLASS, 'Foo ...

  6. vue 读取ajax数据,详解vue 中使用 AJAX获取数据的方法

    在VUE开发时,数据可以使用jquery和vue-resource来获取数据.在获取数据时,一定需要给一个数据初始值. 看下例: new Vue({ el:'#app', data:{data:&qu ...

  7. CentOS下DB2数据库安装过程详解

    这篇文章主要介绍了CentOS下DB2数据库安装过程详解,本文步骤详细,操作的命令也比较全 安装前请查看DB2版本和许可证说明来增加了解,先弄明白改安装什么版本,这里我用的是最新的Express-C版 ...

  8. 实例详解 DB2 排序监控和调优

    实例详解 DB2 排序监控和调优 http://automationqa.com/forum.php?mod=viewthread&tid=2882&fromuid=2

  9. php字段验证规则,详解ThinkPHP中自动验证及验证规则

    本篇文章详细介绍了thinkphp中自动验证及验证规则的方法,希望对学习thinkphp的朋友有帮助! 详解ThinkPHP中自动验证及验证规则 ThinkPHP 内置了数据对象的自动验证功能来完成模 ...

最新文章

  1. openssl工具的使用以及创建私有CA
  2. Bash Cookbook 学习笔记 【中级】
  3. STM32之通用定时器编码器模式
  4. Android 应用开发(9)---内联复杂的XML资源
  5. Docker学习总结(21)——Docke网络bridge详解
  6. Objective-C依然占C位,Swift和SwiftUI在iOS 15中的使用情况
  7. java B2B2C 多租户电子商城系统-SpringCloud动态刷新配置信息
  8. 最简单代码,适合没学编程的人玩
  9. 形式化方法(一) 逻辑部分概念梳理
  10. for linux shell 菜鸟_Linux 命令大全 | 菜鸟教程
  11. ubuntu 装机必备软件
  12. vscode下的vue文件格式化
  13. java 计算日期时间差_Java计算日期和时间差
  14. 企业如何做新闻软文发布? 软文推广和新闻源发布有何不同之处?
  15. 内嵌资源html,go 1.16 embed 实现资源文件(html, css, js等)内嵌
  16. JavaWeb购物系统
  17. c语言键盘驱动程序,c语言键盘扫描程序
  18. blender新手入门教程中文 编辑后属性选项显示
  19. java字符串是日期yyxx_Mysql 优化方案
  20. 【转载】对抗腾讯IP封杀 彩虹QQ显IP发布最新2.71

热门文章

  1. 所需依赖_包揽全球75%进口!中国为何进口天量铁矿石?如何减少对澳依赖
  2. mysql 查看连接_怎么实时查看mysql当前连接数
  3. 特征图注意力_ICLR2017 | AT_注意力引导的知识蒸馏
  4. Android界面性能优化最全总结、原理剖析
  5. ValueError: Variable conv1/weights already exists.
  6. 自己定义View学习之12/7(进度条之混合模式)
  7. 获取一个目录下的所有文件
  8. UIKit框架-高级控件Swift版本: 5.UITextView方法/属性详解
  9. goodbye cnblogs
  10. ES6——扩展运算符/三点运算符(...)