sybase ase/iq 迁移数据到 mysql/gbase 小记

需求

  1. 一个需求,需要将一个数据库中的数据迁移到另一不同类型的数据库中,要求使用shell脚本。
  2. 存储过程还未要求。

一般原理

  1. 迁移的一般原理是将数据从旧库中导出,再导入新库。

标准

  1. 数据在移动的前后不能有任何变形。

开始的问题

  1. 新接触一个数据库,从何处着手?
  2. 如何导出?如何导入?数据交换问题。

着手思路与问题

  1. 每种数据库都其自己的客户端工具,及维护工具或导入导出工具。查看其相关工具是否具有数据导入或导出功能并学习用法。例如,sybase ase 数据库的导入导出工具是bcp,而客户端工具是isql,gbase的客户端工具是gccli,而gccli 同时也有导入导出功能。mysql 也有 mysqlsh客户端工具,同时具备导入导出功能。
  2. 需要查具体数据库的SQL语法说明书,查相关函数以及支持的函数,这步主要确定两个相关数据库的差异。一般要确定sql语法差异,主要是ddl差异,以及数据类型差异,函数差异。这一步可能会出现很多不支持问题,比如,gbase不支持多列索引,unique 索引。需要分析差异,评估能否迁移。

数据交换思路与问题

  1. 数据交换问题主要是数据格式问题,即以何种格式导出,以何种格式导入。
  2. 需要查看两个数据库导入导出工具能支持的格式。选择一种能通融的格式,如果没有合适的,需要结合sql进行构造。一般的导入导出中,对于自定义格式,有会有相关配置选项,大概包括字段分隔符,行分隔符,空填充符,null填充符等等。
  3. 一些坑需要注意,比如,字段顺序问题,特殊字符问题,编码问题,空和null问题,text和二进制字段问题。

工作阶段

  1. 需要结合两个数据库的差异,评估是否能迁移。主要就是语法,类型,函数等支持问题能否有替换方案,比如mysql的自增特性,gbase的不支持多列索引问题。
  2. 第二步是建表工作。你得拿到旧库中的所有需要迁移的表的ddl sql,即建表语句,包括索引,触发器,自定义函数等等等。拿到ddl sql 之后,首先做的工作就是进行sql语句转换。最多的工作就是在字段转换上,比如,sybase iq 中的char 可以有4000的长度,但是mysql和gabse中char 最大长度只有255。有些字段是系统关键字,也需要处理,比如在mysql system就是关键字ÿ
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值