选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

从 Amazon RDS for Oracle 迁移到 Amazon RDS for MySQL - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

从 Amazon RDS for Oracle 迁移到 Amazon RDS for MySQL

由 Jitender Kumar (AWS)、Neha Sharma (AWS) 和 Srini Ramaswamy (AWS) 创作

摘要

此模式为在亚马逊网络服务 (AWS) 上将适用于 Oracle 数据库实例的亚马逊关系数据库服务 (Amazon RDS) 迁移到亚马逊 RDS for MySQL 数据库实例提供了指导。该模式使用 AWS 数据库迁移服务 (AWS DMS) 和 AWS 架构转换工具 (AWS SCT)。 

该模式提供了处理存储过程迁移的最佳实践。它还涵盖了为支持应用程序层而进行的代码更改。

先决条件和限制

先决条件

  • 一个有效的 Amazon Web Services account。

  • Amazon RDS for Oracle 源数据库

  • Amazon RDS for MySQL 目标数据库。源数据库和目标数据库应位于同一个虚拟私有云 (VPC) 中。如果您使用多个 VPCs,或者您必须拥有所需的访问权限。

  • 允许在源数据库和目标数据库、AWS SCT、Application Server和 AWS DMS 之间建立连接的安全组。

  • 具有源数据库运行 AWS SCT 所需权限的用户账户。

  • 为在源数据库上运行 AWS DMS 启用了补充日志。

限制

  • 源和目标 Amazon RDS 数据库大小限制为 64 TB。有关 Amazon RDS 的大小信息,请参阅 AWS 文档

  • Oracle 对于数据库对象不区分大小写,但 MySQL 则不然。AWS SCT 可以在创建对象时处理此问题。但是,要支持完全不区分大小写,则需要一些手动操作。

  • 此迁移不使用 MySQL 扩展来启用 Oracle 原生功能。AWS SCT 处理大部分转换,但需要进行一些工作来手动更改代码。

  • 应用程序中需要更改 Java Database Connectivity (JDBC) 驱动程序。

产品版本

架构

源技术堆栈

目标技术堆栈

迁移架构

在下图中,AWS SCT 从 Amazon RDS for Oracle 源数据库复制和转换架构对象,并将这些对象发送到 Amazon RDS for MySQL 目标数据库。AWS DMS 复制源数据库中的数据并将其发送到 Amazon RDS for MySQL 实例。

AWS SCT、AWS DMS 和 Amazon RDS 部署在私有子网中。

工具

操作说明

Task描述所需技能

验证源数据库和目标数据库的版本和引擎。

数据库管理员

确定目标服务器实例的硬件要求。

数据库管理员, SysAdmin

识别存储需求(存储类型和容量)。

数据库管理员, SysAdmin

选择适当的实例类型(容量、存储功能、网络功能)。

数据库管理员, SysAdmin

确定源数据库和目标数据库的网络访问安全要求。

数据库管理员, SysAdmin

选择应用程序迁移策略。

考虑割接活动是要完全停机还是部分停机。

DBA、 SysAdmin、应用程序所有者

准备迁移

Task描述所需技能

验证源数据库和目标数据库的版本和引擎。

数据库管理员

确定目标服务器实例的硬件要求。

数据库管理员, SysAdmin

识别存储需求(存储类型和容量)。

数据库管理员, SysAdmin

选择适当的实例类型(容量、存储功能、网络功能)。

数据库管理员, SysAdmin

确定源数据库和目标数据库的网络访问安全要求。

数据库管理员, SysAdmin

选择应用程序迁移策略。

考虑割接活动是要完全停机还是部分停机。

DBA、 SysAdmin、应用程序所有者
Task描述所需技能

创建 VPC 和子网。

SysAdmin

创建安全组和网络访问控制列表 (ACLs)。

SysAdmin

配置和启动 Amazon RDS for Oracle 实例。

数据库管理员, SysAdmin

配置和启动 Amazon RDS for MySQL 实例。

数据库管理员, SysAdmin

准备一个测试用例来验证代码转换。

这将有助于对转换后的代码执行单元测试。

数据库管理员、开发人员

配置 AWS DMS 实例。

在 AWS DMS 中配置源和目标端点。

配置基础设施

Task描述所需技能

创建 VPC 和子网。

SysAdmin

创建安全组和网络访问控制列表 (ACLs)。

SysAdmin

配置和启动 Amazon RDS for Oracle 实例。

数据库管理员, SysAdmin

配置和启动 Amazon RDS for MySQL 实例。

数据库管理员, SysAdmin

准备一个测试用例来验证代码转换。

这将有助于对转换后的代码执行单元测试。

数据库管理员、开发人员

配置 AWS DMS 实例。

在 AWS DMS 中配置源和目标端点。

Task描述所需技能

通过 AWS SCT 生成目标数据库脚本。

检查 AWS SCT 转换代码的准确性。将需要一些手动操作。

数据库管理员、开发人员

在 AWS SCT 中,选择不区分大小写设置。

在 AWS SCT 中选择项目设置、目标区分大小写、不区分大小写。

数据库管理员、开发人员

在 AWS SCT 中选择不使用 Oracle 原生函数。

在 “项目设置” 中,选中 TO_ CHAR/TO_NUMBER/TO _DATE 的功能。

数据库管理员、开发人员

对“sql%notfound”代码进行更改。

您可能需要手动转换代码。

在存储过程中查询表和对象(使用小写查询)。

数据库管理员、开发人员

