项目背景
从gbase8a中迁移业务表到mysql库,遇到以下三个问题
1、mysql数据库名不规范,无法从库名了解是来自来那个业务系统,那种数据库类型,数据库名。
2、业务表基本上没有自增字段与自增加时间字段,为了后期对迁移的数据做二次处理,这里给1000多张表添加自增字段与自增加时间字段,现在这一千多张都有业务数据,有20张600万到5000千万的表,有2张上亿级宽表。
3、表和列缺少相应的注释
系统环境
1、centos7.5+mysql5.6.46
2、目前对该库没有做写操作
3、一共5个库
处理方案
1、直接在现有的库进行添加字段操作 、表注释列注释,再将数据导出来,重新建表,再导回数据
2、重新创建一个新库,将老库上的表结构同步到新库,在新库上添加自增字段与自增加时间字段、相应表注释列注释,最后将老库上的数据导入到的新库。
实施
这里采用第二种方案,数据迁移有多种方式实现,这里采用mysql数据库自带的工具mysqldump来实现,但有两点需要注意一下。
1、导出的sql语句不能带有创建数据库和创建表的sql语句
2、需要导出完整的sql语句,如inert into aa(col1,col2) values(1,2)
示例
1、mysqldump -uroot -p1234 -S /data/mysql_13306/mysql.sock -t db1 -c --single-transaction > test3.sql
LOCK T