公司最近在搞国产化适配,需要迁移mysql到gauss,历史数据需要迁移,使用了Navicat的迁移发现查询字段有大小写敏感的问题,而且外键的级联也有问题,huawei那边有个工具可以支持迁移,但是不支持外键,而我们大量使用了外键,那怎么搞呢,一个一个的改实在是太麻烦了,只能自己处理了。
于是就写个脚本,处理了一下,后面为了方便使用搞了个简单的页面手动点点就可以完成迁移啦,项目放在了这mysqlToGauss
介绍一下如何使用:
- 修改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
- 然后直接启动springboot工程访问http://127.0.0.1:6868,点击测试连接
成功如下
点击按钮就可以开跑啦
-
19w条数据跑大概 500多秒
-
跑完后可以下载对比查询数据是否都一致
对了,这个高斯是mysql的兼容模式,其他的模式是不是能行没试过,还有gauss是基于postgresql的,理论上也可以迁移到这个数据库,当然把里面的字段映射改改其他的数据库也应该可以迁移