如何将MySQL数据迁移到SQLServer中

如何将MySQL数据迁移到SQLServer中,第1张

以下有几款迁移工具的对比,可以参考,比较推荐DB2DB.

软件易用性主要是指软件在导入前的配置是否容易。由于很多软件设计是面向程序员而非一般的数据库管理人员、甚至是普通的应用程序实施人员,而这一类人员很多时候并没有数据源配置经验。因为一些使用 ODBC 或者 ADO 进行配置的程序往往会让这类用户造成困扰(主要是不知道应该选择什么类型的数据库驱动程序)。下面让我们看看四个工具的设计界面:

>>>>

1、SQLyog

SQLyog 使用的是古老的 ODBC 连接,但对于新一代的程序来说,这种方式的非常的不熟悉并且不容易使用,并且必须要求本机安装好相应的数据库的 ODBC 驱动程序(SQL Server 一般自带好)。

>>>>

2、Navicat Premium

NavicatPremium是四个应用工具中设计最不人性化的一个:从上图怎么也想像不到要点按那个小按钮来添加一个新的连接,并且这个连接设置不会保存,每次导入时都必须重新设置。NavicatPremium使用的是比 ODBC 稍先进的 ADO 设置方式(199X年代的产物),但使用上依然是针对老一代的程序员。

>>>>

3、Mss2sql

Mss2sql 是最容易在百度上搜索出来的工具,原因之一是它出现的时间较早。

Mss2sql由于是很有针对性的从 SQLServer 迁移到 MySQL,因为界面使用了 *** 作向导设计,使用非常容易。同时在设置的过程中,有非常多的选项进行细节调整,可以感觉到软件经过了相当长一段时间的使用渐渐完善出来的。

>>>>

4、DB2DB

DB2DB 由于是由国人开发,因此无论是界面还是提示信息,都是全程汉字。另外,由于 DB2DB 在功能上很有针对性,因为界面设计一目了然和易使用。和 mss2sql 一样, DB2DB 提供了非常多的选项供用户进行选择和设置。

三、处理速度和内存占用评测

在本评测前,本人的一位资深同事曾经从网上下载了某款迁移软件,把一个大约2500万记录数的数据表转送到阿里云 MySQL,结果经过了三天三夜(好在其中两天是星期六和星期日两个休息日)都未能迁移过来。因此这一次需要对这四个工具的处理速度作一个详细的测试。

考虑到从 SQL Server 迁移到 MySQL 会出现两种不同的场景:

从 SQL Server 迁移到本地 MySQL 进行代码测试和修改;

从 SQL Server 迁移到云端 MySQL 数据库正式上线使用;

以下为测试过程中的截图:

>>>>

1、SQLyog

请点击输入图片描述

>>>>

2、Navicat Premium

请点击输入图片描述

请点击输入图片描述

注意:我们在测试 Navicat Premium 迁移到  MySQL 时发现,对于 SQL Server 的 Money 类型支持不好(不排除还有其它的数据类型支持不好)。Money 类型字段默认的小数位长度为 255,使得无法创建数据表导致整个测试无法成功,需要我们逐张表进行表结构修改才能完成测试过程。

Navicat Premium 的处理速度属于中等,不算快也不算慢,但 CPU 占用还有内存占用都处于高位水平。不过以现在的电脑硬件水平来说,还是可以接受。但 CPU 占用率太高,将使得数据在导入的过程中,服务器不能用于其它用途。

>>>>

3、Mss2sql

Mss2sql 并没有提供计时器,因此我们使用人工计时的方法,整个过程处理完毕大于是 726 秒。Mss2sql 的 CPU 占用率相对其它工具来说较高,但仍属于可以接受的范围之内。

>>>>

4、DB2DB

请点击输入图片描述

DB2DB 同样迁移 300万数据时,仅仅使用了 2 分 44 秒,这个速度相当惊人。不过最后的结果出现一个 BUG,就是提示了转换成功,但后面的进度条却没有走完(在后面的数据完整性评测中,我们验证了数据其实是已经全部处理完毕了)。

当然可以了。

一.为 MySQL安装ODBC驱动

下载MySQL ODBC Connector,下载:http://dev.mysql.com/downloads/connector

从控制面板-管理工具,打开你的 数据源(ODBC),选 系统DNS ,点添加。    

在 创建新数据源对话框中,选择MySQL ODBC 5.1 Driver ,点完成。

完成后会出现MySQL 链接对话框,添加你的 MySQL 数据库账号信息,并确认"root"账号是否有全部的权限,如果你安装MySQL 没有修改的话, 不要改 3306这个端口号。

点“测试”按钮确认你的链接是正确的。 Press the "Test" button to ensure your connection settings are set properly and then the "OK" button when you're done.

二. 创建Microsoft SQL到MySQL的链接

1.在SQL Server Management Studio中打开一个new query 拷贝一下语句,修改为你的数据库的名称,并运行。 EXEC master.dbo.sp_addlinkedserver  @server = N'MYSQL',  @srvproduct=N'MySQL',  @provider=N'MSDASQL',  @provstr=N'DRIVER={MySQL ODBC 5.1 Driver}SERVER=localhost_  DATABASE=tigerdbUSER=rootPASSWORD=hejsanOPTION=3'

2.这个脚本通过ODBC驱动创建一个联接到你的MySQL数据库,这个联接出现在Microsoft SQL Server Management Studio如下图:  没有出现这个图,就刷新下。

三. 在两个数据库之间导数据

在Microsoft SQL Server中创建个新的数据库(如:testMySQl),在new query中拷贝如下语句,运行后就可以把MySQL 数据库 “tigerdb” 导入到 Microsoft SQL 数据库“testMySQl”中。  

SELECT * INTO testMySQL.dbo.shoutbox FROM openquery(MYSQL, 'SELECT * FROM tigerdb.shoutbox')

我将两个思路提供给你:

1、首先,你要有一个业务层和一个数据访问接口层和数据层(后两层可以合并),业务层中有数据 *** 作时同时 *** 作其它两层的数据,只有同时成功了才提交事务。这样可以确保数据一致。

2、设计和实现一个数据同步工具,我实现了一个SQL Server和Oracle之间数据同步的工具,利用一个定义表(主键,字段,表名,同步标识等)和DataSet做中转,能够将两个数据库中需要同步的表同步成相同的内容,你可以根据要求指定同步周期。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/7564312.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存