使用迁移助手 (SSMA for Oracle) 将Oracle19c数据库迁移到SQL Server2022

如何使用适用于 Oracle 的 SQL Server 迁移助手Microsoft SQL Server Migration Assistant for Oracle (SSMA for Oracle) 将 Oracle 数据库迁移到 SQL Server

Microsoft SQL Server Migration Assistant (SSMA) for Oracle is a tool to automate migration from Oracle database(s) to SQL Server, Azure SQL Database, Azure SQL Database Managed Instance and Azure SQL Data Warehouse.

迁移指南:从 Oracle 迁移到 SQL Server

参考官方文档

https://learn.microsoft.com/en-us/sql/sql-server/migrate/guides/oracle-to-sql-server?view=sql-server-ver16

1、本文内容

  • 先决条件
  • 迁移前
  • 迁移数据库
  • 迁移后
  • 迁移资产
  • 相关内容

适用于:SQL Server

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

SSMA for Oracle迁移助手下载地址

https://www.microsoft.com/en-us/download/details.aspx?id=54258

2、先决条件

开始将 Oracle 数据库迁移到 SQL Server 之前,请执行以下步骤:

  • 验证源环境是否受支持。
  • 下载并安装 SQL Server。
  • 下载并安装 SSMA for Oracle。
  • 获取 SSMA for Oracle 的必需权限和提供程序。
  • 获取连接以及访问源和目标的足够权限。

3、迁移前

准备迁移到云时,请验证源环境是否受支持,以及是否已满足所有其他先决条件。 这样做有助于确保高效成功地完成迁移。

迁移过程的这一部分涉及到对需要迁移的数据库进行清点、评估它们是否存在潜在的迁移问题或阻碍因素,然后处理可能已发现的任何项。

3.1、发现

为了更好地了解和规划迁移,请使用 Microsoft 评估和计划 (MAP) 工具包来确定现有数据源以及有关组织所使用的功能的详细信息。 此过程涉及扫描网络,旨在确定组织的所有 Oracle 实例、版本和功能。

若要使用 MAP 工具包执行清单扫描,请执行以下步骤:

  1. 打开 MAP 工具包。

  2. 在"概述"窗格上,选择"创建/选择数据库" 。

  3. 在"创建或选择数据库"下,选择"创建清单数据库",输入要创建的清单数据库的名称,提供简短描述,然后选择"确定" 。

  4. 选择"收集清单数据",打开清单和评估向导 。

  5. 在向导中,选择"Oracle",然后选择"下一步" 。

  6. 选择最适合组织需求和环境的计算机搜索选项,然后选择"下一步"。

  7. 为要浏览的系统输入当前凭据或创建新凭据,然后选择"下一步"。


  8. 设置凭据的顺序,然后选择"下一步"。

  9. 为要发现的每台计算机指定凭据。 可对每台计算机使用唯一凭据,也可从"计算机"列表中进行选择。


  10. 验证你的选择内容摘要,然后选择"完成"。

  11. 扫描完成后,查看"数据收集"摘要报告。 扫描可能需要几分钟时间,具体取决于数据库的数量。 完成后,选择"关闭"。

  12. 选择"选项",生成有关 Oracle 评估和数据库详细信息的报表。

3.2、评估

确定数据源后,使用 SSMA for Oracle 来评估要迁移到 SQL Server 虚拟机的 Oracle 实例,以了解两者之间的差距。 通过使用迁移助手,可以查看数据库对象和数据、评估数据库是否适合迁移、将数据库对象迁移到 SQL Server,然后将数据迁移到 SQL Server。

要创建评估,请执行以下步骤:

  1. 打开 SSMA for Oracle。

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

  3. 提供项目名称和位置,然后从下拉列表中选择 SQL Server 迁移目标。 选择"确定"。

  4. 选择"连接到 Oracle",输入 Oracle 连接详细信息,然后选择"连接" 。

  5. 在"筛选对象"窗格上,选择要迁移的 Oracle 架构,然后选择"确定" 。

  6. 在"Oracle 元数据资源管理器"窗格中,选择要使用的 Oracle 架构,然后选择"创建报告",以生成包含转换统计信息和错误或警告(若有)的 HTML 报告 。 或者,可以选择右上方的"创建报表"选项卡。

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

