本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
从 Oracle 版亚马逊RDS迁移到 Amazon f RDS or My SQL
由 Jitender Kumar (AWS)、Neha Sharma () 和 Srini Ramaswamy (AWS) 创作 AWS
摘要
此模式为将适用于 Oracle 的亚马逊关系数据库服务 (AmazonRDS) 数据库实例迁移到 Amazon Web Services 上的 Ama RDS zon for SQL My 数据库实例提供了指导 (AWS)。该模式使用 AWS Database Migration Service (AWSDMS) 和 AWS Schema Conversion Tool (AWSSCT)。
该模式提供了处理存储过程迁移的最佳实践。它还涵盖了为支持应用程序层而进行的代码更改。
先决条件和限制
先决条件
一个活动的 AWS 账户。
Amazon RDS for Oracle 源数据库。
Amazon RDS for My 的SQL目标数据库。源数据库和目标数据库应位于同一个虚拟私有云中 (VPC)。如果您使用多个VPCs,或者您必须拥有所需的访问权限。
允许在源数据库和目标数据库AWSSCT、应用程序服务器和之间建立连接的安全组AWSDMS。
具有在源数据库AWSSCT上运行所需权限的用户帐户。
为在源数据库AWSDMS上运行启用了补充日志。
限制
源和目标 Amazon RDS 数据库的大小限制为 64 TB。有关 Amazon 的RDS尺码信息,请参阅AWS文档。
Oracle 对数据库对象不区分大小写,但 My 不区分SQL大小写。 AWSSCT可以在创建对象时处理这个问题。但是,需要一些手动操作才能支持完全不区分大小写。
此迁移不使用 “我的SQL扩展” 来启用 Oracle 原生功能。 AWSSCT处理大部分转换,但需要做一些工作才能手动更改代码。
需要在应用程序中更改 Java 数据库连接 (JDBC) 驱动程序。
产品版本
RDS适用于甲骨文 12.2.0.1 及更高版本的亚马逊。有关当前支持RDS的 Oracle 版本,请参阅AWS文档。
亚马逊RDS适用于我的 SQL 8.0.15 及更高版本。有关 “我的SQL版本” 当前支持的RDS内容,请参阅AWS文档。
AWSSCT版本 1.0.628 及更高版本。 请参阅AWS文档中的AWSSCT源端点和目标端点支持矩阵。
架构
源技术堆栈
RDS适用于甲骨文的亚马逊。有关更多信息,请参阅使用 Oracle 数据库作为源AWSDMS。
目标技术堆栈
Amazon RDS for My SQL。有关更多信息,请参阅使用我的SQL兼容数据库作为目标。AWS DMS
迁移架构
在下图中,从 Amazon RDS for Oracle 源数据库中AWSSCT复制和转换架构对象,并将这些对象发送到 Amazon f RDS or My SQL 目标数据库。 AWSDMS复制源数据库中的数据并将其发送到 Amazon RDS for My SQL 实例。

