目录
前言
在我们使用dts数据迁移工具的时候,很多时候我们都忽略了其中的一些功能,除了最重要的迁移内容,其他的内容,我们很少去了解,今天我们就来介绍一下我们忽略的一些常用的功能,以及这些功能的用法。
调度
右击调度,选择新建调度,可以看到调度就是一个定时器,可以设置调度发生的频率,每日频率,持续的时间,通过定义这个调度,方便我们进行自动执行一些任务。

作业
右击作业,选择新建作业,可以看到,我们可以选择迁移的任务,
选择好要进行作业的调度时间,
点击启动就可以在下方看到下次作业的时间

这样我们就可以对我们的数据进行定时迁移了。这对于
数据类型的映射
打开数据迁移工具:
选择要进行设置映射关系的对应数据库信息
示例dm-dm:

把char和varchar的精度都扩大2倍

迁移时记得不要勾选默认:

如果勾选了,在转换里面看到,精度为默认的一倍,也就是没有变化


去掉勾选后,再次查看,因为这个表只有int 以及 varchar 类型的数据,所以只有varchar类型发生改变:

迁移后的结果对比:
源表的字段精度:

目的表的字段的精度:

可以看见,迁移后自定义类型的数据精度改变了,而没有定义的都保持原状。
这种方法我们可以用来解决在迁移过程出现大量的 列[xxxx]长度超出定义 的报错情况
出现这种情况的原因就是因为:
源库和目标库的字符类型的列所使用的宽度单位不一致。例如源端 UTF8 + VARCHAR(20) 代表可以容纳 20 个 UTF8 编码的字符,但是目标端对应的是 GBK + VARCHAR(20) 代表可容纳 20 个字节,也就是说最多存储 10 个中文字符。所以,当源端传递到目标的汉字字符个数乘以目标端每个汉字占用的字节数,大于目标端定义的字节数上限时,就会报错。
补充:
数据块中最多可以插入多少个字节的 ACSII 码字符
| 数据块大小 | 最大存储字符数(ASCII码) | GBK 最大汉字 |
|---|---|---|
| 8K | 3879 | 1939 |
| 16K | 7979 | 3990 |
| 32K | 8188 | 4094 |




