异构数据库的数据迁移

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.前言:

现在市场上数据库众多,根据2007年度的统计,Oracle仍然以45%以上的市场份额占据绝对优势,但是随着DB2 V9,SQL Server 2005的相继成熟以及mysql在web 2.0的强势,各个数据库之间的竞争已经越来越激烈,同样的数据库之间的迁移也就不可避免,下面简单描述数据库迁移的一些要点,起到抛砖引玉的作用。

2.为什么迁移?

✓为了统一平台,方便开发和管理维护

各个DB的工作原理存在差异,复杂的系统需要比较高的维护能力,对开发,维护人员的要求相对较高。在一些数据整合上非常复杂,整合不同的数据库数据需要很大工作量。✓原来的数据库已经不能负担系统压力,需要scale up

应用初始的设计架构没有考虑到发展以后的规模,导致用户和数据几何倍数上升后系统性能急剧下降,对运营和维护造成很大困难。

✓成本考虑,为了降低成本

原来的数据库ORACLE,TERADATA等对于实际应用来说过于庞大,维护费用过高。可以用费用相对较低的mysql,sql server代替。

✓新的前端应用程序强制要求(如ERP软件)

系统整合,由于厂商的应用程序数据库后台写死,造成只能迁移现有的数据。

✓构建数据仓库

金融保险行业,跨国的大型制造业等数据库类型过多,构建数据仓库需要单一的数据库,需要迁移异构数据库到一个平台。

3.如何迁移?

✓迁移工具

1.BI工具,如informatica,datastage,OWB等通过ODBC,JDBC或者数据库自身的ETL 工具进行数据的转移。使用比较方便,不过由于价格一般较贵,对于非BI和数据仓库的数据迁移意义不大。

2.通过开发人员编写简单的java,c程序完成迁移,速度较慢,但是使用方式灵活,可以根据需要修改。适用于对数据库结构相当了解并且不熟悉数据库其他的迁移工具情况下使用。

3.各个数据库自带的工具,如Oracle新推出的migration benchmark,DB2的MTK,SQL SERVER的DTS和2005中重新整合的intergrate service。

4.数据库本身的unload,load工具。每个数据库几乎都有文本的导出导入,如oracle的sqlldr,DB2的load,imp/exp,sql server的bcp,bulk insert,mysql的select into txt等等,一般都通过特殊的API实现,故速度相对其他的普通工具要大大加快。但是对使用者的数据库知识要求较高(如索引维护,日志模式,表结构,约束等)。适合比较大型和较有难度的数据迁移,缺点是由于各个数据库数据类型的不同,可能需要修改表结构。

✓迁移人员

1.需要由非常了解应用业务和程序开发的人员,配合经验丰富的数据库维护人员一起完成,以达到数据迁移后应用程序和数据库的运转良好,数据在迁移过程中不丢失出错。

✓迁移对现在业务的影响

1.如果业务为24*7则需要反复试验以取得最佳的策略使得停机时间最短

2.新系统上线后需要做好业务数据的监控,保证应用程序处理数据的正确性

✓迁移后的系统磨合

1.对于新的数据库和数据对于应用程序的排异性在迁移之前就要考虑周全,出现问题后再修改往往对系统影响较大

✓迁移失败的策略

1.制定完整的计划防止迁移失败后旧的应用也瘫痪。

4.迁移应用程序

1.不同数据库的对象区别

Mysql/Sql Server->oracle 自增长vs序列

Oracle->DB2 DA TABASE vs DATABASE PARTITION

MYSQL中’’和null不同,oracle则都认为是null

对于开发人员和开发DBA都提出了新的要求

2.不同数据库对于性能的不同考虑

各个数据库锁机制(oracle将锁存储于数据块,其他数据库存储于内存中,不同的操作在不同数据库中锁级别不同),事务隔离机制(mysql 串行隔离,oracle 提交读取,DB2 游标读,SQL Server悲观提交读取),数据库读写数据(mysql的myisam没有事务的概念,其他数据库不同日志归档摄制性能不同),解析机制的差异都会造成数据迁移后应用的性能表现差异。

5.迁移数据

1.各数据库的数据类型不同导致的表结构修改

Oracle 9i 以上varchar2最大4000 byte,以下则只有2000,DB2 8/9达到32k,sql server 2005达到8000,如迁移到oracle则需要采取clob存储超过4000的数据。

2.异常数据处理

如果采取文本形式,需要注意回车,换行,制表符,不可见字符,半个汉字等特殊情况,需要经过测试研究解决方案。

3.各数据库对于硬件,资源的要求不同

升级数据库后不升级硬件,那么反而性能会下降,使用了较轻量级的数据库后还使用原来的硬件则浪费资源。

4.各个数据库后期维护的不同,容灾,备份恢复策略的迁移

Mysql的replication等同于oracle的逻辑standby,但是实际的使用方式却和Oracle的高级复制类似,或者是DB2的HADR,sql server2005新加入的DATABASE MIRROR工作原理也和上述几个类似,但是还属于小白鼠阶段,不要在生产情况下使用。

Oracle的real application cluster等同于mysql的cluster和DB2的cluster,但oracle是share data,后2者share nothing。

Mysql中myisam备份需要使用mysqlhotcopy会产生锁表,oracle打开归档模式后则可以使用热备份或rman。

DB2可以roll forward某个表空间,但是oracle需要做基于时间的表空间恢复,mysql 则可以直接恢复某张表

SQL SERVER日志模式分三种,某些日志模式下对于某些操作可能无法恢复,同样的在oracle中如果使用了nologging则也可能无法恢复数据。

相关文档
最新文档