工具
AWS数据迁移服务可帮助您将数据存储迁移到AWS云端,或者在云端和本地设置的组合之间迁移。
Amazon Relational Database Service (AmazonRDS) 可帮助您在AWS云中设置、操作和扩展关系数据库。这种模式使用 Amazon f RDS or Oracle 和 Amazon RDS for My SQL。
AWSSchema Conversion Tool (AWSSCT) 通过自动将源数据库架构和大部分自定义代码转换为与目标数据库兼容的格式来支持异构数据库迁移。
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
验证源数据库和目标数据库的版本和引擎。 | DBA | |
确定目标服务器实例的硬件要求。 | DBA, SysAdmin | |
识别存储需求(存储类型和容量)。 | DBA, SysAdmin | |
选择适当的实例类型(容量、存储功能、网络功能)。 | DBA, SysAdmin | |
确定源数据库和目标数据库的网络访问安全要求。 | DBA, SysAdmin | |
选择应用程序迁移策略。 | 考虑割接活动是要完全停机还是部分停机。 | DBA, SysAdmin,应用程序所有者 |
任务 | 描述 | 所需技能 |
---|---|---|
创建VPC和子网。 | SysAdmin | |
创建安全组和网络访问控制列表 (ACLs)。 | SysAdmin | |
配置并启动 Amazon f RDS or Oracle 实例。 | DBA, SysAdmin | |
配置并启动 Amazon f RDS or My SQL 实例。 | DBA, SysAdmin | |
准备一个测试用例来验证代码转换。 | 这将有助于对转换后的代码执行单元测试。 | DBA,开发者 |
配置实AWSDMS例。 | ||
在中配置源端点和目标端点AWSDMS。 |
任务 | 描述 | 所需技能 |
---|---|---|
使用生成目标数据库脚本AWSSCT。 | 检查所转换的代码的准确性AWSSCT。将需要一些手动操作。 | DBA,开发者 |
在中 AWSSCT,选择 “不区分大小写” 设置。 | 在中 AWSSCT,选择 “项目设置”、“区分目标大小写”、“不区分大小写”。 | DBA,开发者 |
在中 AWSSCT,选择不使用 Oracle 本机函数。 | 在 “项目设置” 中,检查 TO CHAR/TO_NUMBER/TO _ DATE 的功能。 | DBA,开发者 |
对“sql%notfound”代码进行更改。 | 您可能需要手动转换代码。 | |
在存储过程中查询表和对象(使用小写查询)。 | DBA,开发者 | |
完成所有更改后创建主脚本,然后将主脚本部署到目标数据库上。 | DBA,开发者 | |
使用示例数据对存储过程和应用程序调用执行单元测试。 | ||
清理单元测试期间所创建的数据。 | DBA,开发者 | |
删除目标数据库上的外键约束。 | 需要执行此步骤来加载初始数据。如果您不想删除外键约束,则必须为特定于主表和辅助表的数据创建迁移任务。 | DBA,开发者 |
删除目标数据库的主键与唯一键。 | 此步骤可提高初始加载性能。 | DBA,开发者 |
在源数据库上启用补充日志记录。 | DBA | |
在中为初始加载创建迁移任务 AWSDMS,然后运行它。 | 选择该选项以迁移现有数据。 | DBA |
向目标数据库添加主键和外键。 | 初始加载后需要添加约束。 | DBA,开发者 |
创建用于持续复制的迁移任务。 | 持续复制使目标数据库与源数据库保持同步。 | DBA |
任务 | 描述 | 所需技能 |
---|---|---|
将 Oracle 原生函数替换为 “我的SQL本机函数”。 | 应用程序所有者 | |
确保SQL查询中的数据库对象仅使用小写名称。 | DBA, SysAdmin,应用程序所有者 |
任务 | 描述 | 所需技能 |
---|---|---|
关闭Application Server。 | 应用程序所有者 | |
验证源数据库和目标数据库是否同步。 | DBA,应用程序所有者 | |
停止 Amazon f RDS or Oracle 数据库实例。 | DBA | |
停止迁移任务。 | 完成上一步后,该进程将自动停止。 | DBA |
将JDBC连接从 Oracle 更改为 “我的” SQL。 | 应用程序所有者,DBA | |
启动应用程序。 | DBA, SysAdmin,应用程序所有者 |
任务 | 描述 | 所需技能 |
---|---|---|
查看和验证项目文档。 | DBA, SysAdmin | |
收集与迁移时间、手动任务与工具任务的百分比、成本节约等相关的指标。 | DBA, SysAdmin | |
停止并删除AWSDMS实例。 | DBA | |
移除源和目标数据库端点 | DBA | |
移除迁移任务。 | DBA | |
拍下 Amazon for Oracle 数据库实例RDS的快照。 | DBA | |
删除 Amazon fo RDS r Oracle 数据库实例。 | DBA | |
关闭并删除您使用的任何其他临时AWS资源。 | DBA, SysAdmin | |
关闭项目并提供任何反馈。 | DBA |