将 Oracle 数据迁移到 SQL Server (OracleToSQL)

成功将转换后的对象与 SQL Server 同步之后,可以将数据从 Oracle 迁移到 SQL Server。

重要

如果正在使用的引擎是服务器端数据迁移引擎,则必须在运行 SSMA 的计算机上安装 SSMA for Oracle 扩展包和 Oracle 提供程序,才能迁移数据。 SQL Server 代理服务也必须正在运行。 有关如何安装扩展包的更多信息,请参阅安装服务器组件 (OracleToSQL)

注意

虽然 Microsoft Entra ID 是 Azure Active Directory (Azure AD) 的新名称,但为了防止中断现有环境,Azure AD 仍保留在一些硬编码的元素中,例如 UI 字段、连接提供程序、错误代码和 cmdlet。 在本文中,这两个名称可以互换。

设置迁移选项

将数据迁移到 SQL Server 之前,请查看“项目设置”对话框中的项目迁移选项。

  • 使用此对话框,可以设置迁移批处理大小、表锁定、约束检查、NULL 值处理和标识值处理等选项。 有关“项目迁移设置”的详细信息,请参阅项目设置(迁移)(OracleToSQL)

  • “项目设置”对话框中的“迁移引擎”允许用户使用两种类型的数据迁移引擎执行迁移过程:

    1. 客户端数据迁移引擎

    2. 服务器端数据迁移引擎

客户端数据迁移:

  • 要在客户端启动数据迁移,请在“项目设置”对话框中,选择“客户端数据迁移引擎”选项。

  • 在“项目设置”中,会设置“客户端数据迁移引擎”选项。

    注意

    客户端数据迁移引擎驻留在 SSMA 应用程序中,因此不受扩展包可用性的限制。

服务器端数据迁移:

  • 在服务器端数据迁移期间,引擎驻留在目标数据库上。 该引擎通过扩展包安装。 有关如何安装扩展包的更多信息,请参阅在 SQL Server 上安装服务器组件

  • 要执行服务器端数据迁移,请在“项目设置”对话框中选择“服务器端数据迁移引擎”选项。

将数据迁移到 SQL Server

迁移数据是一个批量加载操作,即在事务中将 Oracle 表的多行数据移动到 SQL Server 表中。 每个事务中加载到 SQL Server 中的行数是在项目设置中配置的。

要查看迁移消息,请确保“输出”窗格可见。 若不可见,则从“视图”菜单中选择“输出”。

要迁移数据

  1. 确认满足以下条件:

    • 正在运行 SSMA 的计算机上安装了 Oracle 提供程序。

    • 已将转换后的对象与 SQL Server 数据库同步。

  2. 在 Oracle 元数据资源管理器中,选择包含要迁移的数据的对象:

    • 要迁移所有架构的数据,请选中“架构”旁边的复选框。

    • 要迁移数据或省略单个表,请先展开架构,在展开“表”,然后选中或清除表旁边的复选框。

  3. 要迁移数据,会发生两种情况:

    客户端数据迁移:

    • 要执行“客户端数据迁移”,请在“项目设置”对话框中,选择“客户端数据迁移引擎”选项。

    服务器端数据迁移:

    • 在服务器端执行数据迁移之前,请确保:

      1. 已在 SQL Server 实例上安装 SSMA for Oracle 扩展包。

      2. SQL Server 代理服务当前未在 SQL Server 的实例运行。

    • 要执行服务器端数据迁移,请在“项目设置”对话框中,选择“服务器端数据迁移引擎”选项

  4. 右键单击 Oracle 元数据资源管理器中的“架构”,然后单击“迁移数据”。 也可以迁移单个对象或对象类别的数据:右键单击对象或其父文件夹,然后选择“迁移数据”选项。

    注意

    如果未在 SQL Server 实例上安装 SSMA for Oracle 扩展包,并且选择了“服务器端数据迁移引擎”,则会在将数据迁移到目标数据库时遇到以下错误:“未在 SQL Server 上找到 SSMA 数据迁移组件,无法进行服务器端数据迁移。 请检查是否已正确安装扩展包。” 单击“取消”终止数据迁移。

  5. 在“连接到 Oracle”对话框中输入连接凭据,然后单击“连接”。 有关如何连接到 Oracle 的更多信息,请参阅连接到 Oracle (OracleToSQL)

    要连接到目标数据库 SQL Server,请在“连接到 SQL Server”对话框中输入连接凭据,然后单击“连接”。 有关如何连接到 SQL Server 的更多信息,请参阅连接到 SQL Server

    “输出”窗格中会显示消息。 迁移完成后,将出现“数据迁移报告”。 如果有任何数据未迁移,请单击包含错误的行,然后单击“详细信息”。 完成报告后,单击“关闭”。 有关数据迁移报告的详细信息,请参阅数据迁移报告(SSMA 通用)

注意

当 SQL Express Edition 用作目标数据库时,只允许客户端数据迁移,不支持服务器端数据迁移。

大规模迁移数据(预览版)

如果需要在短时间内迁移大型数据,就适合使用大规模离线迁移选项。 此功能利用 Azure 数据工厂管道和云的可伸缩性,将本地或外部 Oracle 数据源迁移到 Azure SQL 平台,无论是 IaaS VM 还是 SQL PaaS。 此功能将创建数据工厂或使用现有数据工厂将数据迁移到 Azure SQL PaaS 或 SQL VM。

  1. 要执行大型离线迁移,请单击“大规模迁移数据”。

  2. 提供 Microsoft Entra Azure AD 帐户用于身份验证。 输入用户名后,选择“连接”

  3. 选择已配置了 Azure SQL 虚拟机或 Azure SQL 数据库或托管实例的租户和订阅,然后单击“下一步”。

  4. 迁移工作流中的下一步是提供数据源凭据,后跟目标 SQL 凭据。

  5. 对于此迁移,可以使用现有的 Azure 资源 - 资源组和数据工厂名称,或者单击“新建”以创建一个资源组和 Azure 数据工厂以进行迁移。

  6. 要迁移外部数据源,需要集成运行时。 单击“新建”并按照步骤创建集成运行时,或使用现有集成服务。 要创建集成服务,需要配置网关安装,并且需要提供密钥来配置集成运行时。

  7. 最后,提供唯一的数据迁移名称。 管道名称支持字符和数值。 避免使用任何特殊字符。

  8. 如果目标表包含数据,则将被截断并重新加载。 此时会显示警告对话框。 选择“确定”以继续,或选择“取消”以避免截断并加载活动。

  9. 创建 Azure 数据工厂组件需要几分钟时间。 状态栏将提供管道的创建进度。 如果成功创建管道,则会在输出日志中写入消息:“已为数据迁移活动创建数据工厂管道 [PipelineName]。”

  10. 要监视数据迁移,请单击监视 URL,或转到 Azure 门户中的数据工厂监视页。

另请参阅

将 Oracle 数据库迁移到 SQL Server (OracleToSQL)