本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 AWS DMS 在 SSL 模式下将 Amazon RDS for Oracle 迁移到 Amazon RDS for PostgreSQL
由 Pinesh Singal (AWS) 编写
环境:PoC 或试点 | 源:Amazon RDS for Oracle | 目标:Amazon RDS PostgreSQL |
R 类型:重构 | 工作负载:Oracle;开源 | 技术:迁移;安全性、标识性、合规性;数据库 |
Amazon Web Services:AWS DMS;Amazon RDS |
总结
此模式提供了将 Amazon Relational Database Service (Amazon RDS)for Oracle 数据库实例迁移到 Amazon Web Services (AWS)云上的 Amazon RDS for PostgreSQL 数据库的指导。为了加密数据库之间的连接,该模式在 Amazon RDS 和 AWS Database Migration Service (AWS DMS)中使用证书颁发机构(CA)和 SSL 模式。
该模式描述了一种在线迁移策略,对于具有大量事务的多 TB Oracle 源数据库,停机时间很少或没有停机时间。为了数据安全,该模式在传输数据时使用 SSL。
此模式使用 AWS Schema Conversion Tool(AWS SCT)将 Amazon RDS for Oracle 数据库架构转换为 Amazon RDS for PostgreSQL 架构。然后,该模式使用 AWS DMS 将数据从 Amazon RDS for Oracle 数据库迁移到 Amazon RDS for PostgreSQL 数据库。
先决条件和限制
先决条件
一个有效的 Amazon Web Services account
仅配置了 rds-ca-2019 的 Amazon RDS 数据库证书颁发机构 (CA)(rds-ca-2015 证书已于 2020 年 3 月 5 日过期)
AWS SCT
AWS DMS
pgAdmin
SQL 工具(例如 SQL Developer 或 SQL*Plus)
限制
Amazon RDS for Oracle 数据库 – 企业版和标准版两个版本的最低要求是 Oracle 版本 19c。
Amazon RDS for PostgreSQL 数据库 – 最低要求是 PostgreSQL 版本 12 及更高版本(适用于版本 9.x 及更高版本)。
产品版本
Amazon RDS for Oracle 数据库版本 12.1.0.2 实例
Amazon RDS for PostgreSQL 数据库版本 11.5 实例
架构
源技术堆栈
版本 12.1.0.2.v18 的 Amazon RDS for Oracle 数据库实例。
目标技术堆栈
AWS DMS
版本 11.5 的 Amazon RDS for PostgreSQL 数据库实例。
目标架构
下图显示了 Oracle(源)和 PostgreSQL(目标)数据库之间的数据迁移体系结构。该架构包括以下内容:
虚拟私有云(VPC)
可用区
私有子网
Amazon RDS for Oracle 数据库
AWS DMS 复制实例
RDS for PostgreSQL 数据库
要加密源数据库和目标数据库的连接,必须在 Amazon RDS 和 AWS DMS 中启用 CA 和 SSL 模式。
![在私有子网中,数据在 Amazon RDS for Oracle 和 AWS DMS 之间以及 AWS DMS 和 Amazon RDS for PostgreSQL 之间移动。](images/pattern-img/7098e2a3-b456-4e14-8881-c97145aef483/images/55b50ff7-1e6a-4ff0-9bcd-2fd419d5316a.png)
工具
Amazon Web Services
AWS Database Migration Service (AWS DMS) 可帮助您将数据存储迁移到 Amazon Web Services Cloud,或者在云和本地设置的组合之间迁移。
Amazon Relational Database Service (Amazon RDS) for Oracle 可帮助您在 Amazon Web Services Cloud 中设置、操作和扩展 Oracle 关系数据库。
Amazon Relational Database Service(Amazon RDS)for PostgreSQL 可帮助您在 Amazon Web Services Cloud 中设置、操作和扩展PostgreSQL 关系数据库。
AWS Schema Conversion Tool(AWS SCT)通过以下方法来简化异构数据库的迁移工作:将源数据库架构和大部分的自定义代码自动转换成与目标数据库兼容的格式。
其他服务
pgAdmin
是一种适用于 PostgreSQL 的开源管理工具。它提供了一个图形界面,可帮助您创建、维护和使用数据库对象。
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
创建 Oracle 数据库实例。 | 登录您的 Amazon Web Services account,打开 Amazon Web Services Management Console,然后导航到 Amazon RDS 控制台。在控制台上,选择 创建数据库,然后选择 Oracle。 | 常规 AWS、数据库管理员 |
配置安全组。 | 配置入站和出站安全组。 | 常规 AWS |
创建选项组。 | 在与 Amazon RDS for Oracle 数据库相同的 VPC 和安全组中创建选项组。对于 选项,选择 SSL。对于端口,选择 2484 (对于 SSL 连接)。 | 常规 AWS |
配置选项设置。 | 使用以下设置:
| 常规 AWS |
修改 Oracle 数据库实例的 RDS。 | 将 CA 证书设置为 rds-ca-2019。在选项组下,附加之前创建的选项组。 | 数据库管理员、常规 AWS |
确认 RDS for Oracle 数据库实例可用。 | 确保 Amazon RDS for Oracle 数据库实例已启动并正在运行,并且数据库架构可访问。 要连接到 RDS for Oracle DB,请从命令行使用
| 数据库管理员 |
在 RDS for Oracle 数据库中创建对象和数据。 | 创建对象并在架构中插入数据。 | 数据库管理员 |
任务 | 描述 | 所需技能 |
---|---|---|
创建 RDS for PostgreSQL 数据库。 | 在 Amazon RDS 控制台 创建数据库 页面上,选择 PostgreSQL 以创建 Amazon RDS for PostgreSQL 数据库实例。 | 数据库管理员、常规 AWS |
配置安全组。 | 配置入站和出站安全组。 | 常规 AWS |
创建参数组。 | 如果您使用的是 PostgreSQL 版本 11.x,请创建一个参数组来设置 SSL 参数。在 PostgreSQL 版本 12 中,默认情况下启用 SSL 参数组。 | 常规 AWS |
编辑参数。 | 将 默认情况下, | 常规 AWS |
修改 RDS for PostgreSQL 数据库实例。 | 将 CA 证书设置为 rds-ca-2019。附加默认参数组或之前创建的参数组,具体取决于您的 PostgreSQL 版本。 | 数据库管理员、常规 AWS |
确认 RDS for PostgreSQL 数据库实例可用。 | 确保 Amazon RDS for PostgreSQL 数据库已启动并正在运行。
一种选择是在参数组中设置 以下输出显示 SSL 连接已建立。
第二个选项是在参数组中设置 以下输出显示 SSL 连接已建立。
| 数据库管理员 |
任务 | 描述 | 所需技能 |
---|---|---|
安装 AWS SCT。 | 安装最新版本的 AWS SCT 应用程序。 | 常规 AWS |
使用 JDBC 驱动程序配置 AWS SCT。 | 下载适用于 Oracle(ojdbc8.jar 要在 AWS SCT 中配置驱动程序,请依次选择 设置、全局设置 和 驱动程序。 | 常规 AWS |
创建 AWS SCT 项目。 | 使用 Oracle 作为源数据库引擎,使用 Amazon RDS for PostgreSQL 作为目标数据库引擎,创建 AWS SCT 项目和报告:
| 常规 AWS |
验证数据库对象。 |
| 数据库管理员、常规 AWS |
任务 | 描述 | 所需技能 |
---|---|---|
创建复制实例。 |
| 常规 AWS |
导入证书。 |
| 常规 AWS |
创建源端点。 |
有关更多信息,请参阅使用 Oracle 数据库作为 AWS Database Migration Service 的源。 | 常规 AWS |
创建目标端点。 |
有关更多信息,请参阅使用 PostgreSQL 数据库作为 AWS Database Migration Service 的目标。 | 常规 AWS |
测试端点。 |
| 常规 AWS |
创建迁移任务。 | 要创建用于完全加载和更改数据捕获 (CDC) 或数据验证的迁移任务,请执行以下操作:
| 常规 AWS |
计划生产运行。 | 与应用程序所有者等利益相关者确认停机时间,以便在生产系统中运行 AWS DMS。 | 迁移主管 |
运行迁移任务。 |
| 常规 AWS |
验证数据。 | 查看源 Oracle 和目标 PostgreSQL 数据库中的迁移任务结果和数据:
| 数据库管理员 |
停止迁移任务。 | 成功完成数据验证后,停止迁移任务。 | 常规 AWS |
任务 | 描述 | 所需技能 |
---|---|---|
删除 AWS DMS 任务。 |
| 常规 AWS |
删除 AWS DMS 端点。 | 选择您创建的源端点和目标端点,选择操作,然后选择删除。 | 常规 AWS |
删除 AWS DMS 复制实例。 | 选择复制实例,选择操作,然后选择删除。 | 常规 AWS |
删除 PostgreSQL 数据库。 |
| 常规 AWS |
删除 Oracle 数据库。 | 在 Amazon RDS 控制台上,选择 Oracle 数据库实例,选择操作,然后选择删除。 | 常规 AWS |
排查问题
问题 | 解决方案 |
---|---|
AWS SCT 源和目标测试连接失败。 | 配置 JDBC 驱动程序版本和 VPC 安全组入站规则以接受传入流量。 |
Oracle 源端点测试运行失败。 | 检查端点设置以及复制实例是否可用。 |
AWS DMS 任务满载运行失败。 | 检查源数据库和目标数据库的数据类型和大小是否匹配。 |
AWS DMS 验证迁移任务返回错误。 |
|
相关资源
数据库
SSL DB 连接
AWS SCT
AWS DMS
附件
要访问与此文档相关联的其他内容,请解压以下文件:attachment.zip