当前位置: 首页 > 技术与资源 > 技术分享 > 正文

数据库移植的四个阶段,你都知道吗?

2016-03-01 16:35:47

作者:陈聪新炬网络高级技术专家。


在信息高速膨胀的今天,作为储存数据的数据库系统已经成为了企业的核心,企业几乎全部的IT系统都需要基于数据库进行开发和运行,企业的大部分决策和行为都需要以数据为依据,因此数据库的好坏直接决定了企业的成功还是失败。

 

如果当前的数据库系统不能满足公司业务的需求,那么就需要更换数据库,即用新的数据库产品替换掉原有IT系统使用的数据库产品,该替换过程就是数据库移植

 

 
一、数据移植过程
 

虽然现在绝大多数的应用系统都是基于关系数据库的,但是关系数据库发展30多年来, 国内外多个厂商已经开发出多种数据库软件,每种数据库软件都有自己的特性,都会扩展标准的SQL语言,如下图所示:

 

 

比如DB2的扩展语言SQL PL, Oracle的扩展语言PL/SQL,SQL Server的扩展语言T-SQL,Acces的扩展语言Jet SQL等,这些厂商只有一小部分的语法落在了交集处,是不需要修改的,其他交集外的语法都不能兼容,移植的时候需要根据业务的需要进行大量的修改。

 

因此由于各种数据库之间存在着的巨大的差别,对数据库进行移植不是一件容易的事情,应该分阶段一步一步的来完成。

 

对数据库的移植应该包含如下几个阶段:

  • 评估阶段

  • 迁移阶段

  • 测试阶段

  • 实施阶段

 

这四个阶段是一个循序渐进的过程,只有做完前一个阶段才能开始后一个阶段,因为后一阶段的输入需要依赖于前一阶段的输出。

 

 

 
二、评估阶段
 
 

评估阶段是项目的初始阶段,主要工作是通过对原系统的分析得出合理的移植方案和移植计划。

要分析主要内容包括:

  • 需要完成项目的时间

  • 需要移植的数据库的对象

  • 需要移植的代码量和复杂度

  • 需要移植的数据量

  • 目标系统和源系统的关系

  • 需要达到的性能

  • 需要达到的安全性

 

需要得出的结论是:

  • 可以移植的内容

  • 可以完成项目的时间

  • 需要的人员

  • 需要的软硬件环境

  • 移植所采用的方法


 

该阶段的输出主要包括:工作量, 移植计划和总体方案,移植问卷

 

 
三、迁移阶段
 

迁移阶段是最耗时耗力,同时也是风险最大的阶段

因为该阶段负责对原系统的所有对象、程序和数据进行移植,移植的风险、工作量和时间有很大的伸缩性,由移植方法来决定。这个阶段主要移植的内容包括:

 

1、数据库对象的移植,主要包括:

  • 表结构

  • 视图

  • 索引

  • 序列

  • 存储过程

  • 触发器

  • 用户自定义函数

  • 权限

  • 表空间

2、应用程序的移植,主要包括:

  • Embedded SQL程序

  • ODBC和JDBC程序

  • SQL脚本

  • .NET程序

3、数据的移植,主要包括:

  • 导入测试数据

4、单元测试,主要包括:

  • 对移植后功能做一些简单的测试,保证一些基本功能可以运行。

 

该阶段的基本输出包括:移植状态追踪文档, 问题追踪文档,移植后的脚本。

 

 
四、测试阶段
 

该阶段的主要工作是给测试系统导入一定量的生产数据,测试人员对移植后的系统进行测试,同时对性能和出问题的地方进行调整。

 

主要测试类型包括:

 

1、功能测试

测试移植后各个模块的功能是否正常,测试的时候可以是跑一些回归测试,检查测试结果是否和移植前一致。

 

2、集成测试

各个模块的功能测试结束后,就需要进行集成测试。该测试主要是要验证移植后的各个功能模块之间的交互是否正常,不同模块之间相互调用相互传递的消息是否正常,因此该测试也叫组装测试或联合测试

 

在单元测试的基础上,将所有模块按照设计要求(如根据结构图〕组装成为子系统或系统,进行集成测试。

 

实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。

 

3、性能对比测试

性能测试是最后一步,功能都没有问题后,测试人员需要开始关注新系统的吞吐量、响应时间是否比移植前有所提高。

 

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

 

负载测试和压力测试都属于性能测试,两者可以结合进行。

通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。

压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。

 

该阶段的主要输出包括:测试报告,问题追踪文档。

 

 
五、实施阶段
 

该阶段的主要任务是由移植方协助甲方的维护人员完成两个数据库之间的切换,同时对维护人员进行新数据库的培训。

切换阶段一定要关注新旧数据库的关系,比如两个库是否需要同时并存,数据是否需要在两个数据库之间同步。

 

按照并存关系,切换分成下面两种:

 

1、完全切换

业务系统的原数据库完全替换,这是维护人员需要做的事情就是选定一个没用用户使用的时间,关闭旧数据库,打开新数据库,将系统的连接修改到的数据库。如下图所示:

 

 

2、部分切换

通常在数据仓库扩容的项目中,新旧数据库通常需要并存。移植后,应用系统的数据需要按照层次分别存放到不同的数据库里,这时候可能就会出现一个非常重要而且非常难处理的问题—数据同步的问题。

 

两个数据库的关系如下图所示:

 

 

该阶段的主要输出包括: 实施文档,培训资料。

 

本文介绍了做数据库移植的过程中应该遵循的四个基本阶段,同时深入每个阶段,详细介绍该阶段里应该完成的事情,让移植人员可以更好的保证项目平稳顺利的进行。

上一篇:基于Jenkins + SVN + Ant + Weblogic的持续集成平台
下一篇:DB2 V10.5之BLU:IBM数据库新时代的到来?