使用物化视图从 Oracle 8i 或 9i 迁移到 Amazon fo RDS r Postgr SQL e 和 AWS DMS - AWS Prescriptive Guidance

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

使用物化视图从 Oracle 8i 或 9i 迁移到 Amazon fo RDS r Postgr SQL e 和 AWS DMS

由 Kumar Babu P G (AWS) 和 Pragnesh Patel () 创作 AWS

环境:PoC 或试点

来源:Oracle 8i 或 9i

目标:适用于 Postgre RDS 的亚马逊SQL或 Aurora Post SQL gre-兼容

R 类型:重构

工作负载:Oracle

技术:迁移;数据库

AWS服务:亚马逊RDS;亚马逊 Aurora

Summary

此模式描述了如何将本地传统 Oracle 8i 或 9i 数据库迁移到适用于 Postgre 的亚马逊关系数据库服务(亚马逊RDS)或亚马逊 A SQL urora Postgre 兼容版。SQL 

AWSDatabase Migration Service (AWSDMS) 不支持 Oracle 8i 或 9i 作为源,因此这种模式使用与兼容的中间 Oracle 数据库实例 AWSDMS,例如 Oracle 10g 或 11g。它还使用实例化视图功能将数据从源 Oracle 8i/9i 实例迁移至中间 Oracle 10g/11g 实例。

AWSSchema Conversion Tool (AWSSCT) 转换数据库架构,并将数据AWSDMS迁移到目标 Postgre SQL 数据库。 

此模式可以帮助希望以最短的数据库停机时间从旧版 Oracle 数据库迁移的用户。实施此示例时,停机时间将限于创建或验证目标数据库上的所有外键、触发器和序列所需时间长度。 

该模式使用安装了 Oracle 10g/11g 数据库的亚马逊弹性计算云 (AmazonEC2) 实例来帮助AWSDMS流式传输数据。您可以暂时暂停从本地 Oracle 数据库到中间 Oracle 实例的流式复制,AWSDMS以便赶上数据验证或使用其他数据验证工具。完成当前更改的迁移后,Postgre SQL 数据库实例和中间 Oracle 数据库将AWSDMS具有相同的数据。

先决条件和限制

先决条件

限制

  • 数据库大小限制为 64 TB

产品版本

  • 作为源数据库的 Oracle 8i 或 9i

  • 作为中间数据库的 Oracle 10g 或 11g

  • Postgre SQL 10.17 或更高版本

架构

源技术堆栈

  • Oracle 8i 或 9i 数据库 

目标技术堆栈

  • RDS适用于 Postgre SQL 或 Aurora 的亚马逊 Post SQL gre-兼容

目标架构

用于从传统 Oracle 数据库迁移到 Amazon RDS 或 Aurora 的架构

工具

  • AWSDMS帮助快速安全地迁移数据库。源数据库可在迁移过程中保持全面运行,从而最大程度地为依赖该数据库的应用程序减少停机时间。AWSDMS可以将您的数据迁入和迁出最广泛使用的商业和开源数据库。

  • AWSSCT自动将源数据库架构和大部分数据库代码对象(包括视图、存储过程和函数)转换为与目标数据库兼容的格式。任何无法自动转换的对象都会被明确标记,以便可以手动转换它们以完成迁移。AWSSCT还可以扫描应用程序源代码中的嵌入式SQL语句,并将其作为数据库架构转换项目的一部分进行转换。在此过程中,通过将传统的 Oracle 和 SQL Server 函数转换为AWS等效函数来AWSSCT执行云原生代码优化,以帮助您在迁移数据库的同时实现应用程序现代化。架构转换完成后,AWSSCT可以使用内置的数据迁移代理帮助将数据从一系列数据仓库迁移到 Amazon Redshift。 

最佳实践

有关刷新实例化视图的最佳实践,请参见以下 Oracle 文档:

操作说明

任务描述所需技能

为EC2实例设置网络。

创建虚拟私有云 (VPC)、子网、互联网网关、路由表和安全组。

AWS SysAdmin

创建实EC2例。

为EC2实例选择 Amazon 系统映像 (AMI)。选择实例大小并配置实例详细信息:实例数量 (1)、上一步中的VPC和子网、自动分配公有 IP 以及其他选项。添加存储、配置安全组并启动实例。出现提示时,创建并保存密钥对,以供下一步使用。

AWS SysAdmin

在EC2实例上安装 Oracle。

获取许可证和所需的 Oracle 二进制文件,然后在实例上安装 Oracle 10g 或 11g。EC2

DBA

配置 Oracle 联网。

在中修改或添加 listener.ora 条目,以连接到本地源 Oracle 8i/9i 数据库,然后创建数据库链接。

DBA

创建实体化视图。

确定要在源 Oracle 8i/9i 数据库中复制的数据库对象,然后使用数据库链接为所有对象创建实体化视图。

DBA

部署脚本,以按所需间隔刷新实例化视图。

开发和部署脚本,以便在 Amazon EC2 Oracle 10g/11g 实例上按所需间隔刷新实体化视图。使用增量刷新选项来刷新实体化视图。

DBA
任务描述所需技能

设置AWSSCT。

创建新报告,然后连接到 Oracle 作为源报告,将 Postgre SQL 作为目标。在项目设置中,打开 “SQL脚本” 选项卡。将目标SQL脚本更改为 “多个文件”。(AWSSCT不支持 Oracle 8i/9i 数据库,因此你必须在中间 Oracle 10g/11g 实例上恢复仅限架构的转储并将其用作来源。)AWSSCT

DBA

转换 Oracle 数据库架构。

