首页 > 数据库 >通过MySQL Workbench 将 SQL Server 迁移到GreatSQL

通过MySQL Workbench 将 SQL Server 迁移到GreatSQL

时间:2024-10-09 13:59:37浏览次数:8  
标签:Workbench MySQL GreatSQL Server length SQL 迁移

通过MySQL Workbench 将 SQL Server 迁移到GreatSQL

一、概述

MySQL Workbench 提供了可以将Microsoft SQL Server的表结构和数据迁移到 GreatSQL 的功能,此次将通过MySQL Workbench将SQL Server的数据迁移到GreatSQL。

本文章只是简单演示一下单张表的迁移,如果在项目中使用请根据实际情况进行调整。

二、风险评估

1.数据类型不匹配

两种数据库系统的数据类型可能不完全兼容。在迁移过程中,需要确保数据在不同类型之间的正确转换,否则可能导致数据丢失或不准确。

下表显示了Microsoft SQL Server(源)数据类型和GreatSQL数据类型之间的映射。

Microsoft SQL Server Type GreatSQL Type Comment
INT INT
TINYINT TINYINT UNSIGNED flag set in MySQL.
SMALLINT SMALLINT
BIGINT BIGINT
BIT TINYINT(1)
FLOAT FLOAT Precision value is used for storage size in both.
REAL FLOAT
NUMERIC DECIMAL
DECIMAL DECIMAL
MONEY DECIMAL
SMALLMONEY DECIMAL
CHAR CHAR/LONGTEXT Depending on its length. MySQL Server 5.6 and higher can have CHAR columns with a length up to 255 characters. Anything larger is migrated as LONGTEXT.
NCHAR CHAR/LONGTEXT Depending on its length. MySQL Server 5.6 and higher can have VARCHAR columns with a length up to 65535 characters. Anything larger is migrated to one of the TEXT blob types. In MySQL, a character set of strings depends on the column character set instead of the data type.
VARCHAR VARCHAR/MEDIUMTEXT/LONGTEXT Depending on its length. MySQL Server 5.6 and higher can have VARCHAR columns with a length up to 65535 characters. Anything larger is migrated to one of the TEXT blob types.
NVARCHAR VARCHAR/MEDIUMTEXT/LONGTEXT Depending on its length. MySQL Server 5.6 and higher can have VARCHAR columns with a length up to 65535 characters. Anything larger is migrated to one of the TEXT blob types. In MySQL, a character set of strings depends on the column character set instead of the data type.
DATE DATE
DATETIME DATETIME
DATETIME2 DATETIME Date range in MySQL is '1000-01-01 00:00:00.000000' to '9999-12-31 23:59:59.999999'. Note: fractional second values are only stored as of MySQL Server 5.6.4 and higher.
SMALLDATETIME DATETIME
DATETIMEOFFSET DATETIME
TIME TIME
TIMESTAMP TIMESTAMP
ROWVERSION TIMESTAMP
BINARY BINARY/MEDIUMBLOB/LONGBLOB Depending on its length.
VARBINARY VARBINARY/MEDIUMBLOB/LONGBLOB Depending on its length.
TEXT VARCHAR/MEDIUMTEXT/LONGTEXT Depending on its length.
NTEXT VARCHAR/MEDIUMTEXT/LONGTEXT Depending on its length.
IMAGE TINYBLOB/MEDIUMBLOB/LONGBLOB Depending on its length.
SQL_VARIANT not migrated There is not specific support for this data type.
TABLE not migrated There is not specific support for this data type.
HIERARCHYID not migrated There is not specific support for this data type.
UNIQUEIDENTIFIER VARCHAR(64) A unique flag set in MySQL. There is not specific support for inserting unique identifier values.
SYSNAME VARCHAR(160)
XML TEXT

2.语法和功能差异

SQL Server 和 GreatSQL 在语法、数据类型、函数、存储过程等方面存在一定的差异。某些在 SQL Server 中使用的语法和功能可能在 GreatSQL 中不支持,或者需要进行修改和调整。

