怎么快速迁移数据从 MSSQL 到 MySQL

怎么快速迁移数据从 MSSQL 到 MySQL,第1张

mssql 数据导出为sql  方法是在mssql数据库管理平台 选中数据库,鼠标右键菜单选 所有任务-》生成脚本 ,在对话框中注意选上生成数据脚本,否则只有表结构脚本。

把生成的脚本通过记事本打开,通过查找替换做些修改,使符合mysql语法,  主要是 如Go等替换为空格, 每个sql语句后加上;号, 字段类型smalldatetime 改为 datetime,   uniqueidentifier 改为 char(36)          IDENTITY(1,1)  改为  AUTO_INCREMENTdao 及中括号去掉等;

如果表不多,可以把编辑好的适合mysql中运行的sql 一个表一个表的复制执行建立表结构和插入数据 及时监控和修正错误语句

每次正确执行的sql另行保存到一个记事本中,以便以后作为备份使用

以下有几款迁移工具的对比,可以参考,比较推荐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,就是提示了转换成功,但后面的进度条却没有走完(在后面的数据完整性评测中,我们验证了数据其实是已经全部处理完毕了)。

方法一:

将\Microsoft SQL Server\MSSQL\DATA文件夹中的syntt_datamdf和syntt_logldf文件复制到安装有数据库服务器的机器的文件夹中(可以是本机的\Microsoft SQL Server\MSSQL\DATA\文件夹),然后进入企业管理器。右键点击“数据库”,在浮动菜单中选择“所有任务”中的“附加数据库”。

在随后的提示页面中选择刚才复制过来的MDF文件,如果想指定数据库的所有者,在“指定数据库所有者”选择框中选择你认为合适的用户。如果想修改数据库的名字,可在“附加为”框中输入新的数据库名字(对本数据库,不建议这么做,因为这样的话,整个程序中所有涉及数据库连接的代码都要随之修改,那将是不必要的劳动)。

在进行完上述的工作之后,直接点击“确定”就可进行数据的SQL Server 数据转移转移。

方法二:

(方法一)是针对数据库中没有本数据库的服务器,如果数据库中已经建有与该数据库名称相同的数据库,则直接按照备份数据库的恢复 *** 作就可完成数据的SQL Server 数据转移转移。

方法如下所述:

这种方法首先要在本机上建立一个备份文件,具体 *** 作介绍如下:

1、 在企业管理器中打开服务器组以及指定的服务器。然后右键点击需要备份的数据库在这里是syntt,在浮动菜单中选择“所有任务”菜单下的“备份数据库”,打开数据备份对话框。

2、 选择“常规”选项卡,在名称对话框中输入本分集合名称,在“描述”文本框中输入备份集描述文本信息。在“备份”组下选择备份 *** 作类型,共有以下几种:

数据库—完全:完整备份数据库。

数据库—差异:增量备份数据库。

事务日志:事务日志备份。

文件和文件组:数据库文件和文件组备份。

在“目的”组中指定备份设备或者备份文件名称,选择“添加”按钮添加备份设备或者文件;“删除”按钮用来删除备份设备和备份文件;选择“内容”按钮,则可查看已经存储在备份设备或文件中的备份信息。

在“重写”组中有两种选项:

追加到媒体:选择该选项,表示需要保存备份设备或文件中以前的备份数据。

重写现有媒体:要求本次被分数据覆盖以前的备份数据,从而节省存储空间。

在“调度”组中,安排数据备份的时间。用来指定数据库备份在将来的某个时间执行

3、 “选项”选项卡,设置数据库备份 *** 作选项。其中的内容主要有以下几项:

完成后验证备份:要求在备份结束时对备份数据进行校验。

备份后d出磁带:只对磁带备份设备有效,他要求在备份结束时自动卸带。

删除事务日志中不活动的条目:要求在事务日志备份结束时删除事务日志中的已经完成的事务日志条目。

检查媒体集名称和备份集到期时间:要求在备份前检查介质集名称和原备份集中备份SQL Server 数据转移的有效期,以防止意外重写破坏原来的备份数据。

备份集到期时间:设置备份集的有效期。

