本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用物化视图从 Oracle 8i 或 9i 迁移到 Amazon fo RDS r Postgr SQL e 和 AWS DMS
由 Kumar Babu P G (AWS) 和 Pragnesh Patel () 创作 AWS
摘要
此模式描述了如何将本地传统 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具有相同的数据。
先决条件和限制
先决条件
一个活跃的AWS账户
本地数据中心中的源 Oracle 8i 或 9i 数据库
AWS在本地数据中心和之间配置的 Direct Connect AWS
安装在本地计算机或安装EC2实例上的AWSSCT连接器的 Java 数据库连接 (JDBC) 驱动程序 AWS SCT
限制
数据库大小限制为 64 TB
产品版本
作为源数据库的 Oracle 8i 或 9i
作为中间数据库的 Oracle 10g 或 11g
Postgre SQL 10.17 或更高版本
架构
源技术堆栈
Oracle 8i 或 9i 数据库
目标技术堆栈
RDS适用于 Postgre SQL 或 Aurora 的亚马逊 Post SQL gre-兼容
目标架构

工具
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 联网。 | 在中修改或添加 | 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 主数据库上运行 | DBA |
从中运行迁移中期脚本。AWS SCT | 在 Amazon RDS for Postgre 中SQL,运行以下脚本: | DBA |
恢复任务以继续捕获更改数据(CDC)。 | 在 Amazon fo RDS r Postgre SQL 数据库实例 | DBA |
任务 | 描述 | 所需技能 |
---|---|---|
检查AWSDMS日志和验证表。 | 检查并修复所有复制或验证错误。 | DBA |
停止使用本地 Oracle 数据库及其依赖项。 | 停止所有 Oracle 依赖项,关闭 Oracle 数据库上的侦听器,然后运行 | DBA |
从中运行迁移后脚本。AWS SCT | 在 Amazon RDS for Postgre 中SQL,运行以下脚本: | DBA |
完成 Amazon for P RDS ostgre 的其他SQL步骤。 | 如果需要,增量序列以匹配 Oracle,运行 | DBA |
为 Postgr SQL e 打开与亚马逊RDS的连接。 | 从 Amazon for P RDS ostgre 中移除安全组SQL,添加生产安全组,并将您的应用程序指向新数据库。AWS DMS | DBA |
清理AWSDMS物体。 | 移除终端节点、复制任务、复制实例和EC2实例。 | SysAdmin, DBA |