通过 MySQL Workbench 将 SQL Server 迁移到 GreatSQL
通过 MySQL Workbench 将 SQL Server 迁移到 GreatSQL
一、概述
MySQL Workbench 提供了可以将 Microsoft SQL Server 的表结构和数据迁移到 GreatSQL 的功能,此次将通过 MySQL Workbench 将 SQL Server 的数据迁移到 GreatSQL。
本文章只是简单演示一下单张表的迁移,如果在项目中使用请根据实际情况进行调整。
二、风险评估
1.数据类型不匹配
两种数据库系统的数据类型可能不完全兼容。在迁移过程中,需要确保数据在不同类型之间的正确转换,否则可能导致数据丢失或不准确。
下表显示了 Microsoft SQL Server(源)数据类型和 GreatSQL 数据类型之间的映射。
2.语法和功能差异
SQL Server 和 GreatSQL 在语法、数据类型、函数、存储过程等方面存在一定的差异。某些在 SQL Server 中使用的语法和功能可能在 GreatSQL 中不支持,或者需要进行修改和调整。
例如,复杂的存储过程、触发器、视图等可能需要重新编写或修改以适应 GreatSQL 的语法和规则。
3.应用程序兼容性
如果有依赖于原始数据库的应用程序,迁移后可能需要对应用程序进行修改和测试,以确保其与 GreatSQL 数据库正常交互。
4.数据迁移过程中的错
在数据迁移过程中,可能会出现数据丢失、损坏或不一致的情况。需要进行充分的测试和验证,以确保数据的完整性和准确性。
5.性能差异
GreatSQL 和 SQL Server 的性能特点不同。例如,索引的使用、查询优化器的工作方式等可能存在差异。迁移后需要重新评估和优化 SQL,以确保在 GreatSQL 环境中获得良好的性能。
三、环境说明
1.源端 Microsoft SQL Server
2.目标端 GreatSQL
四、数据库安装
1.安装 Microsoft SQLServer 环境
略,参考文档:Datax助力轻松迁移SQLServer数据至GreatSQL
2.安装 GreatSQL 环境
略,参考文档:二进制包安装 | GreatSQL 用户手册
https://greatsql.cn/docs/8.0.32-25/4-install-guide/3-install-with-tarball.html
3.安装 MySQL workbench
3.1 下载
下载地址:https://dev.mysql.com/downloads/workbench/

3.2 安装
双击安装,一直点 Next 即可

五、Microsoft SQL Server 创建测试数据
1.连接数据库
2.创建测试数据
六、配置数据迁移
1.启动迁移功能
双击打开 MySQL workbench,点击数据迁移功能,再点击开始迁移按钮


2.配置源端/目标端
2.1 源端选择 Microsoft SQL Server

需要安装 SQL Server 驱动:Download Microsoft® SQL Server® 2012 Native Client - QFE from Official Microsoft Download Center
下载完成后,双击安装包点下一步即可
2.2 目标端默认为 MySQL

配置完成后,点击 Next
3.获取源端 schema 列表

点击 Next 即可
4.选择要迁移的 schema

保持默认配置即可(3 个选项与目标端库表名映射有关),点击 Next
5.逆向工程

这是一个自动化的信息步骤,用于报告相关错误、常规日志信息或两者。点击 Next 进行下一步
6.选择迁移对象
可以在下面的列表选择要迁移的对象,默认是迁移第 4 步中选择的 schema 下的所有表

选择要迁移的对象,点击 Next
7.迁移
将 SQL Server 对象 自动转换为 MySQL 兼容对象,将使用默认数据类型和默认列值映射。

点击下一步即可
8.手动编辑
查看和编辑迁移对象,可以在它们被应用到目标数据库之前进行编辑

Migration Problems: 这将报告问题或显示“未找到映射问题”。
All Objects:一个对象视图,用于查看和编辑对象定义。双击一行以修改目标对象的名称。
Column Mappings:显示所有表列映射,并允许您单独查看和修复所有列类型、默认值和其他属性的映射。
9.目标端创建选项
可以选择在目标端数据库创建对象、或者生成创建 SQL 的脚本文件或两者都可以选择。

点击 Next 进行下一步
10.创建 schema
在目标端正式创建对象

11.目标端创建结果

这里列出了生成的对象,以及错误消息(如果存在)。
也可以在此处查看和编辑迁移代码。若要进行更改,请选择一个对象,编辑查询 SQL 语句,然后单击“Apply”。
对每个要编辑的对象重复此过程。最后,单击“Recreate Objects”以保存结果。
12.数据传输设置

**Online copy of table data to target RDBMS:**此方法(默认)将数据复制到目标端数据库。
**Create a batch file to copy the data at another time:**数据也可以转储到一个稍后可以执行的文件中,或者用作备份。此脚本使用 MySQL 连接来传输数据。
Create a shell script to use native server dump and load abilities for fast migration:与执行实时在线复制的简单批处理文件不同,这会生成一个要在源主机上执行的脚本,然后生成一个 Zip 文件,其中包含在目标主机上本地迁移数据所需的所有数据和信息。复制并提取目标主机上生成的 Zip 文件,然后执行导入脚本(在目标主机上),使用 LOAD data 命令将数据导入 MySQL。
13.批量数传输

根据上一步所选的选项,进行数据传输
14.迁移报告
数据迁移完成后,会自动生成报告,总结了整个迁移过程

七、目标端 GreatSQL 查询数据
登录 GreatSQL 查询数据
总结
MySQL workbench 支持从某些特定 RDBMS 产品迁移到 GreatSQL(MySQL),更多功能的使用可以登录 MySQL 官网进行查看。
评论