注册
Sybase 迁移到 DM,这几点你一定要知道!
专栏/金的探索记录/ 文章详情 /

Sybase 迁移到 DM,这几点你一定要知道!

2021/03/31 2901 1 0
摘要 Sybase 迁移到 DM,这几点你一定要知道!

DM 数据迁移工具(简称 DTS)提供了主流大型数据库迁移到达梦数据库、文件迁移到达梦数据库等功能。

环境准备

  • 操作系统:Windows Server 2003 Standard Edition Service Pack 2
  • Sybase:12.5.1 Windows 32位版
  • 达梦数据库:DM7 Windows 32位版

在迁移过程中,使用 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)。

1.png

迁移遇到中文全部是乱码?

数据迁移时,界面选择或 URL 中指定字符集(Sybase 数据库的字符集是 iso_1,并且是生产库不能修改),这里指定字符集用 cp936 可以和 iso_1 兼容。

原库和目标库的字符集不一致,导致迁移时报字符串截取错误?

问题出现原因举例:原库字符集是 gbk 的话,一个汉字占两个字节,目的库字符集是 utf-8,一个汉字占三个字节,那么原有列 col1 varchar2(10),存放字符串“这是个例子”,是可以放下的,但是到目的库,就只能存放“这是个”,后面的“例子”就放不进去;“这是个例子”在 utf-8 下占 15 个字节,需要定义列为 col1 varchar2(15)。

解决办法:迁移时如果不能顺利的扩展 varchar 类型的长度,可以采用的方法是建 2 个库,第一个库把表结构先迁移过来,第二个库从第一个库的基础上迁移,采用 DM7->DM7 的方式,此时选择 varchar 类型映射成 2 倍。

迁移包含自增列的表,报无法启用 identity 列?

将“启用标志列选项”去掉。

在迁移含有大字段的多张表时,迁移出错,造成迁移卡死的现象?

根据数据量一次少迁移几张表。

DTS工具将 Sybase 数据迁移到 DM7 中,在迁移时考虑如下要点:

  1. 迁移手动指定 jdbc 驱动
  2. 字符集的兼容性
  3. 大数据量时要分批迁移
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服