完成所有更改后创建主脚本,然后将主脚本部署到目标数据库上。

数据库管理员、开发人员

使用示例数据对存储过程和应用程序调用执行单元测试。

清理单元测试期间所创建的数据。

数据库管理员、开发人员

删除目标数据库上的外键约束。

需要执行此步骤来加载初始数据。如果您不想删除外键约束,则必须为特定于主表和辅助表的数据创建迁移任务。

数据库管理员、开发人员

删除目标数据库的主键与唯一键。

此步骤可提高初始加载性能。

数据库管理员、开发人员

在源数据库上启用补充日志记录。

数据库管理员

在 AWS DMS 中为初始加载创建迁移任务,然后运行该任务。

选择该选项以迁移现有数据。

数据库管理员

向目标数据库添加主键和外键。

初始加载后需要添加约束。

数据库管理员、开发人员

创建用于持续复制的迁移任务。

持续复制使目标数据库与源数据库保持同步。

数据库管理员

迁移数据

Task描述所需技能

通过 AWS SCT 生成目标数据库脚本。

检查 AWS SCT 转换代码的准确性。将需要一些手动操作。

数据库管理员、开发人员

在 AWS SCT 中,选择不区分大小写设置。

在 AWS SCT 中选择项目设置、目标区分大小写、不区分大小写。

数据库管理员、开发人员

在 AWS SCT 中选择不使用 Oracle 原生函数。

在 “项目设置” 中,选中 TO_ CHAR/TO_NUMBER/TO _DATE 的功能。

数据库管理员、开发人员

对“sql%notfound”代码进行更改。

您可能需要手动转换代码。

在存储过程中查询表和对象(使用小写查询)。

数据库管理员、开发人员

完成所有更改后创建主脚本,然后将主脚本部署到目标数据库上。

数据库管理员、开发人员

使用示例数据对存储过程和应用程序调用执行单元测试。

清理单元测试期间所创建的数据。

数据库管理员、开发人员

删除目标数据库上的外键约束。

需要执行此步骤来加载初始数据。如果您不想删除外键约束,则必须为特定于主表和辅助表的数据创建迁移任务。

数据库管理员、开发人员

删除目标数据库的主键与唯一键。

此步骤可提高初始加载性能。

数据库管理员、开发人员

在源数据库上启用补充日志记录。

数据库管理员

在 AWS DMS 中为初始加载创建迁移任务,然后运行该任务。

选择该选项以迁移现有数据。

数据库管理员

向目标数据库添加主键和外键。

初始加载后需要添加约束。

数据库管理员、开发人员

创建用于持续复制的迁移任务。

持续复制使目标数据库与源数据库保持同步。

数据库管理员
Task描述所需技能

将 Oracle 原生函数替换为 MySQL 原生函数。

应用程序所有者

确保 SQL 查询中的数据库对象仅使用小写名称。

DBA、 SysAdmin、应用程序所有者

迁移应用程序

Task描述所需技能

将 Oracle 原生函数替换为 MySQL 原生函数。

应用程序所有者

确保 SQL 查询中的数据库对象仅使用小写名称。

DBA、 SysAdmin、应用程序所有者
Task描述所需技能

关闭Application Server。

应用程序所有者

验证源数据库和目标数据库是否同步。

数据库管理员、应用程序所有者

停止 Amazon RDS for Oracle 数据库实例。

数据库管理员

停止迁移任务。

完成上一步后,该进程将自动停止。

数据库管理员

将 JDBC 连接从 Oracle 更改至 MySQL。

应用程序所有者,数据库管理员

启动应用程序。

DBA、 SysAdmin、应用程序所有者

割接至目标数据库

Task描述所需技能

关闭Application Server。

应用程序所有者

验证源数据库和目标数据库是否同步。

数据库管理员、应用程序所有者

停止 Amazon RDS for Oracle 数据库实例。

数据库管理员

停止迁移任务。

完成上一步后,该进程将自动停止。

数据库管理员

将 JDBC 连接从 Oracle 更改至 MySQL。

应用程序所有者,数据库管理员

启动应用程序。

DBA、 SysAdmin、应用程序所有者
Task描述所需技能

查看和验证项目文档。

数据库管理员, SysAdmin

收集与迁移时间、手动任务与工具任务的百分比、成本节约等相关的指标。

数据库管理员, SysAdmin

停止和删除 AWS DMS 实例。

数据库管理员

移除源和目标数据库端点

数据库管理员

移除迁移任务。

数据库管理员

拍摄 Amazon RDS for Oracle 数据库实例的快照。

数据库管理员

删除 Amazon RDS for Oracle 数据库实例。

数据库管理员

关闭并删除您所用的任何其他临时 AWS 资源。

数据库管理员, SysAdmin

关闭项目并提供任何反馈。

数据库管理员

关闭项目

Task描述所需技能

查看和验证项目文档。

数据库管理员, SysAdmin

收集与迁移时间、手动任务与工具任务的百分比、成本节约等相关的指标。

数据库管理员, SysAdmin

停止和删除 AWS DMS 实例。

数据库管理员

移除源和目标数据库端点

数据库管理员

移除迁移任务。

数据库管理员

拍摄 Amazon RDS for Oracle 数据库实例的快照。

数据库管理员

删除 Amazon RDS for Oracle 数据库实例。

数据库管理员

关闭并删除您所用的任何其他临时 AWS 资源。

数据库管理员, SysAdmin

关闭项目并提供任何反馈。

数据库管理员

相关的资源

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。