EAS执行脚本问题处理指南Word文档格式.docx
- 文档编号:19043318
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:11
- 大小:189.21KB
EAS执行脚本问题处理指南Word文档格式.docx
《EAS执行脚本问题处理指南Word文档格式.docx》由会员分享,可在线阅读,更多相关《EAS执行脚本问题处理指南Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
一次可以执行一个或多条语句
支持自定义脚本
执行丁脚本
补丁管理->
执行脚本
补丁
必须是已安装补丁
一次可以执行单个或多个补丁脚本
执行入口:
补丁包中的patch.xml文件
升级
版本
一次执行升级版本需要的所有脚本
单个脚本文件执行失败,会导致整个版本升级失败
执行入口:
每个目录下的update.xml文件
执行脚本文件
脚本文件
可以一次选择一个多个脚本文件
多个脚本文件可以跨版本、跨补丁
UNIX环境下EAS升级,建议用一台不关机的Windows机器打开Xmanager等工具,再用这台Windows机器远程登陆到UNIX等EAS所在的操作系统进行EAS升级,以防止升级过程中界面断开,无法直观判断升级进度!
如升级界面消失,可以查看admin.log日志判断升级进度(UNIX可以进入eas\admin\目录,使用tail–fadmin.log动态查看当前升级进度)
3.EAS各版本脚本执行顺序
执行顺序
EAS701
EAS702
EAS703
新建
创建脚本->
升级->
已安装补丁脚本
升级脚本(先升级BOS平台版本,再升级EAS应用版本)->
EAS600
SP1补丁脚本->
PTM038103补丁脚本->
PTM037265及PTM038103之后的已安装补丁脚本
升级*
(参见说明)
SP1与SP2之间的BOS小补丁脚本已经包含在SP2中,可以不需要再单独执行
EAS6.0与PTM038103之间的EAS小补丁脚本已经包含在PTM038103中,可以不需要再单独执行
在安装了PTM037265及PTM038103的EAS6.0环境中,执行完成这2个合并补丁的脚本后,新建或升级数据中心时,还需要执行这两个补丁之后发布的BOS及EAS小补丁脚本(如果有安装)
升级过程中,如果跨越多个版本,系统会自动按顺序先升级BOS的版本,然后再升级EAS版本。
升级:
指在数据中心对帐套进行版本升级
4.EAS执行脚本常见问题处理方法
4.1屏蔽法
屏蔽法是指将执行过程中出错的脚本临时屏蔽掉不执行,主要适用于客户不使用的功能或模块相关的脚本。
如客户安装了EAS标准版,但是只启用了总帐、应收、应付、固定资产、HR模块,在升级过程中出现生产制造模块的脚本执行出错,由于客户并没有使用到生产制造模块,这里就可以采用临时屏蔽的方法将该脚本屏蔽掉后再重新升级即可。
根据屏蔽范围的不同,主要分为2种:
1.屏蔽某条语句:
找到该语句所在的脚本文件并将对应的行注释或删除掉
2.屏蔽某个脚本文件:
找到该脚本的入口,屏蔽执行该脚本的入口即可,不需要将该脚本文件删除(如果只是删除了文件而没有删除入口,则执行时会提示找不到文件)。
查找入口的一般思路如下:
●补丁文件:
打开补丁压缩包中的patch.xml文件,找到需要屏蔽的脚本文件;
●升级脚本:
定位到要屏蔽文件所在的目录,打开该目录下的update.xml文件,根据要屏蔽的文件名搜索,找到要屏蔽的文件所在的行。
屏蔽示例如下:
屏蔽前:
<
Filetype="
all"
supportdb="
split="
;
"
dialect="
false"
>
./qm/depyzyjdzfa/deletescheme.sql<
/File>
./qm/depyzyjdzfa/t_con_dynamicmetadata/t_con_dynamicmetadata.xml<
./qm/depyzyjdzfa/t_con_entitypkmapping/t_con_entitypkmapping.sql<
屏蔽后:
!
--
-->
找到后将该行注释或删除掉即可。
4.2增补法
增补法是指在执行脚本过程中由于缺少依赖的对象(表、字段、视图、索引等)导致脚本执行不成功,通过先单独执行创建该依赖对象的脚本成功后,再重新执行出错时的脚本。
查找依赖的对象方法可以参见4.4。
找到依赖的脚本文件后,可以使用下面三种方法的任意一种执行即可:
1.在补丁管理中选中包含该脚本的补丁,执行该补丁的脚本;
2.将补丁脚本文件解压出来放到某个目录,通过“数据中心->
执行脚本文件”功能选择该脚本执行即可;
3.将创建该对象的脚本直接复制到“数据中心->
查询窗口”中执行。
4.3日志上下文分析法
通过执行脚本时写入的admin.log,定位当前执行的脚本文件。
EAS在执行脚本文件时,在执行这个文件完成或出错时才开始写入日志。
因此,在该补丁文件过程中,在admin.log中还不会有该脚本的日志信息,这时就需要通过上下文分析法来判断当前在执行那一个脚本文件。
参考示例如下:
步骤1打开admin.log,定位到最后的日志记录,查看最后执行的文件脚本名称:
[2011-08-2012:
09:
09,023INFO]Executeprovider[PTM036507/PT033441_bd_scm_im_update_table.sql]successful!
10,498INFO]Executeprovider[PTM036507/PT033441_scm_im_update_table.sql]successful!
10,512WARN]==========Findformatcharacterin{?
--变更描述:
采购增加业务分类:
15VMI采购、借入采购},skipit!
14,127INFO]Executeprovider[PTM036507/PT033441_bd_scm_common_update_data.sql]successful!
14,255INFO]Executeprovider[PTM036507/PT033441_bd_scm_im_update_data.sql]successful!
14,256WARN]==========Findformatcharacterin{?
--库存余额表增加库存类型字段},skipit!
步骤2根据上面的日志信息,可以确定最后执行脚本文件为PTM036507/PT033441_bd_scm_im_update_data.sql
步骤3找到该脚本的所在目录(eas\server\properties\upgradescript\product\PTM036507)
步骤4打开该目录下的update.xml文件,搜索步骤2中的定位的文件名
version="
423442"
md5="
3aa9bb6f9f7a6802a8382b1836b0f674"
fromPatch="
PT033715"
fromModule="
SCM"
PT033441_bd_scm_im_update_data.sql<
<
425398"
e9ebd098af06d98606f53b3d9fb40143"
PT033441_scm_cal_update_table.sql<
439600c60c6ec01a80eece0e76f078b4"
PT033441_scm_cal_update_data.sql<
步骤5根据上面的文件内容,可以确认当前要执行的脚本文件为(update.xml文件中当前执行完成的脚本文件的下一条记录):
PT033441_scm_cal_update_table.sql。
步骤6用文件编辑工具(如记事本)打开该脚本文件(PT033441_scm_cal_update_table.sql)了解该脚本执行内容为给库存余额表增加4个字段。
与供应链负责库存余额计算的同事联系分析确认,在使用了供应链库存模块的客户中,一般该表的数据量比较大,因此添加多个字段的时间比较长,可以等待该脚本执行完成即可。
4.4依赖脚本查找方法
当出现因缺少依赖对象而导致脚本执行失败的问题时,通常是因为当前帐套中有部分脚本没有执行,或者在之前有执行出错,但是当时没有处理导致。
要保证当前出错的脚本执行成功,必须找到依赖的对象创建脚本并执行。
那么如何才能找到依赖对象的创建语法在什么地方呢?
可以使用下面的方法:
从第一章我们已经了解到,脚本的存放位置有4个地方,因此,要查找依赖的脚本,也就是在这4处地方进行查找。
●多语言包:
一般只有在初始化多语言时才用到,因此一般的依赖脚本问题与多语言无关
●sql.jar:
创建帐套时使用到的脚本,该部分内容一般也不会存在没有执行或遗漏的情况
●补丁脚本:
补丁存放路径(eas\admin\patch\patchlist)下的补丁包
以及升级脚本的存放位置eas\server\properties\upgradescript。
前面2种基本不会用到,下面分别说明如何从后面2个地方搜索依赖的脚本。
在实际应用中,一般需要将两种方式结合起来同时使用(如在补丁文件中找不到时,再到补丁存放路径下查找)。
如果一次出现缺少多个依赖对象的情况,依照此方法一个一个的处理即可。
补丁文件搜索
补丁文件搜索是指在所有补丁压缩包中搜索的依赖的脚本,由于补丁包采用的是zip压缩格式,因此,需要借助第三方工具进行处理。
通常使用winrar工具进行。
具体方法如下:
升级路径搜索
升级路径搜索是指在升级路径下的脚本文件中搜索依赖的脚本文件。
在该目录下,脚本文件一般都是以文本格式保存,但由于采用了多种后缀名称(如sql、ksql、xml等),使用操作系统提供的搜索方式,有时会匹配不到;
并且由于缺少预览功能,如果依赖对象存在的位置过多,必须一一打开才能定位到需要的脚本,非常耗时。
因此,一般也是通过第三方工具协助处理。
这里推荐使用ultraedit编辑器。
具体操作方法如下:
1.在补丁管理中选中包含该补丁的脚本,执行该脚本的脚本;
3.将创建该脚本的脚本直接复制到“数据中心->
5.EAS脚本执行时常见解答(公共部分)
问题1:
为什么DB2数据库执行脚本的时间特别长
分析解答:
由于DB2执行的处理逻辑与其它数据库存在差异。
为避免执行过程中出现中断,在处理DB2脚本时、每执行一个语句都会首先删除一个一般情况下不存在的存储过程(但如果存在而没有删除会导致整个过程中断),因此会产生大量的错误日志。
所以同等条件下,DB2数据库环境下执行脚本的时间会是Oracle或其它数据库的几倍时长。
问题2:
EAS6.0SP1也是升级补丁,为什么执行该补丁的脚本不是通过“升级”方式执行?
补丁包制作不规范导致,安装该补丁后升级脚本没有存放到“升级脚本”所在的路径下,因此只能作为普通补丁执行脚本。
问题3:
升级数据中心时,过了几个小时仍然在执行中,也没有报错,如何判断是在正常执行还是有问题?
根据要升级帐套的数据量的差异,升级时长也存在相应的差异。
一般帐套越大,耗费的时间越长(如有个客户的帐套超过了200G,整个升级过程耗费了48小时才执行完成)。
检查是否执行正常,可以使用第4章中“日志上下文分析法”来检查当前执行的位置。
一般情况下比较耗时的脚本包括:
●添加或修改字段、索引
●表中的数据量过大(如总帐的辅助帐余额表、供应链的XXXX表等)
通常是上面两种情况的组合,即在大数据量的表中添加或修改字段、索引。
问题4:
为什么在测试帐套中升级很快,正式帐套所耗费的时间却非常长?
此情况一般主要原因是测试帐套的数据量较小。
另外,不同的硬件配置及数据库参数(如正式帐套长时间未更新执行计划、索引等)也可能存在影响。
一般建议在预升级时采用将正式帐套备份恢复的方式建立测试帐套,以便较准确地评估出正式帐套的升级时长。
问题5:
补丁脚本执行成功后,能否回退?
针对数据库导致的修改,一旦执行成功后,其影响就是永久性,一般是无法回退的。
具体可分为以下2种情况:
●包含DDL语法的脚本:
如增加字段、索引、表等,这种操作一般是不可逆的,如果要反向操作的难度与复杂性高。
●不包括DDL语法的脚本:
如修改、添加或删除数据等。
反向操作的难度相对较小。
但是在一次升级过程中会通常会执行多个补丁的脚本,由于数量众多,要进行回退的评估及反向操作会非常的费时费力。
理论上虽然可行,但是一般情况下不建议进行回退。
6.EAS6.0SP1升级过程中常见问题及处理
执行脚本过程中提示插入”对话框测试”错误
[Executeprovider[./sql/PT027018.sql],sql[INSERTINTOT_BAS_FormVALUES('
/lroPSgZF0W9xZWtaqjO7s='
N'
对话框测试'
-220,'
'
1,NULL,NULL,'
NULL,'
IujhGNLpS2ukptyIouI8GAfnBlk='
)]failed,sqlcode[947]sqlstat[42000],Causedby[ORA-00947:
notenoughvalues
],DBType=[Oracle]
脚本编写不规范。
在插入前由于表结构已经变更,而插入数据时没有采用精确匹配,导致缺少列而插入失败。
由于该条数据已经存在,故可以忽略该错误。
执行脚本过程中提示插入资金管理的一条数据违反唯一键约束
[Executeprovider[./sql/PT022871_FM_FIN_UpdateTable.sql],sql[INSERTINTOt_bas_sysmenuitem(FCONTROLUNITID,FCREATETIME,FCREATORID,FDESCRIPTION_L1,FDESCRIPTION_L2,FDESCRIPTION_L3,FDISPLAYNAME_L1,FDISPLAYNAME_L2,FDISPLAYNAME_L3,FENABLED,FFUNCTION,FID,FIMAGEPATH,FINDUSTRY,FISLEAF,FISREPORT,FLASTUPDATETIME,FLASTUPDATEUSERID,FLEVEL,FLONGNUMBER,FNAME_L1,FNAME_L2,FNAME_L3,FNUMBER,FOPENMETHOD,FORDER,FPARENT,FSHORTCUTCODE,FSIMPLENAME,FUICLASSNAME,FUICLASSPARAM,FUIOPRT,FVISIBLE,FNOSUIT)VALUES('
00000000-0000-0000-0000-000000000000CCE7AED4'
TO_DATE('
2009-06-2317:
25:
40'
'
YYYY-MM-DDHH24:
MI:
SS'
),'
00000000-0000-0000-0000-00000000000013B7DE7F'
NULL,N'
授信额度使用情况分析'
授信額度使用情況分析'
资金管理_null_null_null'
资金管理_融资管理_融资报表_授信额度使用情况分析'
资金管理_融資管理_融資報表_授信額度使用情況分析'
1,'
dbc83bf9-c63d-4c94-84c6-6eecf44c40b9PERMITEM'
ausSflA3SiCZ1oeLzOHKlRdCz6U='
NULL,0,1,NULL,TO_DATE('
4,N'
12TreasuryManagement!
1205!
FIN05!
MT0223'
0,N'
255'
/X5DZgENEADgAAQKwKgSa/033J8='
com.kingdee.eas.fm.fin.client.RptCreditLimitUsedUI'
'
1,NULL)]failed,sqlcode[1]sqlstat[23000],Causedby[ORA-00001:
违反唯一约束条件(KINGDEE.PK_SYSMENUITEM)
系统中已经存在一条主键相同,但是其它关键字不相同的数据,导致该条数据插入失败,由于数据库中已经存在该条数据,可以忽略此问题。
7.EAS6.0SP2升级过程中常见问题及处理
8.EAS7.0SP1升级过程中常见问题及处理
9.EAS7.0SP3升级过程中常见问题及处理
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EAS 执行 脚本 问题 处理 指南