关键字:
KingbaseES、Oracle、DTS、迁移
一、Oracle到KingbaseES迁移的兼容性
其他数据库向KingbaseES可以迁移的数据库对象包括:
表、索引、主外键、非空约束、检查约束、唯一约束、缺省值。需要注意的是:不支持函数索引和表达式索引的迁移;不支持聚集索引的迁移;不支持含有函数或者表达式的默认值的迁移。
二、查看迁移失败对象
在迁移过程中,可能是因为数据类型兼容性或其他操作语句的兼容性等问题,会导致对象迁移失败。迁移失败的对象,都会在迁移控制台的统计信息中有提示,可以根据提示信息,查找迁移失败的原因。如下图2-1所示,控制台中迁移失败对象的统计信息:
图2-1 迁移失败对象统计信息
三、获取详细的创建对象SQL语句
如下图3-1所示,在控制台出错对象中可以详细了解出错对象的SQL,通过具体的SQL可以获取出错的原因。此案例中源库(Oracle) 表创建了函数索引,而在KingbaseES数据库中不支持函数索引,索引在迁移过程中,在目标库(KingbaseES)创建表T1时失败,此对象迁移失败。
图3-1 详细SQL语句
四、通过源表获取对象信息
如下图所示,通过对源库对象信息查看,可以印证迁移工具所统计的迁移失败对象的错误原因。
4.1 查看源库对象信息
图4-1 源库对象信息
4.2 印证迁移工具错误信息
图4-2 源库对象信息
五、在源库处理迁移失败的对象
5.1 处理失败对象
登录源库,根据控制台SQL信息处理出错对象。如下图所示,从源库查询出引起对象迁移的索引,并在源库删除此KingbaseES数据库不支持的函数索引。
图5-1 查看对象信息
图5-2 处理对象信息
5.2 重新迁移失败对象
如下图5-3所示,删除KingbaseES数据库不支持的函数索引后,重新迁移原失败的对象,迁移成功。
图5-3 重新迁移失败对象
六、总结
- 对于迁移过程中失败的对象可以通过迁移控制台统计信息中查看到失败的对象信息,然后再出错对象中获取具体的出错的SQL语句。
- 通过获取的具体SQL语句,在源库进行对应的处理。
- 源库处理完成后,重新进行迁移失败的对象。