公司是传统企业,一个十几年的系统,使用 SQLServer 存储数据。累积到现在已有 1W+ DB ,每个 DB 下 100+表。想全部迁移至 MySQL 。SQLServer 和 MySQL 部署在内网不同服务器,MySQL 操作系统为 Linux 。
已尝试的方案:

Navicat Premium: 勉强使用中。优点是一次可以设置迁移多个 DB (迁移依旧是串行),缺点是不完全成功率(一个 DB 下全部表迁移成功算完全成功)大概 50%
MySQL Workbench: 放弃,一次只能设置迁移一个 DB ,需要操作的次数太多
TapData: 放弃,一次只能设置迁移一个 DB ,需要操作的次数太多

想问下有没有更好的方案?

正儿八经的找个 dba 或者技术顾问来做这个事情吧。。。

花点钱…别那么抠

可以花钱,花钱的话应该找什么样的人或者厂商?

用户和权限,表结构,数据,存储过程,触发器等等,每一项都可能遇到兼容性问题,不是迁完不报错就算成功的。这事情需要专业的公司提供服务。

可以花钱的话,还是建议续费 SQL sever 吧,这看起来工作量就不小,还有数据库的兼容性问题,以及后续的各种测试。

#3 招个 dba , 或者找个公司做数据改造,或者,回到原来

为什么要迁移到 mysql ?

可怕为啥会有 1w 个 db 这么多,难道是结构都是一样的,只是数据新旧不同,那感觉还好,一个能成了就行

找专业的 DBA 吧,这数据量太哈人了

找 www.clougence.com/ 公司帮你弄吧

国产化需求

历史原因,最开始的代码就写成了这个样子 = =

国产化 更不应该 用 MySQL ,去弄下 PolarDB ,信创数据库

这个需要一段时间吧,同步完数据不需要测试,试运行一段时间?这个时间差内产生的心属于如何处理?你需要先制定一个迁移方案,而不只是迁移工具

纠正:这个时间差内产生的心属于如何处理?-> 这个时间差内产生的新数据如何处理?

Mysql 不是国产数据库。

这迁移。。。性能降级、功能也对不上吧

#11 那你迁了白迁

迁移预算几位数?

不大靠谱. 为社么这么说... 我司就有一个 erp.... 大概 3k 多的表吧. 里面的 process 也都要重写... 工作量太大了. 甚至有些祖传脚本..... 然后业务代码里面有些用到直接执行 sql 代码的地方... 有些 语句并不通用. 要是用的 orm 可能没有这样的问题... 但是有些 orm 搞不定的真的是语句....

这活。。大坑啊。。。技术验证都没验证的吧。 讲真, 数据迁移属于这个事情里面最最简单的部分了。 sql 改造,代码改造 那边要做的事情多了去了

找个兼容 SQL server 的国产数据库

如果有国产化需求,有些数据库供应商采购的时候可以附加迁移服务

说实话之前有个国家项目(应该是省级)的数据库,SQLServer 很大,直接 navicat 迁的 mysql , 因为后台也改了所以还好一点。你这旧项目还在的话,能不动就不动是最好的方案吧

微软 sql server 和 mysql 的 SQL 语法不兼容的,软件需要重构工作量不低。其实,你用工具跨数据库迁移,本质上也是读数据写数据。自己直接写一个迁移程序,不复杂。mysql 的 insert 支持一条命令插入多行记录的,你组成 500 行记录一条 insert ,迁移速度也很快的。

建议不迁移。

传统业务系统换数据库,往往不是换数据库的事。得重构应用层代码做适配。

mysql 可不是国产化数据库,你这么迁移了也是做白工

性能降级,怎么说?

可以给一个逻辑1 ,首先使用代码先将 SQLServer 每个 db 下面的表的结构整理处理2 ,然后将每个表的表结构通过 llm 转译成 mysql 的结构,并且保存起来3 ,通过分布式的框架,每次将每个表的一部分数据保存下来,变成 parquet 文件4 ,通过刚才保存的表的结构,使用一个分布式框架将 parquet 文件通过某种方式快速的插入到 mysql 数据库中。并且保存其中的记录

有预算吗?帮你搞定

我 20 年前干过类似的,公司觉得 SQLServer 数据库性能不好,把 SQLServer 迁移到 Oracle 。大几十个人干了大半年,每个功能模块的每个页面里面的 SQL 语句几乎都要改,至少要跑过一次。

llm 转表结构 + parquet 存数据,学到了🙇‍

SQLServer 藏了很多存储过程,触发器吧

就像上面说的,不单单数据和表结构问题这 2 个导没啥大问题。一堆存储过程,触发器等等才是难弄的地方。

听楼上的,还是找信创的数据库吧,花钱有厂家兜底,要是自己来,责任太重了,而且容易出锅。十几年的老系统动起来也伤筋动骨,而且还是最核心的 DB 层。

需要国产化的话,找对应厂商做迁移最好。 www.itsec.gov.cn/aqkkcp/cpgg/导数据是一部分,SQL 方言和计算表现不一样也会产生各种兼容性问题,需要慎重考虑的。