将数据从本地 Oracle 数据库迁移到 Aurora Postgre SQL - AWS Prescriptive Guidance

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

将数据从本地 Oracle 数据库迁移到 Aurora Postgre SQL

由 Michelle Deng (AWS) 和 Shunan Xiang (AWS) 创作

环境:PoC 或试点

源:Oracle

目标:Aurora Postgre SQL-兼容

R 类型:重构

工作负载:Oracle

技术:迁移;数据库

AWS服务:亚马逊 Aurora AWSDMS;AWSSCT

Summary

此模式为数据从本地 Oracle 数据库迁移到 Amazon Aurora Postgre SQL 兼容版提供了指导。它以在线数据迁移策略为目标,为包含具有大量数据操作语言 () DML 活动的大型表的多 TB 的 Oracle 数据库提供最少的停机时间。使用 Oracle Active Data Guard 备用数据库作为从主数据库分流数据迁移的来源。在满负荷期间,可以暂停从 Oracle 主数据库到备用数据库的复制,以避免 ORA -01555 错误。 

在 Oracle 中,数据类型NUMBER为主键 (PKsFKs) 或外键 () 的表列通常用于存储整数。为了获得更好的性能,我们建议您将它们转换为 Postgre INT 或BIGINT在 Postgre 中SQL进行转换。您可以使用 AWS Schema Conversion Tool (AWSSCT) 更改 PK 和 FK 列的默认数据类型映射。(有关更多信息,请参阅AWS博客文章将NUMBER数据类型从 Oracle 转换为 Postgre SQL。) 此模式中的数据迁移使用 AWS Database Migration Service (AWSDMS) 进行满载和更改数据捕获 (CDC)。

你也可以使用这种模式将本地 Oracle 数据库迁移到适用于 Postg SQL re 的亚马逊关系数据库服务(亚马逊RDS),或者将托管在亚马逊弹性计算云(亚马逊EC2)上的 Oracle 数据库迁移到亚马逊 for Postgre 或兼容 Aurora Postgre 的 A RDS SQL urora Postgre。SQL

先决条件和限制

先决条件

限制

产品版本

  • AWSDMS支持 10.2 及更高版本(适用于版本 10.x)、11g 以及最高 12.2、18c 和 19c 的所有 Oracle 数据库版本。有关支持版本的最新列表,请参阅AWS文档AWSDMS中的 “使用 Oracle 数据库作为源”。

架构

源技术堆栈

  • 配置了 Oracle Active Data Guard 备用数据库的本地 Oracle 数据库

目标技术堆栈

  • Aurora Postgre SQL-兼容 

数据迁移架构

将 Oracle 数据库迁移到 Aurora Postgre SQL-兼容

工具

操作说明

任务描述所需技能
验证源数据库和目标数据库版本。DBA
安装AWSSCT和驱动程序。DBA
添加并验证AWSSCT必备用户和拨款来源数据库。DBA
为工作负载创建AWSSCT项目,然后连接到源数据库。DBA
生成评测报告并评测可行性。DBA,应用程序所有者
任务描述所需技能
创建与 Aurora Postgre SQL 兼容的目标数据库。DBA
从源数据库中提取用户、角色和权限列表。DBA
将现有数据库用户映射到新的数据库用户。应用程序所有者
在目标数据库中创建用户。DBA
将上一步中的角色应用到SQL兼容 Aurora Postgre 的目标 Aurora Postgre 数据库。DBA
查看源数据库中的数据库选项、参数、网络文件和数据库链接,然后评估其对目标数据库的适用性。DBA,应用程序所有者
将所有相关设置应用至目标数据库。DBA
任务描述所需技能
配置与目标数据库的AWSSCT连接。DBA
转换架构并将转换后的代码另存为.sql 文件。AWS SCTDBA,应用程序所有者
手动转换无法自动转换的任何数据库对象。DBA,应用程序所有者
优化数据库代码转换。DBA,应用程序所有者
根据对象类型将该 .sql 文件分成多个 .sql 文件。DBA,应用程序所有者
验证目标数据库中的SQL脚本。DBA,应用程序所有者
任务描述所需技能
创建AWSDMS复制实例。DBA
创建源端点和目标端点。

如果将PKs和的数据类型从 Oracle 转换FKs为 Postgre NUMBER 中的SQL,请考虑BIGINT在创建源端点numberDataTypeScale=-2时指定连接属性。

DBA
任务描述所需技能
在目标数据库中创建架构与表。DBA
通过对表格进行分组或根据表格大小拆分大表来创建AWSDMS满负荷任务。DBA
在短时间内停止源 Oracle 数据库的应用程序。应用程序所有者
验证 Oracle 备库与主库是否同步,并停止从主库到备库的复制。DBA,应用程序所有者
在源 Oracle 数据库上启动应用程序。应用程序所有者
并行启动从 Oracle 备用数据库到 Aurora Postg SQL re 兼容数据库的AWSDMS满载任务。DBA
在完全加载完成后创建PKs和二级索引。DBA
验证数据。DBA
任务描述所需技能
在 Oracle 备用数据库与主数据库同步时,以及在上一个任务中应用程序重新CDC启动之前,通过指定自定义的开始时间或系统更改编号 (SCN) 来创建正在AWSDMS进行的复制任务。DBA
并行启动AWSDMS任务,将正在进行的更改从 Oracle 备用数据库复制到 Aurora Postgre SQL 兼容数据库。DBA
重新建立从 Oracle 主数据库到备用数据库复制。DBA
当目标 Aurora Postgre SQL 兼容数据库与源 Oracle 数据库几乎同步时,监控日志并停止 Oracle 数据库上的应用程序。DBA,应用程序所有者
当目标与源 Oracle 数据库完全同步时,停止AWSDMS任务。DBA
在目标数据库中创建FKs和校验数据。DBA
在目标数据库中创建函数、视图、触发器、序列以及其他对象类型。DBA
在目标数据库应用角色授权。DBA
任务描述所需技能
AWSSCT用于分析和转换应用程序代码中的SQL语句。应用程序所有者
在上创建新的应用程序服务器AWS。应用程序所有者
将应用程序代码迁移至新服务器。应用程序所有者
为目标数据库和驱动程序配置应用程序服务器。应用程序所有者
修复应用程序中特定于源数据库引擎的任何代码。应用程序所有者
针对目标数据库优化应用程序代码。应用程序所有者
任务描述所需技能
将新应用程序服务器指向目标数据库。DBA,应用程序所有者
执行健全性检查。DBA,应用程序所有者
上线。DBA,应用程序所有者
任务描述所需技能
关闭临时AWS资源。DBA,系统管理员
查看和验证项目文档。DBA,应用程序所有者
收集有关迁移时间、手动与工具使用的百分比、成本节约和类似数据的指标。DBA,应用程序所有者
关闭项目并提供反馈。DBA,应用程序所有者

相关资源

参考

教程