原先的数据库 ms-sql ,库表200左右,需要转OB。我目前的想法是,在ms-sql中导出建表的各个脚本,按照OB的格式修改一下,再在OB中逐一建立库表。数据嘛,从ms-sql中导出文件,转到OB再导入数据表。这个是最优解吗?如果有更好的做法请赐教。
2 个赞
可行 ![]()
1 个赞
DDL 处理一定要严格检查,为了防止你后续批导数据时出现问题。我们在处理的时候遇到的问题太多了。比如:数据格式容量问题、精度转换问题、自增问题等等等等。所以如果可以最好严格检查每一个 DDL语句。
DDL 搞定以后,可以尝试用 DataX 或者 Hop 直接一次性导入,我们各用了一半,感觉也还行,DataX 快点,Hop 简单点。导出文件方式,也可行,但是操作比较繁琐,还是建议用半自动化的好点。
总之就是要先严格做好前期测试工作。
3 个赞
学习,学习
谢谢提醒,DDL是要严格检查,有什么需要注意的吗
1 个赞
就是先进行批量 DDL 预创建测试,然后进行部分实际数据导入测试。这样能更快的发现问题。尽量做足测试工作,为实际迁移做保障。我们为了迁移 400+ 表,测试了足足2个月,最后迁移只用了1个小时不到。具体还是看你们业务要求咯~
2 个赞
更好地做法是使用OMA工具评估,在使用OMS迁移!
1 个赞
如果是以 ob 起家,这个是最好的选择,但是从其他地方迁移过来用这个,我只能说一言难尽啊~ ![]()
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 个赞
不错不错