MySQL 工作台  / 第 10 章 数据库迁移向导  / 10.2 迁移概述  /  10.2.1 执行数据库迁移的可视化指南

10.2.1 执行数据库迁移的可视化指南

此示例将 Microsoft SQL Server 数据库迁移到 MySQL,并为每个步骤包含一个图像。

从 MySQL Workbench 中,选择Database,然后 选择Migrate以打开迁移向导并显示迁移向导概述(参见下图)。

概述

图 10.2 MySQL Workbench 迁移:概述

内容在周围的文字中描述。

它描述了在继续进行之前应该了解的先决条件和要求。Open ODBC Administrator选项将加载 odbcad32.exe,用于确认已安装 ODBC Driver for SQL Server,并在需要时进行配置更改。

单击“开始迁移”继续。

来源选择

选择要迁移到 MySQL 的源 RDBMS。选择要迁移的 数据库系统,其他连接参数将相应更改。下图显示了连接会话的示例。

图 10.3 MySQL Workbench 迁移:源选择(参数)

内容在周围的文字中描述。

目标选择

目标是将包含新迁移的数据库的 MySQL 数据库(参见下图)。当前的 Workbench MySQL 连接将在此处可用,或者您可以选择管理数据库连接来创建新连接。

图 10.4 MySQL Workbench 迁移:目标选择

内容在周围的文字中描述。

获取模式列表

从源和目标 RDBMS 中检索模式列表(参见下图)。这是报告连接相关错误和/或一般日志信息的自动化信息步骤。单击下一步继续。

图 10.5 MySQL Workbench 迁移:获取模式列表

内容在周围的文字中描述。

模式选择

选择要迁移的架构。

迁移 Microsoft SQL Server 时的“架构名称映射方法”选项:

  • 保持模式不变:Catalog.Schema.Table -> Schema.Table:这将创建多个数据库,每个模式一个。

  • 只有一个模式:Catalog.Schema.Table -> Catalog.Table:将每个模式合并到一个数据库中。下图显示了此映射方法的示例。

  • 只有一个模式,将当前模式名称保留为前缀:Catalog.Schema.Table -> Catalog.Schema_table:将模式名称保留为前缀。

图 10.6 MySQL Workbench 迁移:模式选择

内容在周围的文字中描述。

逆向工程源

源元数据从源 RDBMS 中获取,然后进行逆向工程。这是一个自动化的信息性步骤,可报告相关错误、一般日志信息或两者(请参见下图)。查看日志,然后单击 下一步继续。

图 10.7 MySQL Workbench 迁移:逆向工程源

内容在周围的文字中描述。

源对象

逆向工程源阶段发现的对象被揭示并可用。如下图所示,结果包括表、视图和例程对象,默认情况下仅选择表对象。

图 10.8 MySQL Workbench 迁移:源对象

内容在周围的文字中描述。

移民

迁移过程现在将所选对象转换为 MySQL 兼容对象(参见下图)。查看日志,然后继续。

图 10.9 MySQL Workbench 迁移:迁移

内容在周围的文字中描述。

手动编辑

共有三个要编辑的部分,可使用右上角的“视图”选择框进行选择。每个 视图都提供显示代码和消息按钮,它将显示与所选对象对应的生成的 MySQL 代码。

  • 迁移问题:这将报告问题或显示“未发现映射问题”。这是一个信息屏幕。下图显示了此类消息的示例。

    图 10.10 MySQL Workbench 迁移:手动编辑(迁移问题)

    内容在周围的文字中描述。

  • 所有对象:一个对象视图,允许您查看和编辑对象定义。双击一行以修改目标对象名称。下图显示了此类消息的示例。

    图 10.11 MySQL Workbench 迁移:手动编辑(所有对象)

    内容在周围的文字中描述。

  • 列映射:显示所有表列映射,并允许您单独查看和修复所有列类型、默认值和其他属性的映射。下图显示了此类消息的示例。

    图 10.12 MySQL Workbench 迁移:手动编辑(列映射)

    内容在周围的文字中描述。

目标创建选项

可以通过将模式添加到目标 RDBMS 和/或创建 SQL 脚本文件来创建模式。下图显示了目标创建选项。

图 10.13 MySQL Workbench 迁移:目标创建选项

内容在周围的文字中描述。

创建模式

现在模式已创建(请参见下图)。完整的日志也可以在这里找到。

图 10.14 MySQL Workbench 迁移:创建模式

内容在周围的文字中描述。

创建目标结果

下图中列出了本示例中生成的对象以及错误消息(如果存在)。

也可以在此处查看和编辑迁移代码。要进行更改,请选择一个对象,编辑查询代码,然后单击 应用。对将要编辑的每个对象重复此过程。最后,单击重新创建对象以保存结果。

笔记

需要重新创建对象操作才能在此处保存任何更改 。然后它将使用修改后的代码执行之前的迁移步骤(Create Schema),然后继续迁移过程。这也意味着之前保存的架构将被删除。

图 10.15 MySQL Workbench 迁移:创建目标结果

内容在周围的文字中描述。

数据传输设置

下一步将数据从源 RDBMS 传输到目标 MySQL 数据库。设置屏幕包括以下选项:

资料复制

  • 将表数据在线复制到目标 RDBMS:此方法(默认)会将数据复制到目标 RDBMS。

  • 创建一个批处理文件以在其他时间复制数据:数据也可以转储到一个可以在以后执行的文件中,或者用作备份。此脚本使用 MySQL 连接来传输数据。

  • 创建一个 shell 脚本以使用本机服务器转储和加载功能进行快速迁移:与执行实时在线复制的简单批处理文件不同,这会生成一个要在 主机上执行的脚本,然后生成一个包含所有数据的 Zip 文件以及在目标主机上本地迁移数据所需的信息。在目标主机上复制并解压缩生成的 Zip 文件,然后执行导入脚本(在目标主机上)以使用 LOAD DATA 调用将数据导入 MySQL。

    这种更快的方法避免了通过 MySQL Workbench 传输所有数据或在 MySQL 服务器之间建立永久网络连接的需要。

    笔记

    MySQL Workbench 6.3.0 中添加了此选项。

选项(参见下图的示例):

  • 复制数据前截断目标表:如果目标数据库已经存在,这将删除所述数据。

  • 工作任务:默认值为2。这是复制数据时使用的任务(数据库连接)数。

  • 为表复制启用调试输出:显示调试信息。

图 10.16 MySQL Workbench 迁移:数据传输设置

内容在周围的文字中描述。

批量数据传输

根据选择的选项,这会将数据传输到目标 RDMS(默认),为在线数据传输生成一个简单的脚本,或者生成脚本以在源主机上执行,然后生成一个包含传输脚本的 Zip 文件以及将在目标主机上执行的数据。或者,查看日志以确认(参见下图)。

图 10.17 MySQL Workbench 迁移:批量数据传输

内容在周围的文字中描述。

迁移报告

最后,迁移报告可用并总结了整个迁移过程,如下图所示。

图 10.18 MySQL Workbench 迁移:迁移报告

内容在周围的文字中描述。

单击完成将关闭迁移窗口。如果您选择联机副本,那么现在可以在 MySQL Workbench SQL 编辑器中查看数据库,如下图所示。

图 10.19 MySQL Workbench 迁移:查看迁移后的数据库

内容在周围的文字中描述。

笔记

如果 MySQL Workbench SQL Editor 选项卡已打开,则必须刷新对象浏览器中的模式列表才能查看新导入的模式。