在 “操作” 选项卡上,选择 “生成报告”、“转换架构”,然后选择 “另存为” SQL

DBA

修改SQL脚本。

根据最佳实践标准进行修改。例如,切换到合适的数据类型,为 Oracle 特定的函数开发 Postgre SQL 等效项。

DBA,开发人员 DBA
任务描述所需技能

创建 Amazon RDS 数据库实例。

在亚马逊RDS控制台中,创建一个新的 Postgre SQL 数据库实例。

AWS SysAdmin, DBA

配置数据库实例。

指定数据库引擎版本、数据库实例类、多可用区部署、存储类型和分配的存储空间。输入数据库实例标识符、主用户名和主密码。

AWS SysAdmin, DBA

配置网络和安全。

指定VPC、子网组、公共可访问性、可用区首选项和安全组。

DBA, SysAdmin

配置数据库选项。

指定数据库名称、端口、参数组、加密和主密钥。

DBA, AWS SysAdmin

配置备份。

指定备份保留期、备份窗口、开始时间、持续时间以及是否将标签复制到快照。

AWS SysAdmin, DBA

配置监控选项。

启用或禁用增强的监控和性能洞察。

AWS SysAdmin, DBA

配置维护选项。

指定次要版本自动升级、维护窗口以及开始日期、时间和持续时间。

AWS SysAdmin, DBA

从中运行迁移前脚本。AWS SCT

在目标 Amazon RDS for Postgre SQL 实例上,使用其他修改后的SQL脚本创建数据库架构。AWS SCT这些可能包括运行多个脚本,并包括用户创建、数据库创建、模式创建、表、视图、函数和其他代码对象。

AWS SysAdmin, DBA
任务描述所需技能

在中创建复制实例AWSDMS。

填写名称、实例类别VPC(与实例相同)、多可用区和公共可访问性字段。EC2在高级配置部分,指定已分配的存储、子网组、可用区、VPC安全组和AWS密钥管理服务 (AWSKMS) 密钥。

AWS SysAdmin, DBA

创建源数据库端点。

指定终端节点名称、类型、源引擎 (Oracle)、服务器DNS名称(EC2实例的私有名称)、端口、SSL模式、用户名SID、密码、VPC(指定VPC具有复制实例的)和复制实例。要测试连接,请选择运行测试,然后创建端点。您还可以配置以下高级设置:maxFileSize和 Sc numberDataTypeal e。

AWS SysAdmin, DBA

在 Postgr SQL e RDS 上连接AWSDMS亚马逊。

如果您的 Postgre SQL 数据库位于另一个VPC数据库中VPCs,请为跨连接创建迁移安全组。

AWS SysAdmin, DBA

创建目标数据库端点。

指定终端节点名称、类型、源引擎 (PostgreSQL)、服务器名称(Amazon RDS 终端节点)、端口、SSL模式、用户名、密码、数据库名称VPC(指定具有复制实例的)和复制实例。VPC要测试连接,请选择运行测试,然后创建端点。您还可以配置以下高级设置:maxFileSize和 Sc numberDataTypeal e。

AWS SysAdmin, DBA

创建AWSDMS复制任务。

指定任务名称、复制实例、源端点和目标端点以及复制实例。对于迁移类型,选择迁移现有数据并复制持续更改。清除创建时启动任务复选框。

AWS SysAdmin, DBA

配置AWSDMS复制任务设置。

对于目标表格准备模式,请选择什么都不做。完全加载完成后停止任务(创建主键)。指定受限模式或完全LOB模式,并启用控制表。或者,您可以配置CommitRate高级设置。

DBA

配置表映射。

表映射部分,为迁移中包含的所有架构中的所有表创建包含规则,然后创建排除规则。添加三个转换规则,将架构、表和列名转换为小写,并添加此特定迁移所需任何其他规则。

DBA

启动任务。

启动复制任务。确保全负载正在运行。在 Oracle 主数据库上运行 ALTER SYSTEM SWITCH LOGFILE 以启动任务。

DBA

从中运行迁移中期脚本。AWS SCT

在 Amazon RDS for Postgre 中SQL,运行以下脚本:create_index.sqlcreate_constraint.sql(如果最初没有创建完整的架构)。

DBA

恢复任务以继续捕获更改数据(CDC)。

在 Amazon fo RDS r Postgre SQL 数据库实例VACUUM上运行,然后重新启动AWSDMS任务以应用缓存的CDC更改。

DBA
任务描述所需技能

检查AWSDMS日志和验证表。

检查并修复所有复制或验证错误。

DBA

停止使用本地 Oracle 数据库及其依赖项。

停止所有 Oracle 依赖项,关闭 Oracle 数据库上的侦听器,然后运行 ALTER SYSTEM SWITCH LOGFILE。当AWSDMS任务没有显示任何活动时将其停止。

DBA

从中运行迁移后脚本。AWS SCT

在 Amazon RDS for Postgre 中SQL,运行以下脚本:create_foreign_key_constraint.sql and create_triggers.sql。确保序列为最新。

DBA

完成 Amazon for P RDS ostgre 的其他SQL步骤。

如果需要,增量序列以匹配 Oracle,运行 VACUUMANALYZE,然后拍摄合规性快照。

DBA

为 Postgr SQL e 打开与亚马逊RDS的连接。

从 Amazon for P RDS ostgre 中移除安全组SQL,添加生产安全组,并将您的应用程序指向新数据库。AWS DMS

DBA

清理AWSDMS物体。

移除终端节点、复制任务、复制实例和EC2实例。

SysAdmin, DBA

相关资源