背景:


我所在公司的官网使用了PHP进行重新开发,抛弃了原有.net开发环境,但需要使用到老官网的一些数据,所以需要进行数据迁移。


环境如下:

老官网:Windows Server 2008 R2, SQL Server 2008 R2

新官网:RedHat 6.5,MySQL,PHP...


====================我是分割线=========================


目前网络上有很多软件声称是可以进行SQL Server-> My SQL的数据迁移,比如OBDB2DB,但我尝试转换不成功,其他类似的小软件,我也没去测试。在这里我使用了MySQL官方提供的MySQL WorkBench,此软件功能强大,既可以设计开发数据库,也可以进行数据转移。具体链接,请大家自行去MySQL官网查找。


MySQL workbench安装过程略,具体迁移过程如下:


打开MySQL workbench->Database->Migration wizard->Start Migration.


SQL Server数据迁移至MySQL_第1张图片


在"Database system"选项中选择"Microsoft SQL Server",在Connection Method中选择"ODBC(native)",输入相应的服务器,用户名,密码,点击"Test Connection"即可测试是否连接成功。

SQL Server数据迁移至MySQL_第2张图片


在"Target Selection"页面中填入目标MySQL信息并测试连接情况,然后点击下一步。


SQL Server数据迁移至MySQL_第3张图片


在"Fetch Schemas list"页面中,软件会对源数据库进行数据检查以及获取相应信息。


SQL Server数据迁移至MySQL_第4张图片


在"Schemas Selection"选择你想要迁移的数据库,点击下一步。


SQL Server数据迁移至MySQL_第5张图片


在"Reverse Engineer Source"选项点击下一步即可。

SQL Server数据迁移至MySQL_第6张图片


在"Source Objects"中选择你想迁移源数据的类型,默认会勾选"Migrate Table objects",默认即可,点击下一步。


SQL Server数据迁移至MySQL_第7张图片


在"Migration"中选择下一步。


SQL Server数据迁移至MySQL_第8张图片


在"Manual editing"查看迁移可能存在的错误,警告。一般有错误几乎是无法迁移成功,有警告还是有可能的。


SQL Server数据迁移至MySQL_第9张图片


在"Target Creation Option"选项中选择"Create Schema in target RDBMS",是否需要创建"SQL Script"看自己的需求喽。默认是不会选中。


SQL Server数据迁移至MySQL_第10张图片


在"Create Schemas"页面中,软件会在目标MySQL中自动创建相应的Schemas以及Objects。


SQL Server数据迁移至MySQL_第11张图片


"Create Target Results"中可以查看到创建的结果,右侧会显示成功状态。


SQL Server数据迁移至MySQL_第12张图片


"Data Transfer Setup"页面中,软件会拷贝源数据到目标数据库,有三个选项可以选择,如果网络允许,直接选择"Online copy of table data to target RDBMS",即在线迁移。


SQL Server数据迁移至MySQL_第13张图片


"Bulk Data Transfer"页面中可以看到数据迁移的过程,如果迁移一直正常,那么就迁移成功啦。


SQL Server数据迁移至MySQL_第14张图片


可惜我本次迁移存在问题,记得之前页面的warning么,很有可能是那个问题。但只是1个表迁移有问题,其他表是没有问题的,可以连接到目标数据库去查看。


SQL Server数据迁移至MySQL_第15张图片


如果只是1个表迁移失败并且表中的数据不是很多,我们可以通过手动迁移,通过log可以看出,有一个表迁移失败。我们接下来手动迁移这个表。


SQL Server数据迁移至MySQL_第16张图片


打开MS SQL Server 2008 Management,找到对应的数据库,在数据库上点击右键“任务”->“生成脚本”


SQL Server数据迁移至MySQL_第17张图片


在选择对象中,选择“选择特定数据库对象”,找到想要导出的表,点击下一步。


SQL Server数据迁移至MySQL_第18张图片


在“设置脚本编写选项”页面中,点击高级选项。


SQL Server数据迁移至MySQL_第19张图片


“找到要编写标本的数据的类型”,选择“架构和数据”。


SQL Server数据迁移至MySQL_第20张图片


摘要选项,review相关信息,并点击下一步,即会自动生成脚本。


SQL Server数据迁移至MySQL_第21张图片


稍等片刻之后,可以在保存目录中找到脚本文件。


SQL Server数据迁移至MySQL_第22张图片


下图即是导出的MS SQL script,但由于导出的SQL script只适用于SQL Server,导入MySQL需要进一步修改,由于两者语法差别不大,稍稍修改即可,请自行搞定啦啦啦啦啦.....


SQL Server数据迁移至MySQL_第23张图片


修改后的语句,可以自动在MySQL命令行中执行插入数据,接下来的步骤请自行搞定啦阿拉拉了拉了。。。



==============我是分割线=========================


妈蛋,上面的图都白打马赛克了,最后一张全给暴漏了....


What the hell %>_<%