mysql迁移高斯

公司最近在搞国产化适配,需要迁移mysql到gauss,历史数据需要迁移,使用了Navicat的迁移发现查询字段有大小写敏感的问题,而且外键的级联也有问题,huawei那边有个工具可以支持迁移,但是不支持外键,而我们大量使用了外键,那怎么搞呢,一个一个的改实在是太麻烦了,只能自己处理了。
于是就写个脚本,处理了一下,后面为了方便使用搞了个简单的页面手动点点就可以完成迁移啦,项目放在了这mysqlToGauss

介绍一下如何使用:

  1. 修改application.properties的配置文件,把下面你看到的xxx改成你自己的xxx,ip端口schema改一改就行
spring.application.name=MysqlToGauss
server.port=6868
#mysql
mysql.url=jdbc:mysql://127.0.0.1:3306/{schema}?characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&socketTimeout=1800000&connectTimeout=6000&useSSL=false
mysql.username=xxx
mysql.password=xxx
mysql.schema=xxx
#gauss
gauss.url=jdbc:postgresql://{ip}:{port}/{db}?currentSchema={schema}&useUnicode=true&preparedStatementCacheQueries=0&characterEncoding=UTF-8
gauss.username=xxx
gauss.password=xxx
gauss.schema=xxx

#batch size to transfer data
batch.size=1000


  1. 然后直接启动springboot工程访问http://127.0.0.1:6868,点击测试连接

成功如下

点击按钮就可以开跑啦

  1. 19w条数据跑大概 500多秒

  2. 跑完后可以下载对比查询数据是否都一致

对了,这个高斯是mysql的兼容模式,其他的模式是不是能行没试过,还有gauss是基于postgresql的,理论上也可以迁移到这个数据库,当然把里面的字段映射改改其他的数据库也应该可以迁移

53 个赞

硬核帮顶!!!

4 个赞

虽然暂时没这种使用场景,但是感谢大佬分享

4 个赞

感谢佬的分享,真是硬核开整啊

2 个赞

哇塞!厉害的!

2 个赞

大的数据量场景有试吗? 正好需要这个

厉害厉害,给你点赞

问下,如果不支持外键,迁移过去后,之前外键的效果怎么处理(比如级联删除)?

感谢分享这个经验

目前我测试的就是400张左右的表,数据量就30w左右吧,估计就10分钟左右吧,再多就没测试过了

1 个赞

这个支持外键啊

1 个赞

强大如佬,赞

牛逼啊,国产化是这样的

我们公司也在搞这个 :joy:

1 个赞

感谢大佬分享

大佬这个是需要停机迁移呢还是支持增量同步呢

需要停机迁移,这个是一次性迁移,因为有外键,所以增量很难处理

你如果没有外键,可以用huawei他们的迁移工具,他们好像可以通过binlog进行增量迁移

唉,这个信创啊,纯纯就是折磨普通码农的

1 个赞

感谢大佬分享,mark