本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将数据从本地 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
你也可以使用这种模式将本地 Oracle 数据库迁移到适用于 Postg SQL re 的亚马逊关系数据库服务(亚马逊RDS),或者将托管在亚马逊弹性计算云(亚马逊EC2)上的 Oracle 数据库迁移到亚马逊 for Postgre 或兼容 Aurora Postgre 的 A RDS SQL urora Postgre。SQL
先决条件和限制
先决条件
一个活跃的AWS账户
本地数据中心中的 Oracle 源数据库,配置了 Active Data Guard 备用数据库
AWS在本地数据中心和AWS云端之间配置的 Direct Connect
限制
Amazon Aurora 数据库集群最多可创建 128 TiB 存储空间。Amazon RDS for Postgre SQL 数据库实例最多可创建 64 TiB 的存储空间。有关最新存储信息,请参阅AWS文档中的 Amazon Aurora 存储和可靠性以及亚马逊RDS数据库实例存储。
产品版本
AWSDMS支持 10.2 及更高版本(适用于版本 10.x)、11g 以及最高 12.2、18c 和 19c 的所有 Oracle 数据库版本。有关支持版本的最新列表,请参阅AWS文档AWSDMS中的 “使用 Oracle 数据库作为源”。
架构
源技术堆栈
配置了 Oracle Active Data Guard 备用数据库的本地 Oracle 数据库
目标技术堆栈
Aurora Postgre SQL-兼容
数据迁移架构
工具
AWSDMS-AWSDatabase Migration Servic e (AWSDMS) 支持多个源数据库和目标数据库。有关支持的 Oracle 源数据库和目标数据库版本和版本列表,请参阅AWSDMS文档AWSDMS中的 “使用 Oracle 数据库作为源”。如果源数据库不受支持 AWSDMS,则必须选择另一种方法来迁移第 6 阶段的数据(在 Epics 部分)。 重要说明:由于这是异构迁移,因此必须先检查数据库是否支持商用 off-the-shelf (COTS) 应用程序。如果应用程序是COTS,请咨询供应商以确认是否支持 Aurora Postgre SQL-Compatible,然后再继续。有关更多信息,请参阅AWS文档中的AWSDMS Step-by-Step迁移演练。
AWSSCT-AWSSchema Conversion Tool (AWSSCT) 通过自动将源数据库架构和大部分自定义代码转换为与目标数据库兼容的格式来简化异构数据库迁移。该工具转换的自定义代码包括视图、存储进程和函数。该工具无法自动转换的任意代码会被清楚地标记,以便您自己进行转换。
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
验证源数据库和目标数据库版本。 | 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 SCT | DBA,应用程序所有者 | |
手动转换无法自动转换的任何数据库对象。 | DBA,应用程序所有者 | |
优化数据库代码转换。 | DBA,应用程序所有者 | |
根据对象类型将该 .sql 文件分成多个 .sql 文件。 | DBA,应用程序所有者 | |
验证目标数据库中的SQL脚本。 | DBA,应用程序所有者 |
任务 | 描述 | 所需技能 |
---|---|---|
创建AWSDMS复制实例。 | DBA | |
创建源端点和目标端点。 | 如果将PKs和的数据类型从 Oracle 转换FKs为 Postgre NUMBER 中的SQL,请考虑BIGINT在创建源端点 | 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,应用程序所有者 |
相关资源
参考
教程