初始化并标识媒体:只对磁带设备有效。选择该选项后,SQL Server在备份时将Microsoft定义的磁带格式信息写入介质的开始部分。此时,可以在“媒体集名称”和“媒体集描述”文本框中定义介质集名称和介质描述信息。

4、 在进行完上述的 *** 作之后,剩下的任务就是点击“确定”,使系统开始进行数据库的备份 *** 作。

到目前为止,我们已经有了一个数据库的备份文件,剩下的任务就是怎么将这个文件还原至另外的数据库服务器中了。

1、因为使用企业管理器进行数据库的恢复只能是在本机进行,所以在进行数据还原之前,必须将刚才所作的备份文件复制到本机,然后在本机选择“syntt”数据库,右键点击它,在显示出来的浮动菜单中选择“所有任务”下的“还原数据库”。

2、在还原数据库对话框中,在“常规”选项卡中的选择“从设备”的数据恢复方法,通过“选择设备”按钮选择刚才复制过来的文件。

“常规”选项卡与“选项”选项卡中的具体内容如下所示:

“常规”选项卡:

数据库恢复方法:包括“数据库”、“文件组或文件”、“从设备”三种恢复方式。

“数据库”方式:选择该项时,从“显示数据库备份”列表中选择需要显示的指定数据库备份集合,从“要还原的第一个备份”列表框中选择首先使用哪一个备份集恢复数据库;“文件组或文件”:选择它时,数据库恢复部件列出指定数据库备份集合中备份的数据库文件或文件组,管理员可从这些备份文件中选择恢复那个数据库文件或文件组;“从设备”:选择它时,管理员选择恢复数据库或其日志所使用的备份设备,之后再从该备份设备中选择使用哪一次备份中的数据恢复数据库或其日志。

3、点击“确定”,完成恢复 *** 作。

移动到新路径我们希望将这些数据库文件移动到一个新路径,键入新路径就可以。本文我们移动到下面的路径:D: SQLDATADatabase_Name_Heremdf D:SQLLogsDatabase_Name_Here_1ldf进度现在可以单击确定按钮,开始恢复数据库。成功恢复你已经成功恢复移动完成数据库文件。证据现在你已经成功恢复移动完成数据库文件——更多证据。新查询现在让我们介绍我喜欢使用的方法,该方法省去了所有选择和单击。你可以使用一条TSQL Restore移动语句完成同样的任务。使用T—SQL方法移动数据库让我们从打开SQL Server管理工具开始,然后单击新查询按钮。逻辑名称第一步需要运行下面的查询:Restore FILELISTONLY FROM DISK='d:Business_Databak'

利用该查询可以找到需要恢复到新路径的数据库和日志文件的逻辑名称。恢复到新路径在获得了逻辑名之后,我们可以使用下面的查询将数据库恢复到一个新位置。RESTOREDATABASEBusiness_Data_TSQLFROM DISK='d:Business_Databak'WITHMOVE 'Business_Data' TO 'D:TSQLBusiness_Datamdf', MOVE 'Business_Data_log' TO 'D:TSQLBusiness_Data_logldf'

该语句将用来恢复数据库到一个新路径。完成百分比你可以看到Restore FileListOnly TSQL语句中使用的逻辑名和物理名。如果是一个较大的数据库为了查看完成进度,还可以添加状态语句如下所示:RESTOREDATABASEBusiness_Data_TSQLFROM DISK='d:Business_Databak'WITHMOVE 'Business_Data' TO 'D:TSQLBusiness_Datamdf', MOVE 'Business_Data_log' TO 'D:TSQLBusiness_Data_logldf', STATS=5

本文中,我们介绍了完成的数据库备份恢复方法。如果你是在恢复事务日志文件,不要忘记在你的查询中使用With NORECOVERY语句。

以上就是关于怎么快速迁移数据从 MSSQL 到 MySQL全部的内容,包括:怎么快速迁移数据从 MSSQL 到 MySQL、如何将SQL Server数据迁移到MySQL、sql server 2008 数据库的迁移有哪些方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/sjk/9771491.html

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

发表评论

登录后才能评论

评论列表(0条)

保存