例如,复杂的存储过程、触发器、视图等可能需要重新编写或修改以适应GreatSQL 的语法和规则。

3.应用程序兼容性

如果有依赖于原始数据库的应用程序,迁移后可能需要对应用程序进行修改和测试,以确保其与GreatSQL 数据库正常交互。

4.数据迁移过程中的错

在数据迁移过程中,可能会出现数据丢失、损坏或不一致的情况。需要进行充分的测试和验证,以确保数据的完整性和准确性。

5.性能差异

GreatSQL 和 SQL Server 的性能特点不同。例如,索引的使用、查询优化器的工作方式等可能存在差异。迁移后需要重新评估和优化SQL,以确保在 GreatSQL 环境中获得良好的性能。

三、环境说明

1.源端Microsoft SQL Server

版本 IP 端口
Microsoft SQL Server 2017 192.168.140.60 1433

2.目标端GreatSQL

版本 IP 端口
GreatSQL-8.0.32 192.168.140.60 5000

四、数据库安装

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/

file

3.2 安装

双击安装,一直点 Next 即可

file

五、Microsoft SQL Server 创建测试数据

1.连接数据库

$ /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P'xxx'

2.创建测试数据

3> CREATE DATABASE test2024;
4> go
5> use test2024
6> go
Changed database context to 'test2024'.
1> CREATE TABLE t1 (id int,name varchar(30))
2> go
1> 
2> INSERT INTO t1 VALUES (1,'a'),(2,'b'),(3,'c')
3> go

(3 rows affected)
1> SELECT * FROM t1
2> go
id          name                          
----------- ------------------------------
          1 a                             
          2 b                             
          3 c                             

(3 rows affected)

配置数据迁移

1.启动迁移功能

双击打开MySQL workbench,点击数据迁移功能,再点击开始迁移按钮

file

file

2.配置源端/目标端

2.1 源端选择 Microsoft SQL Server

file

需要安装SQL Server驱动:Download Microsoft® SQL Server® 2012 Native Client - QFE from Official Microsoft Download Center

下载完成后,双击安装包点下一步即可

2.2 目标端默认为MySQL

file

配置完成后,点击 Next

3.获取源端schema列表

file

点击 Next 即可

4.选择要迁移的schema

file

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

5.逆向工程

file

这是一个自动化的信息步骤,用于报告相关错误、常规日志信息或两者。点击 Next 进行下一步

6.选择迁移对象

可以在下面的列表选择要迁移的对象,默认是迁移第4步中选择的schema下的所有表

file

选择要迁移的对象,点击 Next

7.迁移

将SQL Server对象 自动转换为MySQL兼容对象,将使用默认数据类型和默认列值映射。

file

点击下一步即可

8.手动编辑

查看和编辑迁移对象,可以在它们被应用到目标数据库之前进行编辑

file

Migration Problems: 这将报告问题或显示“未找到映射问题”。

All Objects:一个对象视图,用于查看和编辑对象定义。双击一行以修改目标对象的名称。

Column Mappings:显示所有表列映射,并允许您单独查看和修复所有列类型、默认值和其他属性的映射。

9.目标端创建选项

可以选择在目标端数据库创建对象、或者生成创建SQL的脚本文件或两者都可以选择。

file

点击 Next 进行下一步

10.创建schema

在目标端正式创建对象

file

11.目标端创建结果

file

这里列出了生成的对象,以及错误消息(如果存在)。

也可以在此处查看和编辑迁移代码。若要进行更改,请选择一个对象,编辑查询SQL语句,然后单击“Apply”。

对每个要编辑的对象重复此过程。最后,单击“Recreate Objects”以保存结果。

12.数据传输设置

file

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.批量数传输

file

根据上一步所选的选项,进行数据传输

14.迁移报告

数据迁移完成后,会自动生成报告,总结了整个迁移过程

file

七、目标端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官网进行查看。


Enjoy GreatSQL

