DataStage序列文章

1 配置ODBC需要了解的基础知识

配置ODBC的步骤:

在.odbc.ini 文件里配置ODBC数据源信息

在uvodbc.config文件里配置数据源名称信息(DSN)

测试数据源

路径和文档信息:

名称说明

DataStage默认安装驱动的路径

/opt/IBM/InformationServer/Server/branded_odbc

关于ODBC配置的文档

/opt/IBM/InformationServer/Server/branded_odbc/docs

哪里配置ODBC信息

$DSHOME/.odbc.ini

哪里配置ODBC data Source name(DSN)

$DSHOME/uvodbc.config和每个DataStage项目下的uvodbc.config

1.1 说明

在$DSHOME/.odbc.ini内配置ODBC数据源信息,这里配置的信息包括驱动、服务器、用户、端口等信息,这个文件的名称和路径不是绝对的,可以在$DSHOME/dsenv 文件内的ODBCINI变量配置:

ODBCINI=$DSHOME/.odbc.ini

export ODBCINI

dsenv 是非常重要的配置文件,修改该文件必须重启Enginer生效,里面的变量信息对所有项目有效,并且可以在开发项目时引用。

在uvodbc.config文件里配置ODBC数据源名称(DSN),这里配置的信息和上面的.odbc.ini不一样,.odbc.ini文件是详细的数据源配置信息,而这里是配置DSN,可以理解为.odbc.ini里配置了数据源详细信息,而uvodbc.config文件是给项目提供的引用接口定义。

DBMSTYPE = ODBC

Oracle_30表示数据源名称,名称必须和.odbc.ini里面配置的一样。

DBMSTYPE指定该数据源的类型。

2 Oracle 数据源配置

Oracle 数据源配置方式有两种:

基于DWire Protocol Driver配置ODBC:这种方式不需要Oracle客户端软件,也不需要配置Oracle环境变量

基于TNS配置ODBC:这种方式需要配置Oracle环境变量并且必须有$ORACLE_HOME/network/admin/tnsnames.ora TNS配置文件

2.1 基于DWire Protocol Driver配置ODBC

2.1.1 配置.odbc.ini

在$DSHOME/.odbc.ini文件中找到官方提供的预配置ODBC数据源[Oracle Wire Protocol],复制该段内容,修改ODBC配置信息.

[Oracle_30]

Driver=/opt/IBM/InformationServer/Server/branded_odbc/lib/VMora24.so

Description=DWire Protocol Driver for server 30

ApplicationUsingThreads=1

ArraySize=60000

CachedCursorLimit=32

CachedDescLimit=0

CatalogIncludesSynonyms=1

CatalogOptions=0

DefaultLongDataBuffLen=1024

DescribeAtPrepare=0

EnableDescribeParam=0

EnableNcharSupport=0

EnableScrollableCursors=1

EnableStaticCursorsForLongData=0

EnableTimestampWithTimeZone=0

HostName=127.0.0.1

LocalTimeZoneOffset=

LockTimeOut=-1

LogonID=

Password=

PortNumber=1521

ProcedureRetResults=0

SID=testdb

UseCurrentSchema=1

这里Oracle_30表示数据源名称,HostName表示数据库所在的主机名,PortNumber表示数据库端口,SID表示数据库实例ID;将内容保存到.odbc.ini文件中。

2.1.2 配置uvodbc.config

编辑$DSHOME/uvodbc.config文件,增加上面在.odbc.ini文件中配置的ODBC数据源信息。

[ODBC DATA SOURCES]

DBMSTYPE = UNIVERSE

network = TCP/IP

service = uvserver

host = 127.0.0.1

DBMSTYPE = ODBC

DNS名称Oracle_30必须和.odbc.init中的一致。**注意:该文件在两个地方存在,一个在$DSHOME目录下,一个在项目的目录下,当创建新项目时,DataStage拷贝该文件到新项目目录下;DS项目运行时首先查找项目下的uvodbc.config文件,如果未找到则查找$DSHOME/uvodbc.config文件,所以编辑完成后要将该文件拷贝到项目目录下;当然这种方式只在多个项目需要访问相同的ODBC的情况下介意这么做,如果每个项目所使用的ODBC不同,那么最好的方式就是编辑项目目录下的uvodbc.config文件了。

2.1.3 测试ODBC数据源

进入DSHOME目录使用dssh工具测试数据源。

$ cd $DSHOME

$ ./dsenv

$ ./dssh

DataStage Command Language 8.5 Licensed Materials - Property of IBM

