测试环境
操作系统:Windows Server 2003 Standard Edition Service Pack 2
Sybase:12.5.1 Windows 32位版
达梦数据库:DM7 Windows 32位版
1 在迁移过程中,使用DTS无法连接到Sybase数据库或者连接到数据库但是无法获取到表?
解决方法:
1 DTS工具上指定“驱动路径” (参考:C:\sybase\jConnect-5_5\classes\jconn2.jar);
2 “自动获取”驱动类名 (参考:com.sybase.jdbc2.jdbc.SybDataSource);
3 使用默认URL,或填好及选好字符集(URL 格式参考: jdbc:sybase:Tds:IP:端口号/数据库名?charset=cp936)。

2 迁移遇到中文全部是乱码?
解决办法:
数据迁移时,界面选择或url中指定字符集(Sybase数据库的字符集是iso_1,并且是生产库不能修改),这里指定字符集用cp936可以和iso_1兼容。
3 原库和目标库的字符集不一致,导致迁移时报字符串截取错误?
问题出现原因举例:
原库字符集是gbk的话,一个汉字占两个字节,目的库字符集是utf-8,一个汉字占三个字节,那么原有列col1 varchar2(10),存放字符串“这是个例子”,是可以放下的,但是到目的库,就只能存放“这是个”,后面的“例子”就放不进去;“这是个例子”在utf-8下占15个字节,需要定义列为col1 varchar2(15)。
解决办法:
迁移时如果不能顺利的扩展varchar类型的长度,可以采用的方法是建2个库,第一个库把表结构先迁移过来,第二个库从第一个库的基础上迁移,采用DM7->DM7的方式,此时选择varchar类型映射成2倍。
4 迁移包含自增列的表,报无法启用identity列?
解决办法:
将“启用标志列选项”去掉。
5 在迁移含有大字段的多张表时,迁移出错,造成迁移卡死的现象?
解决办法:根据数据量一次少迁移几张表。
DTS工具将Sybase数据迁移到DM7中,在迁移时考虑如下要点:
1 迁移手动指定jdbc驱动
2 字符集的兼容性
3 大数据量时要分批迁移
391

被折叠的 条评论
为什么被折叠?