标签:Workbench,MySQL,GreatSQL,Server,length,SQL,迁移
From: https://www.cnblogs.com/greatsql/p/18454089

相关文章

  • nacos gateway 调用服务报错503 Server unavailable
    环境springboot3jdk17依赖<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId></dependency><dependency><groupId>org.springframe......
  • 解决ERROR ResizeObserver loop completed with undelivered notifications.
    https://www.cnblogs.com/luo9tian/p/18116299该报错虽然不影响项目运行,但是影响开发效率,总是弹出报错的黑框很烦人该报错原因:newResizeObserver包裹的方法,在布局发生变化时,不支持每帧都调用解决方法:用window.requestAnimationFrame包裹回调函数在App.vue/main.js中加......
  • 【星闪开发连载】SLE_UUID_Server和SLE_UUID_Client程序测试
    引言前一篇博文介绍了SLE_UUID_Server和SLE_UUID_Client程序的基本结构,这篇介绍如何进行测试,从而实现两块星闪开发板之间的连接。服务器的构建在sdk根目录下(即src目录)打开集成终端台,执行python build.py-cws63-liteos-appmenuconfig命令,会出现选择弹窗。menuconfig这......
  • Revit Server的注意要配置说明
    可以执行多项检查来验证RevitServer是否正常运行或确定问题的原因:确认IIS管理器中显示以下服务(“开始”—>“运行intemgr”):   AdminService####(这构成列出的三个RevitServerAdministrator服务之一)。   LocalService####(这负责Accelerator功能)。   ModelSe......
  • 错误消息:#2002 - Can't connect to local MySQL server through socket '/tmp/mysql.s
    错误消息:#2002-Can'tconnecttolocalMySQLserverthroughsocket'/tmp/mysql.sock'(2)原因:数据库服务未启动。连接参数错误。解决方法:检查数据库服务:确认MySQL服务是否正常运行。sudoservicemysqlstatus检查连接参数:确认连接参数(主机名、用......
  • MSSQL远程连接(Microsoft SQL Server)
    本篇远程连接说明,旨在学习记录入门级连接局域网服务器的方法。1.学习环境:局域网2.学习软件:MSSQL3.远程连接记录  前置:打开控制面板-程序-程序和功能-打开或关闭windows功能,Telnet客户端,Telnet服务器,TelNetPC组件必须勾选 (1)首先看一下服务器的MSSQL的数据库属性,连接......
  • GraphQL、sequelize-typescript 、Apollo Server 4 实例
    新建项目文件夹$mkdirdemo$cddemo初始化TypeScript配置$npxtsc--init安装SequelizeSequelize-cli$npminstall--save-dev@types/node@types/validator$npminstallsequelizereflect-metadatasequelize-typescript$npminstall--save-devts-node......
  • mysql 连接失败:message from server: "Host 'xx.xxx' is not allowed to connect to t
    前言mysql连接失败:messagefromserver:"Host'192.168.xx.xxx'isnotallowedtoconnecttothisMySQLserver"解决错误信息表明你尝试从IP地址192.168.xx.xxx连接到MySQL服务器,但是该IP地址没有被授权连接权限。为了解决这个问题,你需要确保你的MySQL用户权......
  • Migrate SQL Server to AWS & Azure & Huawei Cloud
    MigrateSQLServertoAWSMicrosoftSQLServerAlwaysOnavailabilitygroupsprovideahighavailability(HA)anddisasterrecovery(DR)solutionforSQLServer.Anavailabilitygroupconsistsofaprimaryreplicathatacceptsread/writetraffic,andup......
  • Kettle: pentaho-server-ce-9.4 : ERROR [SchemaUpdate] could not get database metad
    PENTAHO-SERVER-CE-9.4+MYSQL8.0.35+JDK1.8:启动提示日志内容(部分): UsingCATALINA_BASE:"D:\Programs\pentaho-server\tomcat"UsingCATALINA_HOME:"D:\Programs\pentaho-server\tomcat"UsingCATALINA_TMPDIR:"D:\Programs\pentaho-......