(c) Copyright IBM Corp. 1997, 2009 All Rights Reserved.

DSEngine logged on: Friday, September 25, 2015 09:07

键入LOGTO 项目名称进入项目,注意项目名称区分大小写。

>LOGTO dstest

键入DS_CONNECT命令查看该项目所有的ODBC源配置,这里你可以看到项目使用的uvodbc.config文件和刚才配置的Oracle_30数据源了。

>DS_CONNECT

Data Source information from /opt/IBM/dsprojects/dstest/uvodbc.config:

Data Source: localuv

DBMS Type: UNIVERSE

Network Type: TCP/IP

Host System: loopback 127.0.0.1

Service Name: uvserver

Data Source: Oracle_30

DBMS Type: ODBC

键入DS_CONNECT Oracle_30测试数据源,注意数据源名称区分大小写。根据提示输入数据库用户名和密码。

>DS_CONNECT Oracle_30

Enter username for connecting to 'Oracle_30' DBMS [dsadm]: dsource

Enter password for dsource:

如果没有任何的报错,那说明数据源测试成功了,并且>提示变为了数据源名称>(Oracle_30>);你可以键入sql验证数据源。

Oracle_30> select * from tab;

TNAME TABTYPE CLUSTERID

---------- ---------- ----------

DOBJ01 TABLE NULL

1 row selected

2.2 基于TNS配置ODBC

2.2.1 什么时候使用TNS配置ODBC

当GoldenGate服务器上存在Oracle服务端或客户端软件时

当数据库地址端口经常发生变化时

当多个应用程序和GoldenGate需要同时访问一个数据源时

当GoldenGate所在的服务器不能直接连接数据库需要通过TNS代理连接时

这种方式需要配置Oracle环境变量,也必须有$ORACLE_HOME/network/admin/tnsnames.ora TNS配置文件,并且GoldenGate具有读取该文件的权限。

2.2.2 在dsenv文件中配置Oracle环境

$ cd $DSHOME

$ vi dsenv

export ORACLE_HOME=/opt/oracle/product/11.2.0

export LIBPATH=$LIBPATH:$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib

export PATH=$PATH:$ORACLE_HOME/bin

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

export ORACLE_SID=testdb

export TNS_ADMIN=/opt/oracle/product/11.2.0/network/admin

配置完成后必须重启Engine使配置文件生效。

$ uv -admin -stop

$ uv -admin -start

注意:在重启Engine后,你要确认上面的变量是否在你当前会话环境中生效,否则会影响后面的测试,如果未生效可能是你的配置错误或者之前的配置与之冲突导致变量失效,请尝试重新登录会话确定。

2.2.3 在TNS文件中配置ServerName和其它信息

$ vi /opt/oracle/product/11.2.0/network/admin/tnsnames.ora

xmeta_111 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = testhost)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = xmeta)

)

)

2.2.4 在.odbc.ini文件中配置数据源信息

[Ora_remote_111]

Driver=/software/IBM/InformationServer/Server/branded_odbc/lib/VMora24.so

Description=DataDirect Oracle for remote server

ApplicationUsingThreads=1

ArraySize=60000

CachedCursorLimit=32

CachedDescLimit=0

CatalogIncludesSynonyms=1

CatalogOptions=0

DefaultLongDataBuffLen=1024

DescribeAtPrepare=0

EnableDescribeParam=0

EnableNcharSupport=0

EnableScrollableCursors=1

EnableStaticCursorsForLongData=0

EnableTimestampWithTimeZone=0

LocalTimeZoneOffset=

LockTimeOut=-1

LogonID=

Password=

ProcedureRetResults=0

ServerName=xmeta_111

UseCurrentSchema=1

这里不需要配置主机、端口信息,只需要配置ServerName为TNS文件中的serverName。

2.2.5 在uvodbc.config文件中配置数据源DSN

DBMSTYPE = ODBC

这样就可以了,再通过2.1.3 中的那样测试ODBC数据源吧。

2.2.6 可能遇到的错误

>ds_connect Ora_remote_111

Enter username for connecting to 'Ora_remote_111' DBMS [dsadm]: scott

Enter password for scott:

SQLConnect error: Status = -1 SQLState = 08001 Natcode = -1

[ODBC] [IBM(DataDirect OEM)][ODBC Oracle Wire Protocol driver][Oracle]TNS-12505: TNS:listener could not resolve SID given in connect descriptor

Network connection to Data Source 'Ora_remote_111' failed

