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

适用于:Azure SQL 数据库

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

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

重要

在 Azure Data Studio 中试用适用于 Oracle 的数据库迁移评估新扩展,以预先评估 Oracle 到 SQL 的迁移以及进行工作负载分类。 如果你处于 Oracle SQL 迁移的早期阶段,需要执行高级工作负载评估,并想要调整 Oracle 工作负载 Azure SQL 目标的大小或了解功能迁移奇偶校验,请尝试新扩展。 有关详细的代码评估和转换,请继续使用适用于 Oracle 的 SSMA。

先决条件

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

预迁移

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

评估

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

若要创建评估:

  1. 打开 SSMA for Oracle

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

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

    Screenshot that shows Connect to Oracle.

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

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

    Screenshot that shows selecting Oracle schema.

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

    Screenshot that shows Create Report.

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

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

    Screenshot that shows an Assessment report.

验证数据类型

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

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

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

    Screenshot that shows Type Mapping.

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

转换架构

若要转换架构:

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

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

    1. 在“SQL 数据库”中,输入连接详细信息以连接数据库。
    2. 从下拉菜单中选择目标 SQL 数据库实例,或输入新的名称;如果是提供新名称,则将在目标服务器上创建一个数据库。
    3. 输入身份验证详细信息,然后选择“连接”。

    Screenshot that shows Connect to Azure SQL Database.

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

    Screenshot that shows Convert Schema.

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

    Screenshot that shows the Review recommendations schema.

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

    Screenshot that shows the Review recommendations.

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

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

Migrate

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

发布架构和迁移数据:

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

    Screenshot that shows Synchronize with Database.

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

    Screenshot that shows Synchronize with the Database review.

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

    Screenshot that shows Migrate Data.

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

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

    Screenshot that shows the Data Migration Report.

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

    Screenshot that shows validation in 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,选择“测试程序”,然后选择“新建测试用例” 。 Screenshot that shows to create new test case.

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

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

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

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

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

    Screenshot that shows steps to initialize a test case .

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

    Screenshot that shows step to select and configure object.

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

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

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

    Screenshot that shows step to select and configure affected object.

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

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

    Screenshot that shows step to sequence test object execution.

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

    Screenshot that shows step to finalize object.

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

  7. 单击“完成”以创建测试用例。

    Screenshot that shows step to test repo.

运行测试用例

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

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

    Screenshot that shows to review test repo.

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

    Screenshot that shows step to run test case

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

    Screenshot that shows step to connect to oracle source

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

    Screenshot that shows step to connect to sql target.

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

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

    Screenshot that shows tester test progress.

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

    Screenshot that shows a sample tester test report

  7. 单击“详细信息”以获取详细信息。

    成功的数据验证示例。 Screenshot that shows a sample tester success report.

    失败的数据验证示例。

    Screenshot that shows tester failure report.

优化

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

注意

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

迁移资产

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

标题/链接 说明
数据工作负载评估模型和工具 此工具为给定工作负载提供建议的“最适合”目标平台、云就绪性和应用程序/数据库修正级别。 它提供简单的一键式计算和报表生成功能,通过提供统一的自动化目标平台决策过程,帮助加速大规模评估。
Oracle 清单脚本项目 该资产包含一个 PL/SQL 查询,它会命中 Oracle 系统表,并按架构类型、对象类型和状态提供对象计数。 它还提供每个架构中“原始数据”和表大小的粗略估算,结果以 CSV 格式存储。
自动化 SSMA Oracle 评估收集和整合 这组资源使用 .csv 文件作为输入(项目文件夹中的 sources.csv),来生成在控制台模式下运行 SSMA 评估所需的 xml 文件。 source.csv 是客户根据现有 Oracle 实例的清单提供的。 输出文件为 AssessmentReportGeneration_source_1.xml、ServersConnectionFile.xml 和 VariableValueFile.xml。
Oracle 到 SQL DB - 数据库比较实用工具 SSMA for Oracle 测试工具是推荐用于自动验证数据库对象转换和数据迁移的工具,它是数据库比较功能的超集。

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

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

后续步骤