sybase数据迁移dat文件导入,扩容

这两天一直在纠结sybase数据库dat文件的导入问题,查了一堆的资料,慢慢的总结出了自己的一点小经验。

个人觉得dat文件的导入首先必须满足的要求是,新的数据库的空间大小必须大于等于原有数据库的空间大小,本人现在就在导入一个6G多大的dat文件,它的原有数据库的大小为85G,sybase数据库的初始大小最大应该是只能设最多32G,可以通过语句扩容,先新建一个设备,然后把这个设备再绑定给数据库,通过1个数据库绑定多个设备达到扩容的效果,我现在就用了3个30G的设备组成一个90G的数据库,语句如下:alter database databasename(数据库名) on deviceName(新建一个设备名)=size(大小,默认单位为MB,可以用G),我的语句是 alter database creditdb on creditData02=”30G”。假如空间大小满足不了,这时进行导入操作会报错Msg 3105,Data on dump will not fit into current database.Need XXXXMbyte database,表示需要多少空间才能进行导入。

再说Msg 8009吧,我的解决方式是在load database databasename from “/XXXX/XXXX.dat” 时,因为原文件可能是在dump导出生成时加了compress压缩命令进行了压缩导出生成的dat文件,如果要成功导入,必须添加”compress::”,我的语句是 load database creditdb from “compress::sybase/credit_2014.dat”。进行解压导入。

如果要进行压缩导出dat文件语句也是差不多,

dump database creditdb to “compress::D/creditdb.dat”  。

其他人遇到的Msg 8009可能还有其他原因和解决方式。本人暂时只遇到这种情况。还有一个问题,感觉很多用过sybase的人没去提过,就是当你导入数据比较大的时候在导入结束以后还要缓冲一段时间才可以online databse,我第一次导入6G大的dat文件时,看到显示导入数据停那半天,下面还一行警告语句,什么该导入操作可能影响你的数据库导致其不可用什么的,我还以为出问题,傻傻的把导入操作给停了,第二次重新再导的时候我在数据导完,然后警告信息出来后等它缓冲了10多分钟,然后终于才显示导入completed,浪费了我40多分钟。还有比如扩充数据库以及新建设备和数据库,如果分配的空间比较大的话,同样在执行create 或者 alter 以GB为单位的空间时,同样需要等待较长时间缓冲。比如我新建一个30G的设备大概要15-30分钟,然后扩充给数据库30G也要20-30分钟。

新建设备的语句如下:

disk init

name=”creditData02″,(设备名)

physname=”/sybdev/creditData02.dat”, (设备生产dat文件的路径,自己定义,建议可以和其他dat文件放同一目录或再新建个目录统一管理)

size=”30G”

go

扩容:

alter database creditdb on creditData02=”30G”

go

转载于:https://www.cnblogs.com/haimeifeng/p/4088195.html

    原文作者:anchang4078
    原文地址: https://blog.csdn.net/anchang4078/article/details/102244703
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