1、1. 历史数据的迁移整合 本次系统是在原有系统的基础上开发完成,因此,新旧系统间就存在着切换的问题。另外,新开发的系统还存在与其他一些应用系统,例如,企业信用联网应用系统、企业登记子网站、外资登记子网站等系统进行整合使之成为一个相互连通的系统。本章将针对新老系统迁移和整合提出解决方案。 1.1. 新老系统迁移整合需求分析 系统迁移又称为系统切换,即新系统开发完成后将老系统切换到新系统上来。 系统切换得主要任务包括:数据资源整合、新旧系统迁移、新系统运行监控过程。数据资源整合包含两个步骤:数据整理与数据转换。数据整理就是将原系统数据整理为系统转换程序能够识别的数据;数据转换就是将整理完成后的数据
2、按照一定的转换规则转换成新系统要求的数据格式,数据的整合是整合系统切换的关键;新旧系统迁移就是在数据正确转换的基础上,制定一个切实可行的计划,保证业务办理顺利、平稳过渡到新系统中进行;新系统运行监控就是在新系统正常运转后,还需要监控整个新系统运行的有效性和正确性,以便及时对数据转换过程中出现的问题进行纠正 。 系统整合是针对新开发的系统与保留的老系统之间的整合,以保证新开发的系统能与保留的老系统互动,保证业务的顺利开展。主要的任务是接口的开发。 1.2. 需要进行 迁移 整合的系统 1.3. 数据迁移 整合 分析 根据招标文件工商总局新建系统的数据库基于 IBM DB2,而原有系统的数据库包括
3、 ORACLE, SQL Server, DB2。这种异构数据在总局主要存在于两个方面,即部门内部的异构数据和上下级部门之间的异构数据。同时,系统的技术构件有 .NET和 J2EE两大类。 对于部门内部的异构数据的集成采用数据移植的方法,如:如果数据有基于 DB2管理的,有 ORACLE管理的,有 SQL Server管理的,就根据新系统 DB2的要求,把 ORACLE的数据迁移到 DB2数据库中,把 SQL Server的数据迁移到 DB2数据库中。 上下级国工商局之间的异构数据的集成利用数据交换系统来完成,重点在于数据库存储标准、交换标准的制定和遵守,保证数据的共享,这部分工作由数据中心完
4、成。 1.4. 系统迁移和整合目标 1.4.1. 系统 迁移 的主要目标: 1. 保证系统正常运行 在数据转换过程中,由于原有的系统数据的复杂性,给数据转换工作带来了很大的难度,为了在新系统启动后不影响原系统正常的业务,因 此数据转换完成后,必须保证新系统的正常运行。 2. 保证原有系统在新系统中的独立性 原有系统是独立运行的系统,数据在新系统中虽然是集中存放的,但是各个系统由于存在业务上的差别,数据在逻辑上应当保持一定的独立性。 1.4.2. 系统整合的目标: 保证直接关联的系统互动,保证业务的正常办理。例如公众服务系统与基本业务系统之间互动,基本业务与协同业务之间互动等等。 1.5. 系统
5、切换方案 1.5.1. 系统切换工作流程 系统切换包括前期调研、数据整理、数据转换、系统切换、运行监控五个阶段。系统切换的整个工作流程如下所示 。 1.5.2. 系统切换工作步骤 1. 前期调研阶段 前期调研是数据转换中很重要的一个步骤,也是至关重要的一部分。在进行数据转换工作前,我们需要先认真阅读系统的相关文档,如数据字典、系统概要设计报告等,来熟悉原有的系统。当然在阅读文档的过程中肯定还会有理解不清晰的地方,这时还需要熟悉原有系统的工程师的帮助。数据转换的前期工作就是对原系统做一次彻底的全面了解,主要需要的考虑的有下面一些情况: 1) 原系统的网络结构; 2) 原系统的业务范围、存在几套业
6、务系统以及他们之间的关系; 3) 原系统的开发商、开发工具、开发平台以及采用的数据库; 4) 原系统的数据分布状况:包括数据范围 、数据量大小等; 5) 原系统的业务流程; 6) 原系统的数据流程; 7) 原系统的数据结构; 在了解这些要素的基础上,需要编写前期调研分析报告。调研报告主要包含如下一些方面: 1、将所有数据表进行分类,如系统参数类、代码类、综合业务类、相关业务类等等。 2、对所有数据表的数据组成、数据来源、用途等进行描述。 3、并非所有的数据都是需要进行转换的,在数据字典分析报告中要指出那些数据表是需要进行转换的,那些是不需要进行转换的,对于不需要转换的表要说明不需要转换的原因。
7、 4、描述数据在各表中的流向,对于关键的或复杂的业务 点要做详细说明。 2. 转换设计阶段 转换设计阶段主要是完成新旧数据字典的对照,同时明确各个表中具体数据字段的转换方式。在转换设计阶段主要是编写 数据字典对照报告 数据字典对照报告主要描述新旧系统数据表间的对照关系以及代码对照关系。以新系统为准,原系统作参照,将原系统的数据字典对应到相应的系统数据字典中。在对照过程中,需要遵循数据照搬原则,数据尽量不要作处理。 在数据字典对照表中需要进行转换的数据字段应该一一对应,对新旧数据表中字段的名称、类型、精度等都要有详细的描述,同时还要明确数据的转换方式。数据转换方 式主要有以下几种: 1) 直接转
8、换。直接转换方式是最常用的方式,就是将原表中对应字段的数据原封不动的搬到新表中来。按照 “数据照搬 ”原则,我们应该应该尽量采用这种方法。 2) 程序转换。对那些需要进行计算才能进行转换的数据将采用程序转换方式进行。 3) 代码对照。某些代码字段,往往新旧系统的编码不相同,这时就需要参照代码对照表进行代码对照转换。 4) 类型转换。少数数据可能需要对类型进行转换,如就表以字符串YYYY-MM-DD来存放日期,而新表中以 DATE 型来存放日期,这时就需要进行类型转换。 5) 常量转换。新表中某些字段可能存在缺省值,这时将采用常量转换方式,当旧表没有对应字段或旧表对应字段数据为空时,将直接在新表
9、中写入缺省数据。 6) 不转换。对于旧表有但新表中没有的字段将不作任何转换。 7) 新旧系统代码对照列出了全部需要进行转换的新旧系统数据表中存在的二级代码间的对照关系,主要以二级代码对照表的形式来反映。 1.6. 数据迁移 方案 1.6.1. 数据整理策略 数据整理就是将原系统数据整理为系统转换程序能够识别的数据。数据整理大致分为两个阶段:第一阶段就是将不同类型来源数据采集备份到统一的数据库中;第二阶段就是将原始数据进行整理, 按照不同的要求分类进入不同的中间数据库,为数据转换提供中间数据。数据整理过程采用了以下方法: 1. 确保原始数据的完整性 在进行数据整理之间,我们先需要对原始采集数据进
10、行备份。备份的目的有两个:一个是统一数据库,便于数据转换,另一个就是为以后数据追根溯源提供参考依据。在本系统中,我们将采用 DB2作为备份统一数据库。 2. 数据分级过滤策略 数据分级过滤就是把数据按照不同的数据级别进行分类整理进入不同的中间数据库中。本系统中我们把数据分为三个级别:废弃数据、待调整数据、可转换数据。废弃数据就是该部分数据的存在对系统资源造 成浪费的数据,并且会影响以后系统的运行。待调整数据就是该部分数据严重影响新系统的运行,必须进行人工调整后,方可进行数据转换。可转换数据就是该部分数据不需做任何处理,基本满足数据转换的要求或者是该部分数据新系统建议调整,但是不影响系统的运行,
11、可以等新系统运行后再调整,这样可以为数据转换工作节省很多时间。 3. 借助数据整理相关工具 数据整理非常艰巨,涉及的数据量很大,通过人工检查是不可能完成的,因此必须编写相关的数据整理工具完成数据整理。包括数据整理工具和数据纠错工具。数据整理工具负责将原始备份数据库中的数据进行分 类进入不同的中间数据库;数据纠错工具负责提供友好、方便的工具界面供用户方相关人员完善和纠正错误数据。 4. 利用中间库作为桥梁 由于原系统和新系统的数据库结构可能不一样,所以采用中间库作为衔接新旧系统数据的重要桥梁,对于建立新旧系统的对照关系很重要。一旦业务人员对新系统中某项转换数据存在疑问的情况下,就可以通过中间库的
12、关联,顺利找出原数据。 1.6.2. 数据转换 数据转换就是将整理后的数据,依照对照表的要求进行转换,并写入到新系统。这个过程可以通过交换系统实现。 1.6.3. 数据整理与转换步骤 1. 设计数据移植方案 设计数据移植方案主要包括以下几个方面工作:研究历史数据的结构、来源、数据项定义、取值等现状,研究新旧数据库结构的差异,评估和选择数据移植的软硬件平台、选择数据移植方法、选择数据备份和恢复策略、设计数据移植和测试方案等。 2. 源数据库数据清理 对于一个运行已久的数据库,主要存在三种数据库垃圾:数据库对象垃圾、数据库权限垃圾、数据垃圾。数据库对象的清理不是一件容易的工作,需有认真负责的态度,
13、要有耐力,任何错误的清理不仅会造成前端不能运行,而且将会造成数据的丢失。所以清理数据库对象也许需要一个安全、准确,可很快恢复的 方法。 首先要认识数据库资源,包括数据库对象,如表、数据库事件、过程、函数,数据库结构关系,在此基础上结合运行系统,确认数据库垃圾,制定合理的垃圾清理方案,达到清理垃圾的目的。 主要方法是对数据库数据进行整合和分解,整合相关数据减少数据的重复,分解数据则可是数据团体更趋向合理,当然整合和分解要以适合新设计的数据库结构为基础,以便简化转化程序。 3. 进行数据模拟移植 根据设计的数据移植方案,建立一个模拟的数据移植环境,它既能仿真实际环境又不影响实际数据,然后在数据模拟
14、移植环境中测试数据移植的效果。 数据模拟移植前 也应按备份策略备份模拟数据,以便数据移植后能按恢复策略进行恢复测试。 4. 测试数据模拟移植 根据设计的数据移植测试方案测试数据模拟移植,也就是检查数据模拟移植后数据和应用软件是否正常,主要包括:数据一致性测试、应用软件执行功能测试、性能测试、数据备份和恢复测试等。 5. 准备实施数据移植 数据模拟移植测试成功后,在正式实施数据移植前还需要做好以下几个方面工作:进行完全数据备份、确定数据移植方案、安装和配置软硬件等。 6. 正式实施数据移植 按照确定的数据移植方案,正式实施数据移植。 1.7. 数据整理和转换的关键技术 对于多源异构数 据库之间的
15、数据转换,因为目标数据库的格式和约束的限制严格,直接编写转换程序实现困难,可在原有数据库系统中编写转换程序。 对于源数据库、目标数据库结构有差异的数据,建立中间过渡库,中间库在原数据库平台中建立,但结构与目标数据库的结构相同。 将源数据库转入中间库的过程是一个数据的重新组合和关联的过程,将是转换的中心和重点工作,需要对源数据库与新数据库的数据关系进行深入分析,对每一个数据库写出转换策略。 非空处理:对于应该非空但实际为空的记录制定处理规则。 取值约束处理:对于有取值范围约束的字段进行规范化处理,即 将转换后的数据取值规范到该范围内。 主键处理:重新对中间库进行编号。 填写外键:每个数据库或多或
16、少存在外键,外键越多,标明与其它库关联越多,这样的库应后处理;反之,外键越少的库应该先处理。 唯一键处理:对要求唯一的数据项(主键、唯一键)进行唯一检测,并对检测出的不唯一的记录,制定处理规则。 附加分散处理:对某些表中的某些字段进行数据规范化处理,即将不合规范的数据替换成规范的数据,几个表之间的关联处理,以及一些特殊处理等。数据一致性处理:对于有多个数据源的数据进行一致性检查 , 制定处理规则。 1.8. 新旧系统切换 第一步: 编写系统切换方案。 系统切换方案包括系统切换方法、系统切换计划等内容。 第二步:组织相关人员对系统切换方案进行评审,如果未通过,则需要调整系统切换方案。 第三步:进
17、行业务系统数据转换。 在进行业务系统数据转换前,需要先选择一个时间点进行业务系统数据采集。该时间点的选择以完成一个完整的业务周期为准。 l 转换时机 根据以往的经验,我们建议将正式数据转换的时间放在月结刚刚完成后并且最好是节假日。 l 准备工作 正式数据转换前的准备工作是非常多的,现列举如下: 编写详细的数据转换指南。数据转换指南应该是在前面的几次试转换过程中编写并完善的,要详细说明数据转换的全过程,包括:准备工作、执行步骤、注意事项等。 编写执行脚本。在前面几次试转换的基础上编写并完善好数据转换执行脚本。执行脚本包括:转换执行脚本、验证执行脚本等。所有的脚本都必须安装执行的先后顺序编写,在正
18、式转换时将按照顺序来执行。 数据库环境准备。根据以往的经验,在正式转换阶段出现的异常往往都是有数据库方面的,大部分是因为数据库环境没有准备好。数据库方面需要做好如下几方面的准备:表空间划分、大数据文件 准备、大回滚段准备、创建索引等。 其他必要准备。在正式转换前,老系统要停止使用,同时在还需要把老系统的数据做一次完整的备份。 l 执行过程 数据转换时将按照已经编写好的转换执行脚本来进行。对没一步的操作都要做好日志记录,日志分两种,一种是计算机自动产生的日志,如 LOG 文件;另一种是在转换执行过程中手工做的记录。在正式转换时,要求至少两人一起工作,其中一人负责操作,另外一人负责监督,两人都必须
19、做好记录。 每执行完一条转换命令后都需要去查看一些错误记录表,如果出现异常错误信息,需要暂停转换执行,对错误分析 处理完毕后才能继续执行。 l 验证过程 转换执行结束后,需要对转换的结果进行验证,验证时按照已经编写好的验证脚本来进行,验证最好由两名以上的人员分开来进行,在验证过程中做好每一步的验证记录。 如果在验证过程中没有发现异常,并且几名验证人员的验证记录都非常一致,则可以认为已经通过验证。 l 收尾工作 数据转换工作执行完毕后,需要对关闭原有系统全部的业务经办功能,只开发查询功能,以便业务人员在需要时可以继续查询旧系统中的数据。 对新系统的数据进行一次物理备份,同时启动新系统数据库的重做
20、日志功能。 到此时为止新旧 系统数据转换工作全部结束,整个应用系统将切换到新系统上来运行。 第四阶段: 新系统运行监控及数据整理 在所有新系统平稳运行后,还需要进行定期的运行监控以及对部分数据进行调整。对于那些对系统运行未造成影响的,在数据整理过程中,没有进行数据修正,所以在系统平稳运行后,需要对这些数据进行调整。 1.9. 系统切换保障措施 系统在整个切换过程中,安全、平稳过渡是第一位的。我们将采用如下措施保证系统切换安全: a) 数据备份 在进行新旧系统数据转换时,对原系统数据进行备份以保证历史数据的可追溯性。一旦在新系统中业务办理出现问题,则可以通过追溯历史数据来判断是数据转换错误,还是
21、新系统程序存在 BUG。 2. 数据测试 数据测试分为两个层次测试,一个是数据监测性测试,就是在数据转换完成后,测试数据的转换正确性;二是验证性测试,验证性测试通过使用已经通过功能测试的新系统办理实际业务来验证数据转换的正确性。 数据测试是一个关键环节,关系到系统切换的成功与否,所以必须加大测试力度来保证数据转换的正确性。而与数据测试相关的系统功能测试也必须重视,因 为如果系统功能如果存在问题,则数据测试也就无法保证正确性。 3. 切换点的选择 系统在什么时候进行切换,也是一个很关键的问题。一般情况下,我们都选择一个业务周期结束,下一个业务周期开始的时候进行切换。 4. 切换方式的选择 系统切
22、换有两种方式,一种是新旧系统并轨运行,一种是新系统单轨运行。对于第一种方式旧系统为主,新系统为辅,在时机成熟的时候在切换到新系统运行;第二种是以新系统为主,旧系统为辅,旧系统只是验证新系统业务办理的正确与否。第一种方式安全系数由于过渡期时间会很长,业务人员工作量很大,而第二种由于直接采用新系统 ,存在一定的风险,我们可以通过加大测试力度来降低风险。综上所述,我们建议采用第二种方式,就是新系统为主,原系统为辅的方式。 5. 应急预案 在特殊情况下,由于某种原因导致系统没有能够正常切换或者切换以后系统运行不稳定,在这种情况下,必须启动应急预案来解决。具体应急预案如下: 应急预案需要从业务系统、数据
23、库、网络平台三个方面来考虑应急处理措施,只有三方面同时恢复到系统切换前的状态,才能保证原系统业务经办的正常进行。业务应用系统应急措施主要是在业务经办时保留原业务应用系统,并且保证原业务应用系统的客户端配置环境能够在 最短时间内恢复到以前的配置;数据库应急措施就是利用原始数据与原系统保持一致来处理的,也就是在新系统数据库中保留备份,并且按照原系统数据集中情况下分不同用户存放备份数据,但是用户名仍需要采用原数据库系统用户名。一旦出现紧急情况,新系统数据库立即切入原备份数据库;网络平台应急预案就是保证在数据大集中情况下整个社会保障网络链路的畅通即可。 1.10. 系统切换过程中需注意的问题 1. 最大限度的保证原系统数据转换到新系统中,即使是对错误数据进行一些处理,然后在新系统中调整。 2. 新旧系统的对应关系一定要完整。 3. 原系统的数据在新系统中一 定要有备份,不能数据转换完成以后就将原系统数据删除掉。原系统备份数据至少保留一年的时间。 4. 新系统开发过程中,数据转换负责人一定要与软件项目负责人保持经常沟通,以保证转换数据的正确性。同时软件项目负责人熟悉原系统的业务流程和用户的习惯操作方式也是有必要的。 5. 数据质量测试是非常重要的一个环节。