本示例将 Microsoft SQL Server 数据库迁移到 MySQL,并包含每个步骤的图像。
在 MySQL Workbench 中,选择“数据库”,然后选择“迁移”以打开迁移向导并显示迁移向导概述(参见下图)。
概述
它描述了在继续操作之前应该了解的先决条件和要求。“打开 ODBC 管理器”选项将加载 odbcad32.exe,用于确认是否安装了 SQL Server 的 ODBC 驱动程序,以及在需要时进行配置更改。
单击“开始迁移”继续。
源选择
选择要迁移到 MySQL 的源 RDBMS。选择要迁移的“数据库系统”,其他连接参数将相应更改。下图显示了连接会话的示例。
目标选择
目标是将包含新迁移数据库的 MySQL 数据库(参见下图)。当前的 Workbench MySQL 连接将在此处可用,或者您可以选择“管理数据库连接”来创建新连接。
获取架构列表
从源 RDBMS 和目标 RDBMS 中检索架构列表(参见下图)。这是一个自动化和信息步骤,用于报告与连接相关的错误和/或常规日志信息。单击“下一步”继续。
架构选择
选择要迁移的架构。
迁移 Microsoft SQL Server 时的“架构名称映射方法”选项
保持架构不变:Catalog.Schema.Table -> Schema.Table:这将创建多个数据库,每个架构一个。
只有一个架构:Catalog.Schema.Table -> Catalog.Table:将每个架构合并到一个数据库中。下图显示了此映射方法的示例。
只有一个架构,将当前架构名称保留为前缀:Catalog.Schema.Table -> Catalog.Schema_table:将架构名称保留为前缀。
逆向工程源
从源 RDBMS 中获取源元数据,然后对其进行逆向工程。这是一个自动化和信息步骤,用于报告相关错误、常规日志信息或两者兼有(参见下图)。查看日志,然后单击“下一步”继续。
源对象
“逆向工程源”阶段发现的对象将显示并可用。如下图所示,结果包括表、视图和例程对象,默认情况下仅选择表对象。
迁移
迁移过程现在将选定的对象转换为与 MySQL 兼容的对象(参见下图)。查看日志,然后继续。
手动编辑
有三个部分可以编辑,可以使用右上角的“视图”选择框进行选择。“显示代码和消息”按钮在每个视图中都可用,它将显示与所选对象相对应的生成的 MySQL 代码。
-
“迁移问题”:这将报告问题或显示“未找到映射问题”。这是一个信息屏幕。下图显示了此类消息的示例。
-
“所有对象”:一个对象视图,允许您查看和编辑对象定义。双击一行以修改目标对象的名称。下图显示了此类消息的示例。
-
“列映射”:显示所有表列映射,并允许您单独查看和修复所有列类型、默认值和其他属性的映射。下图显示了此类消息的示例。
目标创建选项
可以通过将架构添加到目标 RDBMS、创建 SQL 脚本文件或两者兼用来创建架构。下图显示了目标创建选项。
创建架构
现在创建架构(参见下图)。完整的日志也在这里可用。
创建目标结果
下图列出了本示例中生成的对象,以及错误消息(如果有)。
也可以在此处查看和编辑迁移代码。要进行更改,请选择一个对象,编辑查询代码,然后单击“应用”。对要编辑的每个对象重复此过程。最后,单击“重新创建对象”以保存结果。
需要执行“重新创建对象”操作才能保存此处所做的任何更改。然后,它将使用修改后的代码执行上一步迁移步骤(“创建架构”),然后继续迁移过程。这也意味着先前保存的架构将被删除。
数据传输设置
下一步是将数据从源 RDBMS 传输到目标 MySQL 数据库。设置屏幕包括以下选项
数据复制:
“将表数据在线复制到目标 RDBMS”:此方法(默认)会将数据复制到目标 RDBMS。
“创建批处理文件以在其他时间复制数据”:数据也可以转储到文件中,该文件可以在以后执行,或用作备份。此脚本使用 MySQL 连接来传输数据。
-
“创建 Shell 脚本来使用本机服务器转储和加载功能以进行快速迁移”:与执行实时在线复制的简单批处理文件不同,这会生成一个要在源主机上执行的脚本,然后生成一个 Zip 文件,其中包含在目标主机上本地迁移数据所需的所有数据和信息。在目标主机上复制并解压缩生成的 Zip 文件,然后执行导入脚本(在目标主机上),以使用 LOAD DATA 调用将数据导入 MySQL。
这种更快的方法避免了需要通过 MySQL Workbench 传输所有数据,或者需要在 MySQL 服务器之间建立永久网络连接。
注意此选项已在 MySQL Workbench 6.3.0 中添加。
选项(有关示例,请参见下图)
在复制数据之前截断目标表:如果目标数据库已存在,这将删除所述数据。
工作线程任务:默认值为 2。这是复制数据时使用的任务(数据库连接)数量。
为表复制启用调试输出:显示调试信息。
批量数据传输
根据所选的选项,这将把数据传输到目标 RDMS(默认)、生成用于在线数据传输的简单脚本,或者生成要在源主机上执行的脚本,然后生成一个 Zip 文件,其中包含要在目标主机上执行的传输脚本和数据。或者,查看日志以确认(参见下图)。
迁移报告
最后,迁移报告可用,并总结了整个迁移过程,如下图所示。
单击“完成”将关闭迁移窗口。如果您选择了在线复制,那么现在可以在 MySQL Workbench SQL 编辑器中查看数据库,如下图所示。
如果 MySQL Workbench SQL 编辑器选项卡已打开,则必须刷新对象浏览器中的架构列表才能查看新导入的架构。