3.3、验证数据类型

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

  1. 选择"工具",然后选择"项目设置" 。

  2. 选择"类型映射"选项卡。

  3. 可以通过在"Oracle 元数据资源管理器"窗格中选择表名来更改每个表的类型映射。

3.4、转换架构

要转换架构,请执行以下步骤:

  1. (可选)若要转换动态或专用查询,请右键单击节点并选择"添加语句"。
  2. 选择"连接到 SQL Server"选项卡,然后输入 SQL Server 实例的连接详细信息。
    • 在"数据库"下拉列表中,选择目标数据库,或提供新名称以在目标服务器上创建数据库。
    • 提供身份验证详细信息。
    • 选择"连接"。
  3. 在"Oracle 元数据资源管理器"窗格中,右键单击要使用的架构,然后选"转换架构" 。 或者,可以选择右上方的"转换架构"选项卡。

    需要开启SQL Server Agent,不然会有如上错误
bash 复制代码
-- 本次测试是linux操作系统安装的SQLserver2022
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
sudo systemctl restart mssql-server
  1. 转换完成后,比较转换后的对象与起始对象,以识别潜在问题并根据建议解决这些问题。

将转换后的 Transact-SQL 文本与原始代码进行比较,并查看建议。

  1. 在"输出"窗格中,选择"查看结果"图标,然后在"错误列表"窗格中查看任何错误 。
  2. 对于脱机架构修正练习,请通过选择"文件">"保存项目"来以本地方式保存项目 。 这样做你就有机会在将架构发布到 SQL Server 实例之前,先对源和目标架构进行脱机评估并执行修正。

4、迁移数据库

在满足先决条件并完成与"迁移前"阶段相关的任务后,便可以执行架构和数据库迁移。 迁移涉及两个步骤:发布架构和迁移数据库。

若要发布架构和迁移数据库,请执行以下步骤:

  1. 发布架构。 在"SQL Server 元数据资源管理器"窗格中,右键单击数据库,然后选择"与数据库同步" 。 此操作会将 Oracle 架构发布到 SQL Server 实例。

  2. 查看源项目与目标之间的映射,如此处所示:


  3. 迁移数据。 在"Oracle 元数据资源管理器"窗格中,右键单击要迁移的架构或对象,然后选择"迁移数据" 。 或者,可以选择右上方的"迁移数据"选项卡。

    若要迁移整个数据库的数据,请选中数据库名称旁边的复选框。 若要从单个表中迁移数据,请展开数据库,展开"表",然后选中表旁边的复选框。 若要忽略单个表中的数据,请清除对应的复选框。

  4. 在"迁移数据"窗格中,输入 Oracle 和 SQL Server 的连接详细信息。

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

  6. 使用 SQL Server Management Studio (SSMS) 连接到 SQL Server 实例,然后通过查看数据和架构来验证迁移。

    除了使用 SSMA,还可使用 SQL Server Integration Services (SSIS) 迁移数据。

若要了解更多信息,请参阅以下文章:

https://learn.microsoft.com/en-us/sql/integration-services/sql-server-integration-services?view=sql-server-ver16

欢迎大家阅读指正,点赞及收藏。非常感谢!

相关推荐
ItKevin爱java9 分钟前
JDBC中如何处理数据库连接超时和SQL超时?
数据库·sql
2401_8576226610 分钟前
【SQL Server高可用性全解】构建永不宕机的数据库解决方案
数据库·oracle
youhebuke22518 分钟前
SQLAlchemy pool_pre_ping
数据库·oracle·sqlalchemy
白菜!!!30 分钟前
SQL INSERT批量插入方式
数据库·sql·mysql·mybatis
不如小布.31 分钟前
MYSQL篇二:数据库的操作
数据库·mysql·oracle
屿小夏.32 分钟前
【SQL】已解决:SQL错误(15048): 数据兼容级别有效值为100、110或120
数据库·sql·oracle
小的~~34 分钟前
大数据面试题之数据库(2)
大数据·数据库
醇氧1 小时前
【MySQL】MySQL 9.0悄悄的来了
数据库·mysql
毛瞌羊1 小时前
浅析MySQL-索引篇01
数据库·mysql
丁总学Java1 小时前
MySQL高级-MVCC-原理分析(RR级别)
数据库·mysql·mvcc·rr级别·可重复读