分类: Linux

最近,做了几个ODI项目的部署,发现ODI agent所在的位置对整个E-LT工作的影响还是比较大的,根据Oracle的官方说法,agent一般需要部署在目标端的数据库服务器上,或者repository数据库服务器上(如果repository直接采用目标服务器就更简单了),但在实际的使用中,建议尽量还是将agent部署在目标端所在的服务器上。

一、agent的分类

在ODI中,有三类agent,一是/bin目录下直接运行agent.sh或agent.bat,该类agent只能被动调用。

二是/bin目录下的agentscheduler.sh/agentscheduler.bat,从名字可以看出,它可以自动执行计划好的工作,第三类是designer.bat设计界面,该界面在调试时可以自己作为一个agent来运行。其中第一类和第三类agent不需要修改任何东西。第一类直接运行agent.sh/agent.bat就可以了,第三类什么都不用起,只是在测试interface或者package时才会用到。

二、agent不同部署方式带来的区别

如上图所示,如果agent部署在repository(以下简称元数据服务器)上,而元数据服务器又和目标数据库不在一个服务器上,那么命令的流向(途中红色线)为:agent首先登录到源数据库,抽取数据,取到元数据库所在的服务器,然后agent再登录到目标服务器,将数据加载到目标数据库。数据的流向为:源数据库到元数据服务器到目标数据库。

如果我们将agent部署在目标服务器,如下图所示,此时,数据流会从源直接流向目标,agent在目标端可以利用目标端数据库的内置客户端工具直接将数据加载到数据库,从而避开JDBC调用。

Agent说白了就是一个java小程序,既可以通过jdbc driver作为源和目标数据库的客户端登录到数据库服务器操作,也可以调用本地操作系统的命令,因此odi在数据的E-LT过程中,最简单但效率最低的方法是完全采用JDBC方式抽取、加载数据。最快的方式是采用数据库的内置客户端命令抽取加载数据,如DB2的load,sqlserver的bcp,oracle的sqlloader。当然要调用数据库客户端,agent所在的机器必须有相应数据库的客户端软件。下面是几个agent部署的例子:

  1. 1.       AS400上文件加载到DB2:

具体解释请参见上面的英文,这是在oracle openworld的pdf里面截出来的。

  1. 2.       远程文件入库:

此时agent应该安装在文件所在的服务器,而且该机器需要安装目标端数据库的客户端。

  1. 3.       远程同构数据库,该方式下,数据一般是在数据库内部流动,如oracle的dblink,sqlserver的linked server,sybase的CIS,agent的位置无所谓,但仍建议在目标端。

  1. 4.       远程异构数据库集成,此时agent的配置是比较讲究的,如果数据的抽取和加载都采用数据库的内置客户端,那么如果agent在源数据库端,则源数据库端需要安装目标数据库的客户端,反之亦然。当然ODI内置了一个基于JDBC数据库抽取工具sqlunload,如果目标端是生产系统,客户不允许部署任何东西,建议采用该工具,效率还是不错的。

三、如何安装agent

ODI的agent安装比较简单:

  1. 1.       将安装ODI机器设计界面的服务器上ODI目录下/bin,/drivers和/lib目录直接拷贝到目标或者源服务器上。
  2. 2.       在服务器上如果没有jdk1.5或以上,建议安装jdk1.5或以上。
  3. 3.       指定ODI_JAVA_HOME环境变量,或者修改odiparams.bat/odiparams.sh到JDK的安装目录。
  4. 4.       如果不需要schedule的工作,直接执行 /bin目录下的agent.sh/agent.bat即可,该程序默认端口为20910,如果需要指定别的端口,则运行agent.bat –name= -port=
  5. 5.       如果需要运行schedule的工作,则首先需要修改odiparams.bat/odiparams.sh文件,把其中连接master repository的一段修改成您自己的driver和url,如下所示:

JDBC driver to access the Master Repository:

set ODI_SECU_DRIVER=oracle.jdbc.driver.OracleDriver

JDBC URL to access the Master Repository:

set ODI_SECU_URL=jdbc:oracle:thin:@1.128.5.52:1521:ORADB

Database Username to access the Master Repository:

set ODI_SECU_USER=odi1013m

Database Password to access the Master Repository:

set ODI_SECU_ENCODED_PASS=b9yHYSNunqZvoreC6aoF0Vhef

Name of the Work Repository:

set ODI_SECU_WORK_REP=WORKREP1

ODI Username for ODI Security:

set ODI_USER=SUPERVISOR

ODI Password for ODI Security:

set ODI_ENCODED_PASS=LELKIELGLJMDLKMGHEHJDBGBGFDGGH

特别注意这是链接master repository的信息,和您启动designer登录时的信息一模一样,您可以从designer的登录界面里面copy过来。

这些参数中有两个加密过的密码,具体的加密方法为,到您刚才copy过来的/bin目录下,运行 ./agent.sh encode  <您的密码>,然后将加密过的字符copy到odiparams.sh中相应的位置即可。