服务端不能识辨sid,这类错误有两种原因:

TNS文件中的SID或者Service_name配置错误,请尝试在sqlplus下测试该配置的可连接性,或者使用Easy connect name method方式测试连接

.odbc.init中的数据源信息配置错误,请检查ServerName的值是否配置正确

>ds_connect Ora_remote_111

Enter username for connecting to 'Ora_remote_111' DBMS [dsadm]: scott

Enter password for scott:

SQLConnect error: Status = -1 SQLState = S1000 Natcode = 0

[ODBC] [IBM(DataDirect OEM)][ODBC Oracle Wire Protocol driver]Cannot open TNS Names file.

这个错误请检查Oracle环境变量配置和文件权限分配,通常文件具有读的权限即可。

3 MySql 数据源配置

配置的方式都是差不多的,理解了工作原理,然后根据官方提供的预配置信息配置。

配置.odbc.ini

[mysql_99]

Driver=/opt/IBM/InformationServer/Server/branded_odbc/lib/VMmysql24.so

Description=DataDirect 6.0 MySQL Wire Protocol

AlternateServers=

ApplicationUsingThreads=1

ConnectionReset=0

ConnectionRetryCount=0

ConnectionRetryDelay=3

DefaultLongDataBuffLen=1024

EnableDescribeParam=0

EncryptionMethod=0

FailoverGranularity=0

FailoverMode=0

FailoverPreconnect=0

HostName=mySqlHost

Database=mysql

PortNumber=3306

HostNameInCertificate=

InteractiveClient=0

KeyPassword=

KeyStore=

KeyStorePassword=

LoadBalanceTimeout=0

LoadBalancing=0

LoginTimeout=15

LogonID=

Password=

MaxPoolSize=100

MinPoolSize=0

Pooling=0

QueryTimeout=0

ReportCodepageConversionErrors=0

TreatBinaryAsChar=0

TrustStore=

TrustStorePassword=

ValidateServerCertificate=1

这里HostName配置主机,Database mysql数据库,PortNumber 数据库端口。

配置uvodbc.config

DBMSTYPE = ODBC

测试数据源 注意8.5版本的DataStage驱动不支持MySQL Community Servers版本,如果测试的版本是MySQL Community Servers,则会得到下面的错误信息。

>ds_connect mysql_99

Enter username for connecting to 'mysql_99' DBMS [dsadm]: root

Enter password for root:

SQLConnect error: Status = -1 SQLState = S1000 Natcode = 0

[ODBC] [IBM(DataDirect OEM)][ODBC MySQL Wire Protocol driver]Connections to MySQL Community Servers are not supported. Please contact MySQL to obtain a MySQL Enterprise or Commercial version.

4 数据源的使用

当在服务器端配置好ODBC数据源后,便可以任何连接到该服务端的客户端中使用,这有利于管理,因为不需要在客户端中做任何的操作,并且服务端的更改对于客户端来说是透明的。

在Data source中输入服务端配置的ODBC数据源名称;

在Username和Password中输入数据库用户名和密码;

单击“测试”按钮测试数据源连接,然后再进行其它开发。

5 总结

在本文中介绍了DataStage ODBC的安装路径、官方帮助文档、需要配置的文件以及配置方法和注意事项;.odbc.ini是数据源的核心文件,改文件的路径可以在dsenv配置文件中的ODBCINI变量中配置,该文件配置数据源连接的详细信息,如主机、数据库名、端口等信息。uvodbc.config文件配置数据源DSN信息,里面配置的DSN name必须和.odbc.ini的名称相同,该文件存在于项目目录下和$DSHOME目录下,默认项目首先查找和使用项目目录下的uvodbc.config文件,如果未找到则使用$DSHOME目录下uvodbc.config文件,所以使用时注意理解它们的作用和使用范围。通常配置完后建议在服务端中进行测试,然后再在客户端中开发使用,这样可以减少一些未知的错误问题。

--The end(2015-09-28)

