迁移指南:从 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) 迁移数据。 若要了解更多信息,请参阅以下文章:

迁移后

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

修正应用程序

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

执行测试

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

  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 数据平台的数据平台迁移项目的复杂现代化进程。