写点什么

通过 MySQL Workbench 将 SQL Server 迁移到 GreatSQL

作者:GreatSQL
  • 2024-10-09
    福建
  • 本文字数:2500 字

    阅读完需:约 8 分钟

通过 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.连接数据库

$ /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P'xxx'
复制代码

2.创建测试数据

3> CREATE DATABASE test2024;4> go5> use test20246> goChanged database context to 'test2024'.1> CREATE TABLE t1 (id int,name varchar(30))2> go1> 2> INSERT INTO t1 VALUES (1,'a'),(2,'b'),(3,'c')3> go
(3 rows affected)1> SELECT * FROM t12> goid name ----------- ------------------------------ 1 a 2 b 3 c
(3 rows affected)
复制代码

配置数据迁移

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 查询数据


greatsql> SHOW DATABASES;+--------------------+| Database           |+--------------------+| adm                || das                || information_schema || mysql              || performance_schema || sys                || sys_audit          || test2024           |+--------------------+8 rows in set (0.00 sec)
greatsql> SELECT * FROM test2024.t1;+------+------+| id | name |+------+------+| 1 | a || 2 | b || 3 | c |+------+------+3 rows in set (0.00 sec)
复制代码

总结

MySQL workbench 支持从某些特定 RDBMS 产品迁移到 GreatSQL(MySQL),更多功能的使用可以登录 MySQL 官网进行查看。


用户头像

GreatSQL

关注

GreatSQL社区 2023-01-31 加入

GreatSQL是由万里数据库维护的MySQL分支,专注于提升MGR可靠性及性能,支持InnoDB并行查询特性,是适用于金融级应用的MySQL分支版本。 社区:https://greatsql.cn/ Gitee: https://gitee.com/GreatSQL/GreatSQL

评论

发布
暂无评论
通过MySQL Workbench 将 SQL Server 迁移到GreatSQL_GreatSQL_InfoQ写作社区