迁移指南:Oracle 到 Azure SQL 数据库
适用于:Azure SQL 数据库
本指南介绍如何使用适用于 Oracle 的 SQL Server 迁移助手 (SSMA) 将 Oracle 架构迁移到 Azure SQL 数据库。
有关其他迁移指南,请参阅 Azure 数据库迁移指南。
重要
试用适用于 Oracle 的数据库迁移评估扩展,以预先评估 Oracle 到 Azure SQL 的迁移以及进行工作负载分类。 此扩展在以下情况下非常有用:
- 如果你处于 Oracle 到 Azure SQL 迁移的早期阶段,并且需要执行高层次的工作负载评估
- 如果你有兴趣为 Oracle 工作负载调整 Azure SQL 目标的大小
- 如果你想要了解功能迁移奇偶校验
有关详细的代码评估和转换,请继续使用适用于 Oracle 的 SSMA。
先决条件
开始将 Oracle 架构迁移到 SQL 数据库之前:
验证源环境是否受支持。
下载 SSMA for Oracle。
具有目标快速入门:创建单一数据库 - Azure SQL 数据库实例。
预迁移
满足先决条件后即可查看环境中的拓扑并评估迁移的可行性。 迁移过程的这一部分涉及到对需要迁移的数据库进行清点、评估这些数据库是否存在潜在的迁移问题或阻碍因素,然后处理你可能已发现的任何项目。
评估
借助 SSMA for Oracle,可查看数据库对象和数据、评估数据库是否适合迁移、将数据库对象迁移到 SQL 数据库,最后将数据迁移到数据库。
若要创建评估:
打开 SSMA for Oracle。
依次选择“文件”和“新建项目” 。
输入项目名称和保存项目的位置。 然后从下拉列表中选择“Azure SQL 数据库”作为迁移目标,再选择“确定”。
选择“连接到 Oracle”。 在“连接到 Oracle”对话框上,为 Oracle 连接详细信息输入相应的值。
选择要迁移的 Oracle 架构。
在 Oracle 元数据资源管理器中,右键单击要迁移的 Oracle 架构,然后选择“创建报表”来生成 HTML 报表 。 或者,可选择一个数据库,然后选择“创建报表”选项卡。
查看 HTML 报表,了解转换统计信息以及任何错误或警告。 另外,还可以在 Excel 中打开报表以获取 Oracle 对象的清单,以及执行架构转换所需的工作量。 报表的默认位置在 SSMAProjects 内的报表文件夹中。
有关示例,请参阅
drive:\<username>\Documents\SSMAProjects\MyOracleMigration\report\report_2020_11_12T02_47_55\
。
验证数据类型
验证默认的数据类型映射,并根据需要对其进行更改(如有必要)。 为此,请执行下列步骤:
转换架构
若要转换架构:
(可选)向语句中添加动态或临时查询。 右键单击节点,然后选择“添加语句”。
选择“连接到 Azure SQL 数据库”选项卡。
在“SQL 数据库”中,输入连接详细信息以连接数据库。
从下拉菜单中选择目标 SQL 数据库实例,或输入新的名称;如果是提供新名称,则将在目标服务器上创建一个数据库。
输入身份验证详细信息,然后选择“连接”。
在 Oracle 元数据资源管理器中,右键单击 Oracle 架构,然后选择“转换架构” 。 或者,可以选择架构,然后选择“转换架构”选项卡。
转换完成后,查看转换后的对象并与原始对象进行比较,以识别潜在问题并根据建议解决这些问题。
将转换后的 Transact-SQL 文本与原始存储过程进行比较,并查看建议。
在“输出”窗格中,选择“查看结果”,然后在“错误列表”窗格中查看错误 。
在本地保存该项目以进行脱机架构修正练习。 在“文件”菜单中,选择“保存项目” 。 通过此步骤,你就有机会在将架构发布到 SQL 数据库之前,先对源架构和目标架构进行离线评估并执行修正。
Migrate
评估数据库并解决所有差异后,下一步就是运行迁移过程。 迁移涉及两个步骤:发布架构和迁移数据。
发布架构和迁移数据:
发布架构:在“Azure SQL 数据库元数据资源管理器”中右键单击“数据库”节点中的数据库,然后选择“与数据库同步” 。
检查源项目与目标之间的映射。
迁移数据:在“Oracle 元数据资源管理器”中右键单击要迁移的数据库或对象,然后选择“迁移数据” 。 也可选择“迁移数据”选项卡。若要迁移整个数据库的数据,请选中数据库名称旁边的复选框。 若要从单个表中迁移数据,请展开数据库,展开“表”,然后选中表旁边的复选框。 若要忽略单个表中的数据,请清除对应的复选框。
输入 Oracle 和 SQL 数据库的连接详细信息。
迁移完成后,查看“数据迁移报告”。
使用下载 SQL Server Management Studio (SSMS) 连接到 SQL 数据库实例,并查看数据和架构来验证迁移。
或者,还可使用 SQL Server Integration Services 来执行迁移。 若要了解更多信息,请参阅以下文章:
迁移后
成功完成“迁移”阶段后,需要完成一系列的迁移后任务,确保一切都能尽量顺畅高效地正常进行。
修正应用程序
将数据迁移到目标环境后,以前使用源的所有应用程序都需要开始使用目标。 在某些情况下,需要对应用程序进行更改才能完成此任务。
Data Access Migration Toolkit 是 Visual Studio Code 的扩展,可用于分析 Java 源代码并检测数据访问 API 调用和查询。 该工具包提供了一个单窗格视图,其中显示了支持新数据库后端需要满足的要求。 有关详细信息,请参阅从 Oracle 迁移 Java 应用程序博客文章。
执行测试
数据库迁移的测试方法包括以下活动:
开发验证测试:要测试数据库迁移,需要使用 SQL 查询。 必须创建针对源数据库和目标数据库运行的验证查询。 验证查询应涵盖你定义的范围。
设置测试环境:测试环境应包含源数据库和目标数据库的副本。 请确保隔离测试环境。
运行验证测试:针对源和目标运行验证测试,然后分析结果。
运行性能测试:针对源和目标运行性能测试,然后分析和比较结果。
验证迁移的对象
适用于 Oracle 的 Microsoft SQL Server 迁移助手测试程序(SSMA 测试程序)可用于测试迁移的数据库对象。 SSMA 测试程序用于验证转换后对象的行为方式是否相同。
创建测试用例
在 SSMA for Oracle 中,导航到“测试程序”>“新测试用例”。
提供新测试用例的以下信息:
名称:输入名称以标识测试用例。
创建日期:当天的当前日期(自动定义)。
上次修改日期:此值会自动填充,不应更改。
说明:输入任何其他信息以标识测试用例的用途。
从位于左侧的 Oracle 对象树中选择属于测试用例的对象。
在此示例中,选择了存储过程
ADD_REGION
和表REGION
。若要了解详细信息,请参阅选择并配置要测试的对象 (OracleToSQL)
接下来,从左侧窗口中的 Oracle 对象树中选择表、外键和其他依赖对象。
若要了解详细信息,请参阅选择并配置受影响的对象 (OracleToSQL)
查看对象的评估顺序。 选择网格中的按钮来更改顺序。
查看前面步骤中提供的信息来完成测试用例。 根据测试方案配置测试执行选项。
有关测试用例设置的详细信息,请参阅完成测试用例准备 (OracleToSQL)
选择“完成”以创建测试用例。
运行测试用例
当 SSMA 测试程序运行测试用例时,测试引擎会执行为测试选择的对象并生成验证报告。
从测试存储库中选择测试用例,然后选择“运行”。
查看启动测试用例,然后选择“运行”。
接下来,提供 Oracle 源凭据。 输入凭据后选择“连接”。
提供目标 SQL Server 凭据,然后选择“连接”。
成功后,测试用例会进入初始化阶段。
实时进度栏显示测试运行的执行状态。
测试完成后查看报表。 该报表提供统计信息、测试运行期间的所有错误和详细信息报告。
选择“详细信息”以获取详细信息。
成功的数据验证示例。
失败的数据验证示例。
优化
迁移后阶段对于协调任何数据准确性问题、验证完整性以及解决工作负载的性能问题至关重要。
有关这些问题及其缓解步骤的详细信息,请参阅迁移后验证和优化指南。
迁移资产
若要获得完成此迁移方案的更多帮助,请参阅以下资源。 这些资源是为支持实际迁移项目而开发的。
-
此工具为给定工作负载提供建议的“最适合”目标平台、云就绪性和应用程序/数据库修正级别。 它提供简单的计算和报表生成功能,通过提供统一的自动化目标平台决策过程,帮助加速大规模评估。
-
该资产包含一个 PL/SQL 查询,它会命中 Oracle 系统表,并按架构类型、对象类型和状态提供对象计数。 它还提供每个架构中“原始数据”和表大小的粗略估算,结果以 CSV 格式存储。
-
这组资源使用 .csv 文件作为输入(项目文件夹中的 sources.csv),来生成在控制台模式下运行 SSMA 评估所需的 XML 文件。 source.csv 是客户根据现有 Oracle 实例的清单提供的。 输出文件是
AssessmentReportGeneration_source_1.xml
、ServersConnectionFile.xml
、VariableValueFile.xml
。 -
SSMA for Oracle 测试工具是推荐用于自动验证数据库对象转换和数据迁移的工具,它是数据库比较功能的超集。
如果要查找备用的数据验证选项,则可使用数据库比较实用工具沿所有或所选表、行和列中的行或列级别比较数据。
数据 SQL 工程团队开发了这些资源。 此团队的核心章程是解锁和加速到 Azure 数据平台的数据平台迁移项目的复杂现代化进程。