迁移指南:从 Oracle 迁移到 SQL Server

适用范围:SQL Server

本指南介绍如何使用适用于 Oracle 的 SQL Server 迁移助手 (SSMA for Oracle) 将 Oracle 数据库迁移到 SQL Server。

有关其他迁移指南,请参阅 Azure 数据库迁移指南

有关详细的代码评估和转换,请继续使用适用于 Oracle 的 SSMA。

先决条件

开始将 Oracle 数据库迁移到 SQL Server 之前,请执行以下步骤:

迁移前

准备迁移到云时,请验证源环境是否受支持,以及是否已满足所有其他先决条件。 这样做有助于确保高效成功地完成迁移。

迁移过程的这一部分涉及到对需要迁移的数据库进行清点、评估它们是否存在潜在的迁移问题或阻碍因素,然后处理可能已发现的任何项。

发现

为了更好地了解和规划迁移,请使用 Microsoft 评估和计划 (MAP) 工具包来确定现有数据源以及有关组织所使用的功能的详细信息。 此过程涉及扫描网络,旨在确定组织的所有 Oracle 实例、版本和功能。

若要使用 MAP 工具包执行清单扫描,请执行以下步骤:

  1. 打开 MAP 工具包

  2. 在“概述”窗格上,选择“创建/选择数据库” 。

    MAP 工具包“概述”窗格中“创建/选择数据库”链接的屏幕截图。

  3. 在“创建或选择数据库”下,选择“创建清单数据库”,输入要创建的清单数据库的名称,提供简短描述,然后选择“确定” 。

    MAPS 工具包中“创建清单数据库”选项的屏幕截图。

  4. 选择“收集清单数据”,打开清单和评估向导 。

    清单和评估向导中“收集清单数据”链接的屏幕截图。

  5. 在向导中,选择“Oracle”,然后选择“下一步” 。

    清单和评估向导中“Oracle”选项和“下一步”按钮的屏幕截图。

  6. 选择最适合组织需求和环境的计算机搜索选项,然后选择“下一步”。

    最适合组织需求的计算机发现方法列表的屏幕截图。

  7. 为要浏览的系统输入当前凭据或创建新凭据,然后选择“下一步”。

    输入计算机凭据的向导窗格的屏幕截图。

  8. 设置凭据的顺序,然后选择“下一步”。

    设置凭据顺序的向导窗格的屏幕截图。

  9. 为要发现的每台计算机指定凭据。 可对每台计算机使用唯一凭据,也可从“计算机”列表中进行选择。

    用于为要发现的每台计算机指定凭证的“使用所有计算机凭证列表”的屏幕截图。

  10. 验证你的选择内容摘要,然后选择“完成”。

    用于检查所选内容的向导“摘要”页的屏幕截图。

  11. 扫描完成后,查看“数据收集”摘要报告。 扫描可能需要几分钟时间,具体取决于数据库的数量。 完成后,选择“关闭”。

    “数据收集摘要报告”页的屏幕截图。

  12. 选择“选项”,生成有关 Oracle 评估和数据库详细信息的报表。 (逐个)选择两个选项来生成报告。

评估

确定数据源后,使用 SSMA for Oracle 来评估要迁移到 SQL Server 虚拟机的 Oracle 实例,以了解两者之间的差距。 通过使用迁移助手,可以查看数据库对象和数据、评估数据库是否适合迁移、将数据库对象迁移到 SQL Server,然后将数据迁移到 SQL Server。

