关于数据迁移需要注意的一点小问题
因服务器升级,需要对某系统的SYBASE数据库中的数据进行迁移。由于都是IBM的小型机,没有涉及到跨平台,因此,自然就选择了DUMP--->LOAD的方式来进行数据的迁移。主要步骤大致如下:
1、停止业务,避免系统继续产生数据变动
2、修改监听端口,重启数据库
3、DUMP数据库,并上传到新机器
4、在新机器上新装SYBASE服务,并新建相关数据库设备、数据库
5、将数据LOAD回数据库中
6、调整用户权限。
在操作的过程中,我们首先是进行了一次测试演练,让我比较意外的是LOAD回去以后的数据库,居然数据跟日志混在一起了。跟同事讨论了一下,可能是新建数据库的时候,为了贪图方便,一次把所有设备全都分配完毕,几十个设备,SYBASE处理的过程可能会有问题。因此,删除掉了数据库,又重新建了一次,又LOAD了一次,并且,这次我们是按照原来系统建库添加设备的先后顺序来分配设备的。
在重新恢复以后,就正常了,因此,可以肯定的是:SYBASE在使用LOAD的方式恢复数据的时候,目标数据库的大小必须与原来的数据库一致,并且,分配数据库设备的顺序也必须一致。最简便的办法就是:直接在原来的数据库上用工具生成脚本文件了,呵呵。
有时候,项目在实施的过程中,一开始就会建立了很大的数据库空间,这样,如果做数据迁移的时候,想给数据库进行瘦身,不想分配那么多设备了。那么,可以重新建立一个具有合理空间的数据库,通过BCP的方式,将所有表数据用文本的方式导出,然后再导入到新的数据库中。当然,前提是你必须要在新建的数据库中,重新建立起各种表结构,并且,你在导入数据以后,还需要重新建立存储过程、触发器等,该方式会比前面的方式要复杂,耗时很多,而且需要有详细的实施方案与细心的实施人员,否则,容易出现错漏。
--------------------------------------------
快乐地度过每一天,踏实、认真地做好每一件事。