你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

迁移指南:Oracle 到 Azure SQL 数据库

适用于:Azure SQL 数据库

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

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

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

先决条件

开始将 Oracle 架构迁移到 SQL 数据库之前:

预迁移

满足先决条件后,你就已准备就绪,可以探索环境的拓扑并评估 Azure 云迁移的可行性了。 迁移过程的这一部分涉及到对需要迁移的数据库进行清点、评估这些数据库是否存在潜在的迁移问题或阻碍因素,然后处理你可能已发现的任何项目。

评估

借助 SSMA for Oracle,可查看数据库对象和数据、评估数据库是否适合迁移、将数据库对象迁移到 SQL 数据库,最后将数据迁移到数据库。

若要创建评估:

  1. 打开 SSMA for Oracle

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

  3. 输入项目名称和保存项目的位置。 然后从下拉列表中选择“Azure SQL 数据库”作为迁移目标,再选择“确定”

    显示“连接到 Oracle”的屏幕截图。

  4. 选择“连接到 Oracle”。 在“连接到 Oracle”对话框上,为 Oracle 连接详细信息输入相应的值。

  5. 选择要迁移的 Oracle 架构。

    显示选择 Oracle 架构的屏幕截图。

  6. 在 Oracle 元数据资源管理器中,右键单击要迁移的 Oracle 架构,然后选择“创建报表”来生成 HTML 报表 。 或者,可选择一个数据库,然后选择“创建报表”选项卡。

    显示“创建报表”的屏幕截图。

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

    有关示例,请参阅 drive:\<username>\Documents\SSMAProjects\MyOracleMigration\report\report_2020_11_12T02_47_55\

    显示“评估报表”的屏幕截图。

验证数据类型

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

  1. 在 SSMA for Oracle 中,选择“工具”,然后选择“项目设置” 。

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

    显示“类型映射”的屏幕截图。

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

转换架构

若要转换架构:

  1. (可选)向语句中添加动态或临时查询。 右键单击节点,然后选择“添加语句”。

  2. 选择“连接到 Azure SQL 数据库”选项卡。

    1. 在“SQL 数据库”中,输入连接详细信息以连接数据库。

    2. 从下拉菜单中选择目标 SQL 数据库实例,或输入新的名称;如果是提供新名称,则将在目标服务器上创建一个数据库。

    3. 输入身份验证详细信息,然后选择“连接”。

    显示“连接到 Azure SQL 数据库”的屏幕截图。

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

    显示“转换架构”的屏幕截图。

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

    显示查看建议架构的屏幕截图。

  5. 将转换后的 Transact-SQL 文本与原始存储过程进行比较,并查看建议。

    显示查看建议的屏幕截图。

  6. 在“输出”窗格中,选择“查看结果”,然后在“错误列表”窗格中查看错误 。

  7. 在本地保存该项目以进行脱机架构修正练习。 在“文件”菜单中,选择“保存项目” 。 通过此步骤,你就有机会在将架构发布到 SQL 数据库之前,先对源架构和目标架构进行离线评估并执行修正。

Migrate

评估数据库并解决所有差异后,下一步就是运行迁移过程。 迁移涉及两个步骤:发布架构和迁移数据。

发布架构和迁移数据:

  1. 发布架构:在“Azure SQL 数据库元数据资源管理器”中右键单击“数据库”节点中的数据库,然后选择“与数据库同步” 。

    显示“与数据库同步”的屏幕截图。

  2. 检查源项目与目标之间的映射。

    显示“与数据库同步”检查的屏幕截图。

  3. 迁移数据:在“Oracle 元数据资源管理器”中右键单击要迁移的数据库或对象,然后选择“迁移数据” 。 也可选择“迁移数据”选项卡。若要迁移整个数据库的数据,请选中数据库名称旁边的复选框。 若要从单个表中迁移数据,请展开数据库,展开“表”,然后选中表旁边的复选框。 若要忽略单个表中的数据,请清除对应的复选框。

    显示“迁移数据”的屏幕截图。

  4. 输入 Oracle 和 SQL 数据库的连接详细信息。

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

    显示数据迁移报表的屏幕截图。

  6. 使用下载 SQL Server Management Studio (SSMS) 连接到 SQL 数据库实例,并查看数据和架构来验证迁移。

    显示 SQL Server Management Studio 中的验证情况的屏幕截图。

或者,还可使用 SQL Server Integration Services 来执行迁移。 若要了解更多信息,请参阅以下文章:

迁移后

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

