R9数据升级工具2011.ppt
R9数据升级工具数据升级工具R9研发部研发部 鲁忠念鲁忠念题纲题纲概述概述u关于升级的几个基本概念关于升级的几个基本概念uR9R9数据升级方式的演变数据升级方式的演变 u主要功能主要功能u实现方案实现方案 操作演示操作演示u升级步骤升级步骤u操作演示操作演示一、关于数据升级的几个基本概念一、关于数据升级的几个基本概念一、关于数据升级的几个基本概念一、关于数据升级的几个基本概念首先了解这些内容,便于提升数据升级的实施的准确性和维护效率。以及出现问题时,能快速的有效的排除和修改1.数据升级所要完成的基本功能:既升级工具具体要完成哪些事情呢?1)修改数据库物理结构:将数据库中的相关对象升级到最新版本:如表、存储过程、视图.等 2)修改业务数据逻辑结构:将低版本的数据格式升级为高版本的数据格式,只涉及数据表的升级,不涉及存储过程,视图。例如:科目表中gl_kmxx中辅助核算fzhs字段在R97以下版本中,科目按部门项目核算的数据格式是01,升级到R97后就是,0,1,2.升级模式:就是以什么方式,以什么技术手段来完成升级。以便于升级出现问题时,能迅速确定问题在哪个环节。要修改哪些部分,由谁来修改。1)程序升级方式:就是数据库物理结构和业务逻辑结构的升级都放到了前台程序中。另外,出现问题时,需要专门修改升级工具本身。2)手工执行脚本升级方式:就是数据库物理结构和业务逻辑结构的升级都放到了脚本中,执行脚本就完成了升级过程。另外,出现问题时,只需要修改脚本即可。一、关于数据升级的几个基本概念一、关于数据升级的几个基本概念一、关于数据升级的几个基本概念一、关于数据升级的几个基本概念一、关于数据升级的几个基本概念一、关于数据升级的几个基本概念一、关于数据升级的几个基本概念一、关于数据升级的几个基本概念3)工具执行脚本升级方式,或工具执行升级包升级方式:就是数据库物理结构和业务逻辑结构的升级都放到了脚本中,运行工具来执行脚本就完成了升级过程。另外,出现问题时,只需要修改脚本即可,不需要修改升级工具4)程序+升级包升级方式:就是由程序和脚本共同完成数据升级过程。一般是业务数据变化较大,且较复杂时采用这种方式,R97以上的升级都是这种升级方式。升级程序完成的任务:主要是执行脚本或自动生成脚本并执行,以及个别复杂数据的升级,如总账余额表,总账的自定义辅助核算升级为固定辅助核算,工资项目字段的升级。所以这些数据出现问题时,需要修改升级工具;脚本是存放在升级包里的,它完成的任务是:数据库物理结构升级和简单的业务数据的升级。所以这部分出现问题时,只要修改脚本,然后打包到升级包即可。一、关于数据升级的几个基本概念一、关于数据升级的几个基本概念一、关于数据升级的几个基本概念一、关于数据升级的几个基本概念 5)程序+升级包+升级方案升级方式:与程序+升级包升级方式的区别就是升级包中增加了升级方案,这个升级方案实施人员可以自己配置。升级方案的作用是程序可以根据这个方案自动生成脚本来执行。6)自动化综合工具执行脚本升级方式:就是对数据库物理结构和业务逻辑结构的升级都放到了脚本中,运行工具来执行脚本就完成了升级过程。另外该综合工具不光升级数据库,还可以升级各产品的前台程序及升级产品的运行环境。所以出现问题时,只需要修改脚本即可,不需要修改升级工具。一、关于数据升级的几个基本概念一、关于数据升级的几个基本概念一、关于数据升级的几个基本概念一、关于数据升级的几个基本概念3.升级包:所谓升级包就是将各产品的多个数据脚本及升级方案(就是说的升级模版)打包到一个压缩文件,里面不含有升级程序。对于R9i的升级包,是将各个脚本的内容放到Access数据库中,升级时通过访问该Access数据库来获取脚本并执行。升级工具包,是含有升级工具及升级包R9数据升级方式的演变数据升级方式的演变 各个升级工具的功能各个升级工具的功能1.后台管理工具的升级功能1:DatTools.exe升级方式:程序升级方式后台版本:R96及以下版本的后台工具主要功能:将Win311升级到Anyi2000、R91R96(941普及版除外)等R9版本数据脚本:无脚本支持产品:只有总账、工资、固定资产三个主要311的产品的升级数据库:是在原数据库上的直接升级,升级后旧库变新库。2.后台管理工具的升级功能2:DatTools.exe升级方式:工具执行脚本方式后台版本:R96及以下版本的后台工具,含R97后台主要功能:是R9.X小版本之间升级或Anyi2000向R9.2,R9.3大版本的升级 如每次支持R9.60升级到R9.65,R970升级到R971数据脚本:R96以下产品有各个产品的独立脚本,对于R96,R97版本则是若干个大脚本及权限脚本,既将所有产品的脚本放到一个大脚本中。支持产品:R9所有产品,因为他们只要写自己的脚本即可数据库:是在原数据库上的直接升级,升级后旧库变为新库。各个升级工具的功能各个升级工具的功能3.升级工具的升级功能1:Up_Scheme.exe升级方式:工具执行升级包方式工具版本:R95、R96都发版了数据升级工具 (每次只保留最后一版的工具,兼容升级R95)主要功能:将311、Anyi200、R9.X升级到当前R95,或R96版本 其中升级311到R9时,采用的是程序+升级包方式 数据脚本:升级包中打包了各产品的脚本支持产品:R9所有产品,因为各产品只要写自己的脚本即可数据库:是在原数据库上的直接升级,升级后旧库变新库,但有选项可以选择将旧库备份一份。4.升级工具的升级功能2:Up_Scheme_R97.exe或名为Up_Scheme.exe升级方式:程序+升级包方式工具版本:R97和R971都发版了数据升级工具主要功能:将311、Anyi200、R9.X升级到当前R97版本,由于R97 与R96数据库逻辑结构有较大变化,所以升级较复杂些数据脚本:升级包中打包了各产品的脚本支持产品:R9所有产品,但没有发版oracle升级版本 后来增加了升级oracle的专版,但未全面测试数据库:将原有数据库完全复制一份为新库,在新库上进行升级,升级后旧库还在,没有变化,但要使用新库。各个升级工具的功能各个升级工具的功能4.升级工具的升级功能3:Up_Scheme_R9i.exe升级方式:程序+升级包+升级方案方式工具版本:R9i,R98版都发版了数据升级工具 (每次只保留最后一版的工具,兼容上一版升级功能,如R98发版的 升级工具可将R971升级到R9i,但要用R9i的升级包)主要功能:将311、Anyi200、R9.X,971的数据升级到R9i版本,由于R97 与R96,R9i与R97的数据库逻辑结构有极大变化,所以升级复杂些 2010年底的升级工具,增加了将R9972升级到R9i,R98的功能数据脚本:升级包中打包了各产品的脚本,并定制了升级方案支持产品:大多数R9产品,但有些产品可能没有设置升级方案到升级包中,所以不支持升级,需要升级时再临时手工配置升级方案数据库:是跨数据库的升级,先建立R9i的库,要求建立单位账套,早期的版本还要建立的起始日期与旧账套的一致。升级时程序将旧库的数据,按升级方案的关系转移到9i的库中。升级后,旧数据库没有变化。各个升级工具的功能各个升级工具的功能5.综合升级工具的升级功能1-DbUpdate.exe升级方式:自动化综合工具执行脚本升级方式工具版本:R9i,R98都发版了综合升级工具,每修改一个9i的维护单,就发布一个综合升级工具。主要功能:将R9i低版本数据库升级到R9i的高版本数据库。考虑到升级 效率,分各个阶段的升级,如专门发布了一个升级包可将9i 升级为最原始的R98;再发布一个升级包,将原始的R98库 升级到最新的库.数据脚本:各个R9i的版本都有自己的ACCess数据库升级包,对于R9i每个数据库对象就要写一个脚本支持产品:R9i所有产品数据库:是在原数据库上的直接升级,升级后旧库变为新库。数据升级工具特点数据升级工具特点u简单易用 .使用升级包,将低版本账套一次性升级到高版本。这样 中间省去了升级多次环节 .改变了过去脚本升级方式下,每个产品一个或多个脚本,烦琐的升级 步骤。这样降低了技术支持量、实施量和维护成本 .可支持多个账套同时升级u更安全、更可靠 升级包里的脚本全面,几乎包含了数据库中每个对象的脚本,因此可最大限度的保证数据库升级的正确性u缺点 因为需要升级每个数据库对象,升级时速度比较慢。R97,R9i,R98升级实现方案升级实现方案 R97:升级工具+升级包R9i:升级工具+升级包+数据转换即将低版本的账套,通过升级工具和相应版本的升级包,将其升级为高版本的数据库低版本账套低版本账套升级工具升级工具高版本账套高版本账套升级包升级包数据转换数据转换311DBF文件文件R97升级步骤升级步骤1.获取升级包 升级什么版本的账套就用那个版本的升级包 升级包在安装目录的client目录下的.aus文件,如:any-970(SQL).aus,可将当前账套升级到R97 any-960(SQL).aus,可将当前账套升级到R96 any-950(SQL).aus,可将当前账套升级到R952.选择待升级的账套 .先选择目标账套,可以选择多个账套升级,升级工具将循环升级所选择的账套 .对于311的升级,需要先建立一个R9空白账套,升级工具将311数据库文件转换 到所建立的新账套中3.备份账套 选择备份选项,系统升级前,可自动备份账套。便于升级失败后,可以选择回滚,这样可以恢复到未升级之前的旧账套的状态。过程是:将旧账套先备份一份,再将旧账套升级。回滚时,是删除升级后的 旧账套,恢复备份的旧账套R97升级步骤升级步骤4.开始升级账套 .升级工具依次执行升级包里的所有脚本 .执行升级包里的脚本的目的:将低版本账套的表结构等数据库对象升级为高版本的 数据库的结构。5.数据转换(R97)若是将311的数据升级到R9,或将R9的低版本账套升级到R97账套,则要经过数据转换这一步。数据转换的目的:将低版本的数据的逻辑结构转换为高版本的数据的逻辑结构 另外数据转换时还会在新账套预置一些数据 R97升级要点升级要点由于R97数据结构,特别是余额表结构的重大变化,以及用户数据的多样性,会导致一些升级错误。因此需要在一定条件下升级,特殊情况需要作特殊处理。u升级到升级到R97R97的条件的条件 升级前请务必确认以下工作已完成,再考虑升级到R97,否则升级结果会不正确 1)请保证各会计期间,试算平衡通过后再升级。2)对于严格辅助核算项,请保证科目余额和辅助余额相等后再升级。u期初余额的升级是难点,有以下一些情况需要注意:期初余额的升级是难点,有以下一些情况需要注意:1)三项(多项)交叉核算的升级 即科目按三项以上交叉的核算,即科目按两个固定项,再按一个或多个自定义核算时,期初余额理论上无法完整的升级,需要升级后手工补充录入期初余额.2)当科目的严格辅助核算,在使用后,若修改了,会造成余额表混乱,这样在R97容易造成升级后期初余额不平或账薄显示数据不完整。升级程序会自动检查这样的科目,并修正,也可以不修正,选择手工修正。3)一些需要注意的其他情况,情况比较多,不一一列举了,有些可能需要作特殊处理u不支持自定义辅助核算升级为固定辅助核算不支持自定义辅助核算升级为固定辅助核算 由于自定义核算升级为固定项,涉及到凭证,期初余额的重大调整,另外当多个自定义交叉时,及非严格核算下等有些情况是无法升级的,为了数据升级后稳定暂不支持自定义项升级为固顶项。u预算科目预算科目(功能分类功能分类)核算项的升级核算项的升级 在R97以下的低版本中,预算科目是自定义辅助核算项,而R97中的功能科目是固定辅助核算项。升级到R97后,预算科目仍然作为自定义核算,无法升级为功能分类。建议在R97重新做一套功能科目的业务,看以前的预算科目账薄时,可登录到旧账套查看。u311311升级到升级到R97R97 311中的凭证可以没有凭证类型,而R97是需要凭证类型的,这种情况下升级之后,需要执行专门脚本给所有的凭证号加上凭证类型R97升级要点升级要点R9i升级方案升级方案功能目标功能目标u将R9低版本账套数据库结构和数据升级到R9I(包括311升级间接升级).uR9旧账套+数据升级工具+升级包方式:直接升级到R9Iu例如R9.X旧账套不需要先升级到R92、R93、R94、R95、R96、R97,而是直接通过升级工具加升级包升级到R9I的账套.u不支持8.X旧账套的直接升级u支持SQLServer、Oracle账套的升级u批量升级:一次可以将多个R9.X账套升级到R9I数据库u不支持R9.X账套的管理员权限数据到R9I的升级u不支持汇总账套的升级升级流程图升级流程图将多个将多个R9.X账套升级到一个账套升级到一个R9I数据库数据库升级流程升级流程Sqlserver数据库u创建好R9I数据库,建立各个单位账套信息。u如果是非R97账套的升级,则将源账套先备份,再恢复到一个新账套,作为中间数据库u对中间数据库执行大脚本,将库结构升级为R97u再将中间数据库的数据升级为R97的数据u将中间数据库数据导入到R9I数据库u删除中间数据库u记录升级日志:u记录哪些账套已经升级过,升级到R9i的对应关系,升级信息及相关出错信息升级流程升级流程Oracle数据库u创建好R9I数据库,建立各个单位账套信息。u如果是非R97账套的升级,则需要新建中间用户。u将中间用户的表的数据升级为R97账套u将中间用户的数据导入到R9I数据库u删除中间用户u记录升级日志:u记录升级信息,如升级到R9i的对应关系,升级信息及相关出错信息升级包设计升级包设计u升级包分为3个升级包u由于从R95开始就有了大脚本,所以u一个升级包是针对R95,R96版本账套升级到R9i时使用的。u一个升级包是针对R95以下版本账套升级到R9i时使用的。u一个升级包是针对R97版本账套升级到R9i时使用的。u实际上3个升级包可以合并到一个升级包,只是升级包里的文件列表不同。uR95,R96账套升级列表文件为:_SCRIPTLST_R9596.LSTuR97账套升级列表文件为:_SCRIPTLST_R97.LSTuR95以下版本升级列表文件为:_SCRIPTLST_R95Low.LST升级脚本升级脚本uR95,R96,R97账套升级时去掉_SCRIPTLST.LST文件中以下脚本u设置索引、触发器、外键的脚本,例如:DROPALLINDEX.SQL、ADDALLINDEX.SQL。u检查表结构、视图、存储过程的脚本:例如GL_KMXX.SQL等脚本,这些脚本用于检查当前所有数据库对象是否完整。u有几千个这样的脚本,实际对于R95及以上版本账套的升级时,都不需要执行这些脚本,执行一个账套就需要30分钟,经过一年多的用户升级的反馈看,升级慢就是因为这个原因。提高升级效率后,也便于测试。u去掉和权限相关的脚本,iInitRights.sql,InitPower.sqlu去掉和套打相关的脚本升级包列表文件的内容升级包列表文件的内容_SCRIPTLST.LST列表文件如下:(升级R95,R96版本账套到R97I)uCheckData.sql 数据检查脚本,保证R95账套数据额正确性uuDBUpdateSql_bef.sql R95金盘大脚本uuDBUpdateSql.sql R95银盘大脚本uuDBUpdateSql_R96.sql R96金盘大脚本uuDBUpdateSql_R96B_PUB.sql R96银盘收支分类版公共模块大脚本uuDBUpdateSql_R96B_CW.sql R96银盘收支分类版财务大脚本uuDBUpdateSql_R96B_CZ.sql R96银盘收支分类版财政大脚本uuDbUpdateSql_R97.sql R970大脚本uuDbUpdateSql_R97C.sql R971大脚本uUpdateToR97.sql 将R97以下版本账套数据转换为R97的数据的脚本u_SCRIPTLST.LSTLOW列表文件 包含所有的脚本u_SCRIPTLST.LSTR97列表文件 uuDbUpdateSql_R97.sql R970大脚本uuDbUpdateSql_R97C.sql R971大脚本对于OracleR95以前账套的升级需要整理以下文件到升级包u O_AnyiPUB_R93.sql,O_AnyiFA_R93.SQL,O_AnyiPA_R93.sql,O_AnyiGL_R93.sql数据表的升级数据表的升级u将要升级的数据表放到升级模版库中 imp.mdbu设置好每个R9i目的表和R97源的对应关系 每个字段的对应关系u升级工具依次执行该模版库中的表 将完成数据的升级有自定义字段的表的数据升级有自定义字段的表的数据升级工资自定义项目的升级u升级工资前,请保证原账套和目标数据库的表gz_ysgzx表的数据的正确性和完整性,否则工资自定义项目的数据将无法正确的升级。u由于升级时,会修改工资相关表的表结构,如果升级后没有问题,请不要重复,u并且不要把不同的低版本账套的数据升级到R9i的同一个单位中去,以免造成u工资表的自定义工资项目的数据错误。自定义字段的表的数据升级自定义字段的表的数据升级固定资产(资产管理)卡片自定义项的升级u升级固定资产前,请保证原账套和目标数据库的表FA_KPJG数据的正确性和完整性,否则卡片的自定义项目数据将无法正确的升级。u由于升级时,会修改卡片相关表的表结构,如果升级后没有问题,请不要重复,并且不要把不同的低版本账套的数据升级到R9i的同一个单位中去,以免造成 卡片相关表的自定义项目的数据错误。谢谢大家!答疑时间!中中国国财财政政管管理理软软件件第第一一品品牌牌中中国国财财政政管管理理软软件件第第一一品品牌牌