DATASTAGE日常运维手册.docx
《DATASTAGE日常运维手册.docx》由会员分享,可在线阅读,更多相关《DATASTAGE日常运维手册.docx(33页珍藏版)》请在冰豆网上搜索。
DATASTAGE日常运维手册
DATASTAGE日常运维手册
项目名称:
DATASTAGE运维
编制时间:
2015年11月
修改记录
编号
日期
描述
版本
作者
审核
发布日期
本文档中所包含的信息,如无中国建设银行的书面许可,任何人都无权复制或利用。
Copyright2011byChinaConstructionBank
第1章Datastage介绍
1.1产品概述
DataStage企业版是AscentialSoftware公司所有企业整合系列产品中关键产品。
企业版支持大容量数据的收集、整合和转换,数据从简单结构到很复杂的结构。
基于高可扩展性的软件架购,企业版使得企业能够通过高性能来解决大部分业务问题,并行处理大容量数据。
强大的企业元数据管理能力使得可以在数据整合生命周期中在所有工具中共享和使用工具。
DataStage企业版发布了四个核心功能来成功实施企业数据整合:
1)先进的开发和简单化的维护;
2)企业级别的开发、监测和管理;
3)在吞吐量和性能方面提供了无限制的高扩展的体系架构;
4)端对端的企业级元数据管理。
DataStage企业版提供了全面的功能去最优化用户在建立、升级和管理数据整合架构时的速度、灵活性和效率。
DataStage企业版增强的功能减少了学习的周期、简单化了管理和优化了开发资源的使用,减少了数据整合应用的开发和维护周期。
结果,DataStage企业版使得企业能够花更少的时间开发他们的整合应用,更多的时间是不断的从中受益。
1.2基础架构
1.3客户档介绍
用户通过各个客户端工具访问DataStage企业版的开发、配置和维护功能。
这些工具包括:
Designer:
用来建立和编辑DataStage作业和表的定义。
Designer中的“JobSequencer”控制作业的执行,其他作业成功完成(或失败,等)的条件。
Administrator:
用来执行管理任务,如建立DataStage用户、建立和删除工程并且建立清洗标准。
Manager:
用来编辑管理用户工程的DataStage资料库。
Director:
用来验证、时序安排、运行和监测企业版作业。
第2章日常操作
2.1登录客户端
2.1.1登录DatastageAdministrator客户机
点击图标
选择需要登录的服务器,输入用户名,密码登录
进去后点击项目,可进行项目增加,删除,设置项目属性
2.1.2登录DatastageDesigner客户机
点击图标
选择需要登录的域,输入用户名,密码,选择需要登录的项目
登录成功:
2.1.3登录DatastageDirector客户机
点击图标
选择需要登录的域,输入用户名,密码,选择需要登录的项目
登录成功:
2.2启停服务端
以dsadm用户进入,执行以下命令:
1)Server启动命令:
$HOMEDIR/uv–admin-start
注意:
启动前,需要查看端口是否被释放,通过‘netstat–afinet|grepds’查看,如果有连接,则需要等待操作系统自动释放后在启动服务。
2)Server停止命令:
$HOMEDIR/uv–admin/stop
注意:
停止前最好确保没有Client连接,可以通过‘onstat–a|grepds’查看,是否还存在Client连接,否则要通知相应登录的client端彻底退出。
2.3Job编译
登录DatastageDesigner客户机,参见,打开欲编译的Job,具体Job编译方法有两种:
1)选择菜单栏的【文件】->【编译(M)】,快捷键为F7。
2)点击工具栏的编译图标
。
2.4Job运行
DatastageJob运行有两种方式:
一种在Designer中,一种在Director中。
1)登录Designer客户机,打开欲运行的Job,选择菜单栏的【文件】->【运行(R)】,快捷键为Ctrl+F5或者点击工具栏的运行图标
。
2)登录Director客户机,选中欲运行的作业,选择菜单栏的【作业(J)】->【立即运行(N)】,或者点击工具栏的立即运行图标
。
2.5监视作业
登录Director客户机,选中欲监视的作业,右键选择【监视】,可以查看作业的运行情况。
如下图所示:
2.6查看日志
登录Director客户机,选中欲查看日志的作业,右键选择【查看日志】
出现:
2.7作业解锁
2.7.1方法1
如遇到断网等一些情况可能导致作业被某一锁定,从而无法对作业进行修改。
解锁方法:
在浏览器输入Server端IP地址跟端口,如,
出现如下界面:
输入用户名,密码,登录后选择
【管理】->【会话管理】->【活动会话】,对那个被锁定作业的会话,选择【断开链接】
2.7.2方法2
1用管理员用户登录DataStageAdministrator
2打开对应PROJECT的【命令(M)】
3执行 查看Locks
4通过最后一列itemid找到被锁的对应的作业名
5执行下面命令解锁
UNLOCKUSERUsernoALL
其中username为所列出的信息中对应的Userno。
2.8Job导入
登录Designer客户机,选择菜单栏的【导入(I)】->【Datastage组件(C)】,选择所需导入的dsx文件,界面如下:
2.9Job导出
登录Designer客户机,导出DatastageJob有两种方法:
(1)选择菜单栏的【导出(X)】->【Datastage组件(C)】,界面如下:
点击添加按钮,选择所需的导出的DatastageJob,在要导出的作业组件一般选择“导出不带可执行文件的作业设计”,在导出到文件中选择本地的保存路径跟文件名。
(2)在所需导出的Job上右键单击,在弹出菜单中选择【导出(X)】,在如上界面中的导出到文件选择本地的保存路径跟文件名。
2.10数据库表定义导入datastage
登录Designer客户机,选择菜单栏的【导入(I)】->【表定义(T)】->【插件元数据定义(M)】
选择表定义所在的数据库,输入用户名,密码
选择【导入(I)】
第3章Datastage配置
3.1常见目录说明
1)主机下发数据目录:
/appdata/DATA#DATE
2)Datastage转码生成公共数据集目录:
/appdata/DSDATA/$DATE/
3)DataStage的配置目录,/usr/datastage/InformationServer/Configurations,其下有其配置文件,可以设置运行结点数,Dataset数据文件目录,Dataset日志文件目录。
{
node"node1"
{
fastname"T219N2V3"
pools""
resourcedisk"/appdata/DSDATA/DATASET"{pools""}
resourcescratchdisk"/appdata/DSDATA/SCRATCH"{pools""}
}
node"node2"
{
fastname"T219N2V3"
pools""
resourcedisk"/appdata/DSDATA/DATASET"{pools""}
resourcescratchdisk"/appdata/DSDATA/SCRATCH"{pools""}
}
}
Dataset数据文件目录:
resourcedisk"/appdata/DSDATA/DATASET"
Dataset日志文件目录:
resourcescratchdisk"/appdata/DSDATA/SCRATCH"
4)DataStage的引擎所在目录,/usr/datastage/InformationServer/DSEngine,其下有bin,lib等,其中include里面有个很有用,定了很多错误,遇到错误,可以到文件里面找,不过这里只能找到常见错误,一些unexpectederror无法在里面找到错误原因。
3.2DataStageAdministrator配置
登录Administrator客户机,选择【项目】标签,选择要配置的project,在General->Enviroment…中
1.在General类型下:
TMPDIR=XXX(将其指向一个相对较大的目录,不填写就是指缺省的/tmp目录,此处需要讨论)。
2.在Parallel类型下:
APT_CONFIG_FILE,配置文件及其运行节点数,其配置文件为:
/usr/datastage/InformationServer/Configurations/,这里需要检查一下指向的内容是否正确。
具体详见中DataStage的配置目录。
APT_STRING_PADCHAR=(缺省值是0x0,我们需要填写一个空格)
3.在Parallel->OperatorSpecific类型下
APT_COPY_TRANSFORM_OPERATOR设置为True,在做多结点运行时需要设置。
4.在UserDefined类型下:
APT_IMPEXP_ALLOW_ZERO_LENGTH_FIXED_NULL设置为1。
(如果目前数据统一为定长无分隔符,或者说不要设置定长的Null值,就不需要设置)。
第4章附录:
常见问题FAQ
4.1SQLLoader导入数据时候报错
问题描述:
通过oraclestage,把文本数据写到数据库时候报错:
SQL*Loader-925:
Errorwhileuldlpim:
OCIStmtExecute;SQL*Loader-2026:
theloadwasabortedbecauseSQLLoadercannotcontinue.实际上数据是装入成功了。
问题解决:
这个问题的原因是客户端和服务器端的版本不一致,装了和服务器一样版本的client后就可以了。
问题分类:
系统环境
问题详细描述:
ORA_S_CRD_CICIFADR,0:
SQL*Loader-925:
Errorwhileuldlpim:
OCIStmtExecute
ORA_S_CRD_CICIFADR,0:
SQL*Loader-2026:
theloadwasabortedbecauseSQLLoadercannotcontinue.
ORA_S_CRD_CICIFADR,0:
Thecalltosqlldrfailed;thereturncode=256;
ORA_S_CRD_CICIFADR,1:
SQL*Loader:
Release10.2.0.-ProductiononWedApr1119:
31:
092007
Copyright(c)1982,2005,Oracle.Allrightsreserved.
CharacterSetUTF8specifiedforallinput.
Fileprocessingoptionstring:
"FIX363"
DiscardFile:
nonespecified
(Allowalldiscards)
Numbertoload:
ALL
Numbertoskip:
0
Errorsallowed:
50
Continuation:
nonespecified
Pathused:
Direct-withparalleloption.
TableS_CRD_CICIFADR,loadedfromeverylogicalrecord.
Insertoptionineffectforthistable:
APPEND
ColumnNamePositionLenTermEnclDatatype
--------------------------------------------------------------------------
CI_CUST_NO1:
4040CHARACTER
NULLif1:
40=BLANKS
CIADR_LL41:
466PACKEDDECIMAL(10,0)
NULLif41:
46=0X000000000000(character'')
CI_ADDR_COD47:
526CHARACTER
NULLif47:
52=BLANKS
CIADR_DB_TIMESTAMP53:
8634CHARACTER
NULLif53:
86=BLANKS
CI_ADDR87:
246160CHARACTER
NULLif87:
246=BLANKS
CI_POSTCOD247:
25812CHARACTER
NULLif247:
258=BLANKS
CI_TEL_NO259:
29840CHARACTER
NULLif259:
298=BLANKS
FILLER299:
36264CHARACTER
NULLif299:
362=BLANKS
SQL*Loader-925:
Errorwhileuldlpim:
OCIStmtExecute
ORA-00904:
"MESSAGE_NUM":
invalididentifier
SQL*Loader-2026:
theloadwasabortedbecauseSQLLoadercannotcontinue.
TableS_CRD_CICIFADR:
128381Rowssuccessfullyloaded.
0Rowsnotloadedduetodataerrors.
0RowsnotloadedbecauseallWHENclauseswerefailed.
0Rowsnotloadedbecauseallfieldswerenull.
Bindarraysizenotusedindirectpath.
Columnarrayrows:
5000
Streambufferbytes:
256000
Readbufferbytes:
1048576
Totallogicalrecordsskipped:
0
Totallogicalrecordsread:
128381
Totallogicalrecordsrejected:
0
Totallogicalrecordsdiscarded:
0
TotalstreambuffersloadedbySQL*Loadermainthread:
72
TotalstreambuffersloadedbySQL*Loaderloadthread:
0
RunbeganonWedApr1119:
31:
092007
RunendedonWedApr1119:
31:
152007
Elapsedtimewas:
00:
00:
CPUtimewas:
00:
00:
4.2Errorcallingsubroutine:
DSR_JOB(Action=5)
问题描述:
无法打开作业,无法建立job
问题解决:
原因是机器系统资源耗尽,提高机器性能或者等到机器空闲时候再登陆。
问题分类:
系统环境
问题详细描述:
4.3Thisitemhasnodesigntimeinformation
问题描述:
打开作业看作业的详细设计,结果报错:
thisitemhasnodesigntimeinformation
问题解决:
导出作业的时候没有把jobdesign打上勾(见图),打上勾就能看作业的设计了
问题分类:
datastage环境
问题详细描述:
导出的时候,得把jobdesign打上勾
4.4FailedtoconnecttoJobMonApponport134xx
问题描述:
在运行Job时无法显示运行状态(成功的变成绿色、记录条数等都看不见),在日志中提示“FailedtoconnecttoJobMonApponport134xx”,或者日志显示Failedtoinitializejobmonitoring。
问题解决:
1.在/etc/host里面,是否有localhost,如果没有添加
2.手工启动/home/ap/dsadm/Ascential/DataStage/PXEngine/java下面的jobmoninit程序。
先执行./jobmoninitstop,再./jobmoninitstart
注:
datastage默认的监控端口是13400和13401,如果被占用会顺序使用13402……
问题分类:
系统环境
问题详细描述:
4.5Transformer报错:
Thenumerofrejectdatasets“0”islessthanthenumberofinputdatasets“1”
问题描述:
在transformer中使用到系统的变量,结果报错。
问题解决:
系统变量不能直接使用,必须用使用函数GetEnviroment来导入系统变量
问题分类:
datastage问题
问题详细描述:
出问题的作业如下:
使用RowGenerator生成随机数据,通过transformer传送到SequentialFile中,在tranformer中添加一列,如下图所示:
该列使用系统级的参数,编译不能通过。
如果使用作业级的参数,则可以通过。
最后通过使用函数GetEnviroment(“LoadDate”)
4.6TheConnectionwasrefusedortheRPCdaemonisnotrunning
问题描述:
连接datastage工程的时候报错:
Failetoconnectthehost:
project:
UV
问题解决:
datastage没有正确启动。
当还有进程与服务器相连的情况下,重新启动datastage服务,就会出现这个问题,因为有进程挂起了。
解决方法:
1.重启服务器(推荐,比较快)。
2.手工杀掉ds相关的进程,然后重新启动datastage服务。
3.等待操作系统自动把挂起的进程清除(等待一段时间),然后在重启服务。
建议在执行uv-admin-stop前,先执行ps-ef|grepds,看看有没有什么ds的进程还在,如果有就少等一会儿,或者把进程杀掉。
然后在stop
问题分类:
datastage环境
问题详细描述:
4.7Failedtointializejobmonitoring.Monitorinformationwillnotbegenerated.
问题描述:
在运行job的时候,日志显示:
Failedtointializejobmonitoring.Monitorinformationwillnotbegenerated.同时dsdesigner里面作业运行结束后,没有出现绿线。
问题解决:
在启动服务的时候,监控程序(datastage自带的监控程序)没有正确启动。
解决方法是:
手工启动/home/ap/dsadm/Ascential/DataStage/PXEngine/java下面的jobmoninit程序。
先执行./jobmoninitstop,再./jobmoninitstart
问题分类:
datastage环境
问题详细描述:
4.8ERROR:
OpenJobfailed!
errno=-1004
问题描述:
在运行作业的时候报错
问题解决:
datastage的内部管理库是用universe有关,这种数据库本身不是很成熟,datastage很久未重新启动,可能导致类似作业打开失败、作业不存在等错误,重做则可以,有的作业虽然已经执行完成,但datastage在重置作业状态是有问题导致作业长时间挂住等。
解决办法是datastage定期重起
问题分类:
datastage环境
问题详细描述:
4.9Noconductornodesfoundinexportnodepool
问题描述:
作业运行过程中报Noconductornodesfoundinexportnodepool
问题解决:
1.检查该作业对应的apt文件(/home/ap/dsadm/Ascential/DataStage/Configurations/)
内容,确认里面写得hostname都是可以访问的机器。
问题分类:
问题详细描述:
SQF_ecif_ods_f1130_add_wr:
Errorwhencheckingoperator:
Noconductornodesfoundinexportnodepool.
4.10DS作业失败,对某些行成功,而对另外一些行则失败,造成进程CoreDump
问题描述:
DS作业失败,对某些行成功,而对另外一些行则失败,造成进程CoreDump
问题解决:
作业逻辑设计不严密,特别是transform,在一些数据上(空值)调用了非法操作造成,认真检查字段。
问题分类:
作业设计
问题详细描述:
4.11作业运行失败,错误信息显示为写文件失败或者buffer失败
问题描述:
报写文件失败或者outofbuffer
问题解决:
原因是
1.Scratch空间不足
2.输出文件的文件系统空间不足;
3.文件系统最大文件参数错误(ulimit);
问题分类:
系统环境
问题详细描述:
4.12作业Link信息取不到
问题描述:
运行job后,发现log里面的统计信息指都是0(在window下体现为job运行成功去没有绿线,连线上面也没有统计信息)
问题解决:
1./etc/hosts中无localhost项(详见问题4)
2.DSMonitor进程宕掉(详见问题4)
问题分类:
datastage环境
问题详细描述:
4.13带有Oracle组件的作业在RAC环境下无法运行,APT_ORAInstSet:
fail()
问题描述:
运行带有ORACLEStage的作业报出错误:
APT_ORAInstSet:
fail()
问题解决:
在ORACLE使用到了RAC,必须设置一个变量,
方法:
dsadmin-envaddAPT_ORACLE_NO_OPS-typeSTRING-prompt"nooracleparellel"-value"0"projname
如果没有使用RAC,该值就是1,默认情况该值=1,都是这个值是没有显示在Administrator里面。
问题分类:
系统环境