另外要特别注意的是copy的/drivers目录下是连接所有源、目标以及元数据库服务器的jdbc driver,如果您的整个架构中加入了新的数据源,千万别忘了把相应的jdbc文件copy到所有agent所在服务器的drivers目录下。

在一个ODI生产环境中,可以根据需要配置多个agent,不一定是一个。

关于ODI agent的配置部署的更多相关文章

  1. 【WCF全析(二)】--服务配置部署详解

            上篇文章主要讨论了WCF的基本内容,其中包括WCF的术语.创建方法及WCF在开发过程中使用的意义,它不仅能够提供程序之间的通信,而且还能提供程序和数据间的通信,WCF提供了多样化的程序 ...

  2. aways on 配置部署(二)——配置域

    前一篇中我们基本了解了配置aways on的三个步骤,本篇就具体讲解如何配置域. DNS的配置 上篇可以看到三台服务器的ip地址,网关,DNS等配置,其中sqlDNS服务器的dns为自己的ip地址,s ...

  3. zabbix3.0 agent安装配置

    zabbix3.0 agent安装配置wget http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-agent-3.0.0-2.el6.x86 ...

  4. 3-3 Hadoop集群完全分布式配置部署

    Hadoop集群完全分布式配置部署 下面的部署步骤,除非说明是在哪个服务器上操作,否则默认为在所有服务器上都要操作.为了方便,使用root用户. 1.准备工作 1.1 centOS6服务器3台 手动指 ...

  5. 3-2 Hadoop集群伪分布模式配置部署

    Hadoop伪分布模式配置部署 一.实验介绍 1.1 实验内容 hadoop配置文件介绍及修改 hdfs格式化 启动hadoop进程,验证安装 1.2 实验知识点 hadoop核心配置文件 文件系统的 ...

  6. zabbix agent监控主机配置

    zabbix agent监控主机配置 环境说明 系统版本    CentOS 7.2 x86_64 软件版本    zabbix 3.0.18   1.监控zabbix服务器端 1.1 安装zabbi ...

  7. Zabbix agent端 配置

    Zabbix agent端 配置 agent端环境 zabbix-client:RHEL8 IP:192.168.121.11 一.安装 Zabbix 源 [root@zabbix-client ~] ...

  8. SQLServer 复制和数据库镜像 具体配置部署

    SQLserver 能够把镜像和复制同一时候部署,结合了两方的高可用性.能够使数据库得到更好的高可用性和容灾的保证. 关于镜像:f=255&MSPPError=-2147217396" ...

  9. Oracle 12c(12.1.0.5)OEM server agent 安装配置

    注意: 此文档为生产上操作文档,省略了IP,oracle用户server,agent 端至少需要sudo,ping,ssh,创建目录权限. 一.安装要求 1.1. 系统情况一览 IP 数据库 OEM ...

随机推荐

  1. spark JavaDirectKafkaWordCount 例子分析

    spark  JavaDirectKafkaWordCount 例子分析: 1. KafkaUtils.createDirectStream( jssc, String.class, String.c ...

  2. Docker终极指南:为什么Docker能做这么多事

    Docker终极指南:为什么Docker能做这么多事 http://www.aboutyun.com/thread-11499-1-1.html

  3. BZOJ 1564: [NOI2009]二叉查找树( dp )

    树的中序遍历是唯一的. 按照数据值处理出中序遍历后, dp(l, r, v)表示[l, r]组成的树, 树的所有节点的权值≥v的最小代价(离散化权值). 枚举m为根(p表示访问频率): 修改m的权值 ...

  4. git工作区和暂存区

    工作区(Working Directory) 就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区: 版本库(Repository) 工作区有一个隐藏目录.git,这个不算工作区, ...

  5. Magnolia-CMS安装配置

    Magnolia-CMS安装配置 Magnolia-CMS安装配置 介绍:Magnolia 是一个开源基于Java的Web内容管理系统(CMS),构建在Java内容知识库标准(JSR-170).它适合 ...

  6. windows下安装NodeJs

    1.官网(//nodejs.org/en/)下载系统匹配的文件 2.双击安装,完成后发现nodejs文件夹下面有npm, 直接用npm安装其他环境既可 3.如果配置了环境变量,直接Win+R后CMD调 ...

  7. Three.js基础

    Three.js基础探寻一 Three.js基础探寻一   1.webGL 一种网络标准,定义了一些较底层的图形接口. 2.Three.js 一个3Djs库,webGL开源框架中比较优秀的一个.除了w ...

  8. FLASH MAGIC LPC ISP下载方式说明

    硬件:EASYARM2131 开发板软件:FLASH MAGIC     下载地址:http://www.flashmagictool.com/程序:Demo2131.hex LPC的ISP下载方式, ...

  9. mysql 插入前 锁表问题

    $dbh = DBI->connect("dbi:mysql:database=$db_name;host=$ip;port=3306",$user,$passwd,{ Ra ...

  10. POJ——字符串插入

    2:字符串插入 查看 提交 统计 提问 总时间限制:  1000ms  内存限制:  65536kB 描述 有两个字符串str和substr,str的字符个数不超过10,substr的字符个数为3.( ...