关于数据库迁移时运用的方法

  最近参与一个项目,将某几个数据库迁移到另一台服务器上,因为遇到了不少问题,为了备忘,在这就写一下。。。。

  刚开始的时候,数据库还没开始导,这时候库里有很大一部分都是没有数据的空表,而且源库是sql server类型,目标库是Oracle类型的,因此我用的是sqlserver里的导入导出工具,它的优点就是能够大批量导入,以及具有异构数据库导入功能,还有,他不需要手动建表,在导入过程中会自动建表,这点减少了很多工作量。他的缺点就是,在导入过程中,如果源表出现错误,他就会停顿在错误点,并且,如果一张表内有多个错误,他也不会一次性报出,而是一次次报出,这就增加了很多工作量。

  在导入过程中,有时候会遇到一些数据量很大的表,如果放在server工具上,会花费很多时间,降低工作效率,这时候,我们会用kettle来进行这些大表的导入,由于kettle并不是专门用来做这个工作的,因此,他的优点目前我只发现速度比较快,但是这一点也依赖于网速等很多原因,而缺点就是只能一张一张表进行导入

  后来,我遇到有几个源库是Oracle类型的,这属于同构类型导入,因此用的是expdp数据泵的方法,导出一个dmp文件,再用impdp的方法导入目标库,这个方法的优点就是方便,不需要单个表操作,直接将整个库打包,不过需要将dmp文件(如果只有一个dmp文件,要先确定导出时用的是exp还是expdp,因为导入时要与导出的方式对应)传输到目标服务器上(没有这一步可能会报错),当时我用的是putty进行文件传输,缺点是,如果数据库版本不同,也有可能会发生报错,因此这个方法的局限性很大。

总结一下,目前没遇到一个很好的软件来进行这项工作,因此我在迁移过程中,鬼知道我经历了什么。。。。

你可能感兴趣的:(关于数据库迁移时运用的方法)