datastage odbc mysql_DataStage 三、配置ODBC相关推荐

  1. DataStage 配置ODBC

    DataStage序列文章 1 配置ODBC需要了解的基础知识 1.1 说明 2 Oracle 数据源配置 2.1 基于DWire Protocol Driver配置ODBC 2.1.1 配置.odb ...

  2. 配置ODBC驱动连接DM8数据库

    一.ODBC介绍 ODBC提供访问不同类型的数据库的途径.结构化查询语言 SQL 是一种用来访问数据库的语言.通过使用 ODBC,应用程序能够使用相同的源代码和各种各样的数据库交互.这使得开发者不需要 ...

  3. Windows平台上达梦数据库的ODBC安装与配置

    文章目录 概述 安装包准备 安装ODBC驱动 配置ODBC数据源 概述 最近很多公司都在响应信创,需要切换到国产数据库,然而很多数据库的一些基础组件的使用都没有一个很明确的官方文档.为了避免更多的人踩 ...

  4. jdbc odbc java mysql数据库连接_Java数据库连接之配置ODBC数据源

    java使用JDBC-ODBC桥接连接SQLServer数据库需要配置ODBC数据源,配置步骤如下: 1.进入控制面板,找到管理工具 2.看到ODBC数据源,有64位和32位的,如果你的数据库是64位 ...

  5. odbc数据源的配置

    第一步:开始菜单,找到控制面板. 第二步:打开系统和安全如下图 第三步:找到管理工具打开.(有些电脑的管理工具打开控制面板就能看到,就不用操作第二步) 第四步:打开管理工具后,找到(odbc)数据源配 ...

  6. Qlikview配置ODBC连接SQL SERVER/ORACLE

    一, Qlikview配置ODBC连接SQL SERVER 1,打开ODBC数据源管理器:运行--〉ODBC 2,添加用户DSN 3,选择SQL Server Native Client 11.0, ...

  7. 达梦环境配置ODBC驱动

    达梦环境配置ODBC驱动 一.背景 达梦数据库作为国产数据库的领头羊,在数据库市场中占有着举足轻重的地位.达梦数据库是完全自主研发,拥有完整的知识产权,符合国家对国产数据库可持续发展.完全自主把控的要 ...

  8. ODBC 常见数据源配置整理

    1. 简介 1.1 ODBC和JDBC ODBC(Open Database Connectivity)是一组对数据库访问的标准API,其最大的优点是以统一的方式处理所有的数据库. JDBC(Java ...

  9. 配置ODBC数据源——找不到SA账户的解决

    SQL Server的总结还没有做完,但剩下的我想慢慢来了.今天开始打算进行学生信息管理系统的实战.不知道就是想实战了,不动手学习不踏实.打开刚从师父那儿拿到的学生信息管理系统,有点庞大,此时我的胸腔 ...

最新文章

  1. linux python脚本返回,在C/python中执行linux命令并得到返回值以及输出
  2. 测试系统存储是大端模式还是小端模式的方法
  3. Apache JMeter 记一次使用HTTP工具POST提交JSON数据进行送积分高并发压测(二)
  4. sql 把特定数据排在最前面
  5. Visual Studio 2019 首个候选发布版发布
  6. STM32工作笔记0099---Pacman常用命令
  7. 麦克纳姆轮全向移动机器人速度分解
  8. vc2013 调用大漠插件例子
  9. [管理员手册](五)Ubuntu desktop 20.04系统安装显卡驱动NVIDIA cuda pytorch向日葵sunlogin安装
  10. Remote Desktop Connection Manager (RDCMan)
  11. 怎么使用svn下载到本地
  12. 大数据单表查询mysql
  13. Manjaro为包管理器pacman和yaourt\yay 添加多线程下载
  14. python主函数调用格式_Python入门基础中怎么定义函数,函数调用,函数传递参数...
  15. 倒计时、定时器的五种方式,有这篇就够了
  16. 【纪中受难记】——Day23:受刑
  17. 使用RT-Thread Studio DIY 迷你桌面时钟(四)| OLED显示时钟和温湿度(cpp组件 + u8g2软件包)
  18. 推荐下加拿大使用的虚拟信用卡
  19. 不愧是 GitHub 上标星 100K 的 Java 手册,全程无废话,只讲重点
  20. 为什么说产业集群的转型升级离不开工业互联网平台?

热门文章

  1. WangDeLiangReview2018 - (3)学习目标
  2. JS逆向——国税总局发票查验平台
  3. 多页大文件pdf转wrod
  4. java web水晶报表_WEB开发中水晶报表的使用心得
  5. Docker(redis集群)
  6. 2022CPA审计-第一编 审计基本原理【4月27日,20天刷完审计】【题完-人麻-没学会系列】
  7. 用Tkinter打造自己的Python IDE开发工具(5)利用HP_tka模块设计自己的中文代码编辑器
  8. 等保-安全计算环境-安全审计-windows
  9. 电影小程序微信小程序项目源码
  10. 卓越网的kindle paperwhite