从mysql迁移到mssql的弯路

来源:互联网 发布:蓝叠安卓模拟器mac版 编辑:程序博客网 时间:2024/05/22 02:28

因为自己擅长的是MS SQL Server,加上最近为了整理各个不同数据源到统一的数据库,因此将遇到的坑写下来,方便日后查找。


0x0:坑

这次遇到的坑是从mysql迁移到mssql,以前只是稍微接触过mysql,对mysql迁移到mssql,网上搜索的结果大多数是建立链接服务器,但我建立之后发现虽然可以用,只不过数据量太大,导致查询过程中会整台服务器卡顿,这样使得迁移步骤更加麻烦。再继续了解,发现了一个更加快捷的方法。


0x1:环境

只有一个SQL Server 2016的服务器


0x2:需求

将1亿+的单表从mysql迁移到MSSQL


0x3:解决方案


1. 安装mysql server,将包含.myd和.myi的文件夹放置于安装目录的data目录下

--(可选)在odbc数据源中的系统DSN建立MySQL ODBC 5.3 Unicode Driver链接

--(这是我采用链接服务器就建立好的,估计在这个解决方案里可以不用,但留着以防真的需要。)

2. 【到微软官网】下载与自己MSSQL Server版本相对应的SQL Server Migration Assistant for MySQL

--(这个坑来源于环境是2016版的SQL,对应的版本是MSSA 7.2,但我一开始找到的资源是6.0版,最高支持2014,虽然可以打开,但连接SQL时提示SQL Agent没启动导致无法连接。)

3. 在MSSA中连接MySQL、MSSQL

4. 选择MySQL要迁移的表或数据库,右键Convert Schema(转换模式),在SQL中右键对应的名称,选择Synchonize with Database(与数据库同步

5. 在MySQL树右键选择Migrate Data(迁移数据),弹出两个连接凭据,点击之后会开始迁移数据,等待迁移。


----------------------------------------------------------------------------------------------------


然而,事情并没有这么简单。在一会儿等待之后,以为已经好了,结果发现在下面有一个小地方,提示【连接已被禁用】,用某引擎搜索不到相关内容后,换了某搜索引擎,然后找到了一篇文章:

http://stackoverflow.com/questions/38266349/mysql-5-6-to-mssql-server-2014-migration-executereader-requires-an-open-and-av/38266748#38266748


在其中提到了一句话:Open SSMA for MySql -> Goto Tools -> Project Settings -> Select General from the left menu -> Select Migration -> In the Misc section -> set data migration timeout in minutes = 500


按照这个操作,改完之后重新开始进程,虽然数据慢慢地加载,但进程同步完之后就完成了。


如果碰到类似的问题,希望对你有所帮助,起码它帮我解决了当前的问题。

0 0
原创粉丝点击