SQL Server数据迁移至MySQL

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

背景:


我所在公司的官网使用了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.


wKiom1ZqNKCQtWm4AACwJWN0rPI090.png


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

wKiom1ZqNhrC29VRAAGEF3pljLU037.png


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


wKiom1ZqN_2S0g4pAAGWWT2Jo6o713.png


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


wKioL1ZqOMSDD0J5AAC66Ndm9Ko262.png


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


wKioL1ZqOvDBmGpMAAD-T6kD9kA778.png


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

wKiom1ZqOvCzIs0BAAC3MrF1VNA864.png


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


wKioL1ZqOvLi7b_4AADikynUbHw590.png


在"Migration"中选择下一步。


wKioL1ZqOvOQI3HIAAC4RPLxmzc094.png


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


wKioL1ZqOvWR6jTLAACkUQ9Yfek528.png


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


wKioL1ZqOvayDiQnAADOixvTm4A649.png


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


wKioL1ZqOvfjfoQHAADQhhNNMLc136.png


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


wKiom1ZqOviA3DsoAAE9EycyGXQ224.png


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


wKiom1ZqOvrintp3AADbj9QfKXg059.png


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


wKioL1ZqOvyTjqRcAACvQbzm2kc514.png


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


wKioL1ZqPWmxq1cqAAAT8areXE8838.png


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


wKioL1ZqPkLTmOY8AABCaic-tXE681.png


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


wKioL1ZqRFHj77QDAAIsqCZ_KZc161.png


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


wKiom1ZqRFKCehB5AAC26KolVs0199.png


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


wKioL1ZqRFSBB3PUAADopUKYmws955.png


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


wKiom1ZqRFOwOdXsAABlT6khMMg710.png


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


wKioL1ZqRFWjdgnaAACGrJCxnkw420.png


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


wKioL1ZqReqQgCFsAABzB0Q40wo413.png


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


wKiom1ZqReuz_h82AAEscwSntSk845.png


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











本文转自 安安安安森  51CTO博客,原文链接:http://blog.51cto.com/smallc/1721922,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
13天前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
52 10
|
13天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
78 6
|
1天前
|
SQL 关系型数据库 MySQL
:“You have an error in your SQL syntax; check the manual that corresponds to your MySQL server versi
:“You have an error in your SQL syntax; check the manual that corresponds to your MySQL server versi
6 0
|
8天前
|
关系型数据库 MySQL Linux
Linux联网安装MySQL Server
Linux联网安装MySQL Server
20 0
|
8天前
|
SQL 安全 网络安全
IDEA DataGrip连接sqlserver 提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接的解决方法
IDEA DataGrip连接sqlserver 提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接的解决方法
19 0
|
9天前
|
SQL 关系型数据库 数据库
【后端面经】【数据库与MySQL】SQL优化:如何发现SQL中的问题?
【4月更文挑战第12天】数据库优化涉及硬件升级、操作系统调整、服务器/引擎优化和SQL优化。SQL优化目标是减少磁盘IO和内存/CPU消耗。`EXPLAIN`命令用于检查SQL执行计划,关注`type`、`possible_keys`、`key`、`rows`和`filtered`字段。设计索引时考虑外键、频繁出现在`where`、`order by`和关联查询中的列,以及区分度高的列。大数据表改结构需谨慎,可能需要停机、低峰期变更或新建表。面试中应准备SQL优化案例,如覆盖索引、优化`order by`、`count`和索引提示。优化分页查询时避免大偏移量,可利用上一批的最大ID进行限制。
35 3
|
13天前
|
SQL 存储 数据挖掘
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
服务器数据恢复环境: 一台安装windows server操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。 在windows服务器内装有SqlServer数据库。存储空间LUN划分了两个逻辑分区。 服务器故障&初检: 由于未知原因,Sql Server数据库文件丢失,丢失数据涉及到3个库,表的数量有3000左右。数据库文件丢失原因还没有查清楚,也不能确定数据存储位置。 数据库文件丢失后服务器仍处于开机状态,所幸没有大量数据写入。 将raid5中所有磁盘编号后取出,经过硬件工程师检测,没有发现明显的硬件故障。以只读方式将所有磁盘进行扇区级的全盘镜像,镜像完成后将所
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
|
16天前
|
SQL 存储 关系型数据库
【MySQL实战笔记】02.一条SQL更新语句是如何执行的-2
【4月更文挑战第5天】两阶段提交是为确保`redo log`和`binlog`逻辑一致,避免数据不一致。若先写`redo log`, crash后数据可能丢失,导致恢复后状态错误;若先写`binlog`,crash则可能导致重复事务,影响数据库一致性。一天一备相较于一周一备,能缩短“最长恢复时间”,但需权衡额外的存储成本。
16 1
|
17天前
|
SQL 数据安全/隐私保护
SQL Server 2016安装教程
SQL Server 2016安装教程
19 1
|
17天前
|
SQL 安全 Java
SQL server 2017安装教程
SQL server 2017安装教程
15 1