要创建评估,请执行以下步骤:

  1. 打开 SSMA for Oracle

  2. 依次选择“文件”和“新建项目” 。

  3. 提供项目名称和位置,然后从下拉列表中选择 SQL Server 迁移目标。 选择“确定”

    SSMA for Oracle 中“新建项目”窗格的屏幕截图。

  4. 选择“连接到 Oracle”,输入 Oracle 连接详细信息,然后选择“连接” 。

    “连接到 Oracle”窗格的屏幕截图。

  5. 在“筛选对象”窗格上,选择要迁移的 Oracle 架构,然后选择“确定” 。

    用于选择要加载的架构的“筛选对象”窗格的屏幕截图。

  6. 在“Oracle 元数据资源管理器”窗格中,选择要使用的 Oracle 架构,然后选择“创建报告”,以生成包含转换统计信息和错误或警告(若有)的 HTML 报告 。 或者,可以选择右上方的“创建报表”选项卡。

    Oracle 元数据资源管理器中“创建报告”链接的屏幕截图。

  7. 查看 HTML 报告,了解转换统计信息以及任何错误或警告。 另外,还可以在 Excel 中打开报表以获取 Oracle 对象的清单,以及执行架构转换所需的工作量。 报告的默认位置在 SSMAProjects 内的报告文件夹中。 例如:

    drive:\<username>\Documents\SSMAProjects\MyOracleMigration\report\report_2016_11_12T02_47_55\

    SSMA 中转换报告的屏幕截图。

验证数据类型

验证默认的数据类型映射,并根据需要对其进行更改(如有必要)。 为此,请执行以下操作:

  1. 选择“工具”,然后选择“项目设置” 。

  2. 选择“类型映射”选项卡。

    SSMA for Oracle 中“类型映射”窗格的屏幕截图。

  3. 可以通过在“Oracle 元数据资源管理器”窗格中选择表名来更改每个表的类型映射。

转换架构

要转换架构,请执行以下步骤:

  1. (可选)若要转换动态或专用查询,请右键单击节点并选择“添加语句”。

  2. 选择“连接到 SQL Server”选项卡,然后输入 SQL Server 实例的连接详细信息。

    1. 在“数据库”下拉列表中,选择目标数据库,或提供新名称以在目标服务器上创建数据库。

    2. 提供身份验证详细信息。

    3. 选择“连接” 。

      SSMA for Oracle 中“连接到 SQL Server”窗格的屏幕截图。

  3. 在“Oracle 元数据资源管理器”窗格中,右键单击要使用的架构,然后选“转换架构” 。 或者,可以选择右上方的“转换架构”选项卡。

    “Oracle 元数据资源管理器”窗格上“转换架构”命令的屏幕截图。

  4. 转换完成后,比较转换后的对象与起始对象,以识别潜在问题并根据建议解决这些问题。

    显示转换后的对象与起始对象的比较的屏幕截图。

    将转换后的 Transact-SQL 文本与原始代码进行比较,并查看建议。

    显示转换后的文本与原始代码的比较的屏幕截图。

  5. 在“输出”窗格中,选择“查看结果”图标,然后在“错误列表”窗格中查看任何错误 。

  6. 对于脱机架构修正练习,请通过选择“文件”“保存项目”来以本地方式保存项目 。 这样做你就有机会在将架构发布到 SQL Server 实例之前,先对源和目标架构进行脱机评估并执行修正。

迁移数据库

在满足先决条件并完成与“迁移前”阶段相关的任务后,便可以执行架构和数据库迁移。 迁移涉及两个步骤:发布架构和迁移数据库。

若要发布架构和迁移数据库,请执行以下步骤:

  1. 发布架构。 在“SQL Server 元数据资源管理器”窗格中,右键单击数据库,然后选择“与数据库同步” 。 此操作会将 Oracle 架构发布到 SQL Server 实例。

    “SQL Server 元数据资源管理器”窗格中“与数据库同步”命令的屏幕截图。

  2. 查看源项目与目标之间的映射,如此处所示:

    用于查看数据库映射的“与数据库同步”窗格的屏幕截图。

  3. 迁移数据。 在“Oracle 元数据资源管理器”窗格中,右键单击要迁移的架构或对象,然后选择“迁移数据” 。 或者,可以选择右上方的“迁移数据”选项卡。

    若要迁移整个数据库的数据,请选中数据库名称旁边的复选框。 若要从单个表中迁移数据,请展开数据库,展开“表”,然后选中表旁边的复选框。 若要忽略单个表中的数据,请清除对应的复选框。

    “迁移数据”链接的屏幕截图。

  4. 在“迁移数据”窗格中,输入 Oracle 和 SQL Server 的连接详细信息。

  5. 迁移完成后,查看“数据迁移报告”。

    数据迁移报告的屏幕截图。

  6. 使用 SQL Server Management Studio (SSMS) 连接到 SQL Server 实例,然后通过查看数据和架构来验证迁移。

    SQL Server Management Server 的屏幕截图。除了使用 SSMA,还可使用 SQL Server Integration Services (SSIS) 迁移数据。 若要了解更多信息,请参阅以下文章:

