迁移指南:从 Oracle 迁移到 SQL Server
适用范围:SQL Server
本指南介绍如何使用适用于 Oracle 的 SQL Server 迁移助手 (SSMA for Oracle) 将 Oracle 数据库迁移到 SQL Server。
有关其他迁移指南,请参阅 Azure 数据库迁移指南。
有关详细的代码评估和转换,请继续使用适用于 Oracle 的 SSMA。
先决条件
开始将 Oracle 数据库迁移到 SQL Server 之前,请执行以下步骤:
- 验证源环境是否受支持。
- 下载并安装 SQL Server。
- 下载并安装 SSMA for Oracle。
- 获取 SSMA for Oracle 的必需权限和提供程序。
- 获取连接以及访问源和目标的足够权限。
迁移前
准备迁移到云时,请验证源环境是否受支持,以及是否已满足所有其他先决条件。 这样做有助于确保高效成功地完成迁移。
迁移过程的这一部分涉及到对需要迁移的数据库进行清点、评估它们是否存在潜在的迁移问题或阻碍因素,然后处理可能已发现的任何项。
发现
为了更好地了解和规划迁移,请使用 Microsoft 评估和计划 (MAP) 工具包来确定现有数据源以及有关组织所使用的功能的详细信息。 此过程涉及扫描网络,旨在确定组织的所有 Oracle 实例、版本和功能。
若要使用 MAP 工具包执行清单扫描,请执行以下步骤:
打开 MAP 工具包。
在“概述”窗格上,选择“创建/选择数据库” 。
在“创建或选择数据库”下,选择“创建清单数据库”,输入要创建的清单数据库的名称,提供简短描述,然后选择“确定” 。
选择“收集清单数据”,打开清单和评估向导 。
在向导中,选择“Oracle”,然后选择“下一步” 。
选择最适合组织需求和环境的计算机搜索选项,然后选择“下一步”。
为要浏览的系统输入当前凭据或创建新凭据,然后选择“下一步”。
设置凭据的顺序,然后选择“下一步”。
为要发现的每台计算机指定凭据。 可对每台计算机使用唯一凭据,也可从“计算机”列表中进行选择。
验证你的选择内容摘要,然后选择“完成”。
扫描完成后,查看“数据收集”摘要报告。 扫描可能需要几分钟时间,具体取决于数据库的数量。 完成后,选择“关闭”。
选择“选项”,生成有关 Oracle 评估和数据库详细信息的报表。 (逐个)选择两个选项来生成报告。
评估
确定数据源后,使用 SSMA for Oracle 来评估要迁移到 SQL Server 虚拟机的 Oracle 实例,以了解两者之间的差距。 通过使用迁移助手,可以查看数据库对象和数据、评估数据库是否适合迁移、将数据库对象迁移到 SQL Server,然后将数据迁移到 SQL Server。
要创建评估,请执行以下步骤:
打开 SSMA for Oracle。
依次选择“文件”和“新建项目” 。
提供项目名称和位置,然后从下拉列表中选择 SQL Server 迁移目标。 选择“确定”。
选择“连接到 Oracle”,输入 Oracle 连接详细信息,然后选择“连接” 。
在“筛选对象”窗格上,选择要迁移的 Oracle 架构,然后选择“确定” 。
在“Oracle 元数据资源管理器”窗格中,选择要使用的 Oracle 架构,然后选择“创建报告”,以生成包含转换统计信息和错误或警告(若有)的 HTML 报告 。 或者,可以选择右上方的“创建报表”选项卡。
查看 HTML 报告,了解转换统计信息以及任何错误或警告。 另外,还可以在 Excel 中打开报表以获取 Oracle 对象的清单,以及执行架构转换所需的工作量。 报告的默认位置在 SSMAProjects 内的报告文件夹中。 例如:
drive:\<username>\Documents\SSMAProjects\MyOracleMigration\report\report_2016_11_12T02_47_55\
验证数据类型
验证默认的数据类型映射,并根据需要对其进行更改(如有必要)。 为此,请执行以下操作:
转换架构
要转换架构,请执行以下步骤:
(可选)若要转换动态或专用查询,请右键单击节点并选择“添加语句”。
选择“连接到 SQL Server”选项卡,然后输入 SQL Server 实例的连接详细信息。
在“数据库”下拉列表中,选择目标数据库,或提供新名称以在目标服务器上创建数据库。
提供身份验证详细信息。
选择“连接” 。
在“Oracle 元数据资源管理器”窗格中,右键单击要使用的架构,然后选“转换架构” 。 或者,可以选择右上方的“转换架构”选项卡。
转换完成后,比较转换后的对象与起始对象,以识别潜在问题并根据建议解决这些问题。
将转换后的 Transact-SQL 文本与原始代码进行比较,并查看建议。
在“输出”窗格中,选择“查看结果”图标,然后在“错误列表”窗格中查看任何错误 。
对于脱机架构修正练习,请通过选择“文件”“保存项目”来以本地方式保存项目 。 这样做你就有机会在将架构发布到 SQL Server 实例之前,先对源和目标架构进行脱机评估并执行修正。
迁移数据库
在满足先决条件并完成与“迁移前”阶段相关的任务后,便可以执行架构和数据库迁移。 迁移涉及两个步骤:发布架构和迁移数据库。
若要发布架构和迁移数据库,请执行以下步骤:
发布架构。 在“SQL Server 元数据资源管理器”窗格中,右键单击数据库,然后选择“与数据库同步” 。 此操作会将 Oracle 架构发布到 SQL Server 实例。
查看源项目与目标之间的映射,如此处所示:
迁移数据。 在“Oracle 元数据资源管理器”窗格中,右键单击要迁移的架构或对象,然后选择“迁移数据” 。 或者,可以选择右上方的“迁移数据”选项卡。
若要迁移整个数据库的数据,请选中数据库名称旁边的复选框。 若要从单个表中迁移数据,请展开数据库,展开“表”,然后选中表旁边的复选框。 若要忽略单个表中的数据,请清除对应的复选框。
在“迁移数据”窗格中,输入 Oracle 和 SQL Server 的连接详细信息。
迁移完成后,查看“数据迁移报告”。
使用 SQL Server Management Studio (SSMS) 连接到 SQL Server 实例,然后通过查看数据和架构来验证迁移。
除了使用 SSMA,还可使用 SQL Server Integration Services (SSIS) 迁移数据。 若要了解更多信息,请参阅以下文章:
迁移后
成功完成“迁移”阶段后,需要完成一系列的迁移后任务,确保一切都能尽量顺畅高效地正常进行。
修正应用程序
将数据迁移到目标环境后,之前使用源的所有应用程序都需要开始使用目标。 可能需要对应用程序执行更改才能完成此步骤。
Data Access Migration Toolkit 是 Visual Studio Code 的扩展,可用于分析 Java 源代码并检测数据访问 API 调用和查询。 该工具包提供一个单窗格视图,其中显示为支持新数据库后端要解决的项目。 若要了解详细信息,请查看从 Oracle 迁移 Java 应用程序博客。
执行测试
数据库迁移的测试方法包括以下活动:
开发验证测试:要测试数据库迁移,需要使用 SQL 查询。 必须创建针对源数据库和目标数据库运行的验证查询。 验证查询应涵盖定义的范围。
设置测试环境:测试环境应包含源数据库和目标数据库的副本。 请确保隔离测试环境。
运行验证测试:针对源和目标运行验证测试,然后分析结果。
运行性能测试:针对源和目标运行性能测试,然后分析和比较结果。
优化
迁移后阶段对于协调任何数据准确性问题、验证完整性以及解决工作负载的性能问题至关重要。
有关这些问题及其缓解步骤的详细信息,请参阅迁移后验证和优化指南。
迁移资产
若要获得完成此迁移方案的更多帮助,请参阅以下资源。 这些资源是为支持实际迁移项目而开发的。
标题 | 说明 |
---|---|
数据工作负荷评估模型和工具 | 为指定工作负载提供建议的“最适合”的目标平台、云就绪性和应用程序/数据库修正级别。 它提供简单的一键式计算和报表生成功能,通过提供统一的自动化目标平台决策过程,帮助加速大规模评估。 |
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 数据平台的数据平台迁移项目的复杂现代化进程。