sql转ob

原先的数据库 ms-sql ,库表200左右,需要转OB。我目前的想法是,在ms-sql中导出建表的各个脚本,按照OB的格式修改一下,再在OB中逐一建立库表。数据嘛,从ms-sql中导出文件,转到OB再导入数据表。这个是最优解吗?如果有更好的做法请赐教。

2 个赞

可行 :thinking:

1 个赞

DDL 处理一定要严格检查,为了防止你后续批导数据时出现问题。我们在处理的时候遇到的问题太多了。比如:数据格式容量问题、精度转换问题、自增问题等等等等。所以如果可以最好严格检查每一个 DDL语句。

DDL 搞定以后,可以尝试用 DataX 或者 Hop 直接一次性导入,我们各用了一半,感觉也还行,DataX 快点,Hop 简单点。导出文件方式,也可行,但是操作比较繁琐,还是建议用半自动化的好点。

总之就是要先严格做好前期测试工作。

3 个赞

学习,学习

谢谢提醒,DDL是要严格检查,有什么需要注意的吗

1 个赞

就是先进行批量 DDL 预创建测试,然后进行部分实际数据导入测试。这样能更快的发现问题。尽量做足测试工作,为实际迁移做保障。我们为了迁移 400+ 表,测试了足足2个月,最后迁移只用了1个小时不到。具体还是看你们业务要求咯~

2 个赞

更好地做法是使用OMA工具评估,在使用OMS迁移!

1 个赞

如果是以 ob 起家,这个是最好的选择,但是从其他地方迁移过来用这个,我只能说一言难尽啊~ :sweat_smile:

1 个赞

这种一般都是导出csv 把

1 个赞

试试

1 个赞

用的三方工具试试

1 个赞

不错不错

我记得OMA可以做对象兼容性评估,OMS应该是不支持SQLServer迁移的

1 个赞

对象兼容性评估对数据库迁移有帮助吗

肯定是有的,DDL这些能快速评估一个大致的兼容性情况,不一定全部能覆盖,至少能判断基本的复杂度和要改造的量。

1 个赞

表结构可以通过源库的元数据信息通过拼接生成ddl的sql
数据可以导出为文本文件,然后通过obloader导入ob

1 个赞
MS SQL 类型 OceanBase(ORACLE 模式)推荐类型 说明
int NUMBER(10) 兼容整数存储
varchar(n) VARCHAR2(n) 长度需保持一致,注意字符集影响
varchar(max) CLOB 或 VARCHAR2(32767) OB 的VARCHAR2最大长度为 32767 字节
datetime DATE 或 TIMESTAMP DATE仅含年月日时分秒,TIMESTAMP含小数秒
uniqueidentifier VARCHAR2(36) 用字符串存储 GUID,需同步应用层生成逻辑
bit NUMBER(1) 0/1 存储,替代bit类型
decimal(p,s) NUMBER(p,s) 精度保持一致
1 个赞

不错不错