迁移后

成功完成“迁移”阶段后,需要完成一系列的迁移后任务,确保一切都能尽量顺畅高效地正常进行。

修正应用程序

将数据迁移到目标环境后,之前使用源的所有应用程序都需要开始使用目标。 可能需要对应用程序执行更改才能完成此步骤。

Data Access Migration Toolkit 是 Visual Studio Code 的扩展,可用于分析 Java 源代码并检测数据访问 API 调用和查询。 该工具包提供一个单窗格视图,其中显示为支持新数据库后端要解决的项目。 若要了解详细信息,请查看从 Oracle 迁移 Java 应用程序博客。

执行测试

数据库迁移的测试方法包括以下活动:

  1. 开发验证测试:要测试数据库迁移,需要使用 SQL 查询。 必须创建针对源数据库和目标数据库运行的验证查询。 验证查询应涵盖定义的范围。

  2. 设置测试环境:测试环境应包含源数据库和目标数据库的副本。 请确保隔离测试环境。

  3. 运行验证测试:针对源和目标运行验证测试,然后分析结果。

  4. 运行性能测试:针对源和目标运行性能测试,然后分析和比较结果。

优化

迁移后阶段对于协调任何数据准确性问题、验证完整性以及解决工作负载的性能问题至关重要。

有关这些问题及其缓解步骤的详细信息,请参阅迁移后验证和优化指南

迁移资产

若要获得完成此迁移方案的更多帮助,请参阅以下资源。 这些资源是为支持实际迁移项目而开发的。

标题 说明
数据工作负荷评估模型和工具 为指定工作负载提供建议的“最适合”的目标平台、云就绪性和应用程序/数据库修正级别。 它提供简单的一键式计算和报表生成功能,通过提供统一的自动化目标平台决策过程,帮助加速大规模评估。
Oracle 清点脚本项目 包含一个 PL/SQL 查询,该查询可以深入到 Oracle 系统表,然后按架构类型、对象类型和状态提供对象计数。 它还能提供每个架构中“原始数据”和表大小的粗略估算,结果以 CSV 格式存储。
自动化 SSMA Oracle 评估收集和整合 使用 .csv 文件作为输入(项目文件夹中的 sources.csv)的一组资源,旨在生成在控制台模式中运行 SSMA 评估所需的 xml 文件。 source.csv 文件是客户根据现有 Oracle 实例的清单提供的。 输出文件为 AssessmentReportGeneration_source_1.xml、ServersConnectionFile.xml 和 VariableValueFile.xml。
迁移 Oracle 数据库时的 SSMA 问题和可能的修正措施 讨论如何通过 Oracle 在 WHERE 子句中分配非标量条件。 但是,SQL Server 不支持这种类型的条件。 因此,SSMA for Oracle 不会转换 WHERE 子句中包含非标量条件的查询,而是生成错误 O2SS0001。 可在该白皮书中更详细地了解问题及其解决方法。
Oracle 到 SQL Server 迁移手册 重点介绍在将 Oracle 架构迁移到最新版本的 SQL Server 基础映像时所涉及的任务。 如果迁移需要更改特性/功能,则必须仔细考量每项更改对使用数据库的应用程序的可能影响。
从 Oracle 到 SQL Server - 数据库比较实用工具 SSMA for Oracle 测试工具是推荐用于自动验证数据库对象转换和数据迁移的工具,它是数据库比较功能的超集。

如果要查找备用的数据验证选项,则可使用数据库比较实用工具沿所有或所选表、行和列中的行或列级别比较数据。

数据 SQL 工程团队开发了这些资源。 此团队的核心章程是解锁和加速到 Microsoft 的 Azure 数据平台的数据平台迁移项目的复杂现代化进程。