修正应用程序

将数据迁移到目标环境后,以前使用源的所有应用程序都需要开始使用目标。 在某些情况下,需要对应用程序进行更改才能完成此任务。

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

执行测试

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

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

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

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

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

验证迁移的对象

适用于 Oracle 的 Microsoft SQL Server 迁移助手测试程序(SSMA 测试程序)可用于测试迁移的数据库对象。 SSMA 测试程序用于验证转换后对象的行为方式是否相同。

创建测试用例

  1. 在 SSMA for Oracle 中,导航到“测试程序”“新测试用例”。>

    显示用于创建新测试用例的屏幕截图。

  2. 提供新测试用例的以下信息:

    名称:输入名称以标识测试用例。

    创建日期:当天的当前日期(自动定义)。

    上次修改日期:此值会自动填充,不应更改。

    说明:输入任何其他信息以标识测试用例的用途。

    屏幕截图,显示了初始化测试用例的步骤。

  3. 从位于左侧的 Oracle 对象树中选择属于测试用例的对象。

    显示用于选择和配置对象的步骤的屏幕截图。

    在此示例中,选择了存储过程 ADD_REGION 和表 REGION

    若要了解详细信息,请参阅选择并配置要测试的对象 (OracleToSQL)

  4. 接下来,从左侧窗口中的 Oracle 对象树中选择表、外键和其他依赖对象。

    屏幕截图,显示了选择并配置受影响对象的步骤。

    若要了解详细信息,请参阅选择并配置受影响的对象 (OracleToSQL)

  5. 查看对象的评估顺序。 选择网格中的按钮来更改顺序。

    屏幕截图,显示了测试对象执行排序的步骤。

  6. 查看前面步骤中提供的信息来完成测试用例。 根据测试方案配置测试执行选项。

    显示用于完成对象的步骤的屏幕截图。

    有关测试用例设置的详细信息,请参阅完成测试用例准备 (OracleToSQL)

  7. 选择“完成”以创建测试用例。

    显示用于测试存储库的步骤的屏幕截图。

运行测试用例

当 SSMA 测试程序运行测试用例时,测试引擎会执行为测试选择的对象并生成验证报告。

  1. 从测试存储库中选择测试用例,然后选择“运行”。

    显示用于查看测试存储库的步骤的屏幕截图。

  2. 查看启动测试用例,然后选择“运行”。

    显示运行测试用例步骤的屏幕截图。

  3. 接下来,提供 Oracle 源凭据。 输入凭据后选择“连接”。

    显示用于连接到 Oracle 源的步骤的屏幕截图。

  4. 提供目标 SQL Server 凭据,然后选择“连接”。

    显示用于连接到 SQL 目标的步骤的屏幕截图。

    成功后,测试用例会进入初始化阶段。

  5. 实时进度栏显示测试运行的执行状态。

    显示测试程序测试进度的屏幕截图。

  6. 测试完成后查看报表。 该报表提供统计信息、测试运行期间的所有错误和详细信息报告。

    显示示例测试程序测试报告的屏幕截图。

  7. 选择“详细信息”以获取详细信息。

    成功的数据验证示例。

    显示示例测试程序成功报告的屏幕截图。

    失败的数据验证示例。

    显示测试程序失败报告的屏幕截图。

优化

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

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

迁移资产

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

  • 数据工作负载评估模型和工具

    此工具为给定工作负载提供建议的“最适合”目标平台、云就绪性和应用程序/数据库修正级别。 它提供简单的计算和报表生成功能,通过提供统一的自动化目标平台决策过程,帮助加速大规模评估。

  • Oracle 清单脚本项目

    该资产包含一个 PL/SQL 查询,它会命中 Oracle 系统表,并按架构类型、对象类型和状态提供对象计数。 它还提供每个架构中“原始数据”和表大小的粗略估算,结果以 CSV 格式存储。

  • 自动化 SSMA Oracle 评估收集和整合

    这组资源使用 .csv 文件作为输入(项目文件夹中的 sources.csv),来生成在控制台模式下运行 SSMA 评估所需的 XML 文件。 source.csv 是客户根据现有 Oracle 实例的清单提供的。 输出文件是 AssessmentReportGeneration_source_1.xmlServersConnectionFile.xmlVariableValueFile.xml

  • Oracle 到 SQL DB - 数据库比较实用工具

    SSMA for Oracle 测试工具是推荐用于自动验证数据库对象转换和数据迁移的工具,它是数据库比较功能的超集。

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

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