本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用并AWSDMS使用AWSCLI和,将RDS适用于 Oracle RDS 的亚马逊迁移到适用于 Postgre SQL AWS SCT 的亚马逊 AWS CloudFormation
由 Pinesh Singal 创作 () AWS
环境:PoC 或试点 | 来源:Amazon f RDS or Oracle | 目标:亚马逊 f or P RDS ostgre SQL |
R 类型:重构 | 工作负载:Oracle;开源 | 技术:迁移;数据库 |
AWS服务:AWSDMS; AmazonRDS; AWS SCT |
Summary
此模式显示如何使用AWS命令行界面 () 将适用于 Oracle 的多 TB 的亚马逊关系数据库服务 (AmazonRDS) 数据库实例迁移到 Amazon RDS for Postgre SQL 数据库实例。AWS CLI该方法可最大限度地减少停机时间,并且不需要登录AWS管理控制台。
这种模式有助于通过使用 AWS Schema Conversion Tool (AWSSCT) 和 Dat AWS abase Migration Service (AWSDMS) 控制台来避免手动配置和单独迁移。该解决方案为多个数据库设置一次性配置,并使用AWSSCT和AWSDMS执行迁移。AWS CLI
该模式RDS用于AWSSCT将数据库架构对象从 Amazon for Oracle 转换为 Amazon RDS for Postgre,SQL然后使用它AWSDMS来迁移数据。使用中的 Python 脚本 AWSCLI,您可以使用AWS CloudFormation 模板创建AWSSCT对象和AWSDMS任务。
先决条件和限制
先决条件
一个活动的 AWS 账户。
现有的 Amazon f RDS or Oracle 数据库实例。
现有的 Amazon f RDS or Postgre SQL 数据库实例。
装有 Windows 或 Linux 操作系统的亚马逊EC2实例或本地计算机,用于运行脚本。
了解以下AWSDMS迁移任务类型:
full-load
、cdc
、full-load-and-cdc
。 有关更多信息,请参阅AWSDMS文档中的创建任务。AWSSCT,安装并配置了适用于 Oracle 和 Postgre 数据库引擎的 Java SQL 数据库连接 (JDBC) 驱动程序。有关更多信息,请参阅AWSSCT文档中的安装AWSSCT和安装所需的数据库驱动程序。
已安装AWSSCT文件夹中的
AWSSchemaConversionToolBatch.jar
文件已复制到您的工作目录。
cli-sct-dms-cft.zip
文件(附后),已下载并解压缩到您的工作目录中。
最新的AWSDMS复制实例引擎版本。有关更多信息,请参阅 Su AWS pport 文档中的如何创建AWSDMS复制实例
和文档中的 AWSDMS3.4.4 发行说明。AWS DMS AWSCLI版本 2,安装并配置了您的访问密钥 ID、私有访问密钥,以及运行脚本的亚马逊弹性计算云 (AmazonEC2) 实例或操作系统 (OS) 的默认AWS区域名称。有关更多信息,请参阅AWSCLI文档AWSCLI中的安装、更新和卸载AWSCLI版本 2 和配置。
熟悉AWS CloudFormation 模板。有关更多信息,请参阅AWS CloudFormation 文档中的AWS CloudFormation 概念。
Python 版本 3,在运行脚本的 Amazon EC2 实例或操作系统上安装和配置。有关更多信息,请参阅 Python 文档
。
限制
您的源 Amazon RDS for Oracle 数据库实例的最低要求是:
适用于企业版、标准版、标准一版和标准二版的 Oracle 版本 12c (v12.1.0.2、v12.2.0.1)、18c (v18.0.0.0)和 19c (v19.0.0.0)。
尽管亚马逊RDS支持 Oracle 18c (v18.0.0.0),但此版本已处于弃用状态,因为在该日期之后,甲骨文不再提供 18c 的补丁。 end-of-support有关更多信息,请参阅亚马逊RDS文档RDS中的 Oracle on Amazon。
不再支持RDS适用于 Oracle 的 Amazon 11g。
您的目标 Amazon RDS for Postgre SQL 数据库实例的最低要求是:
Postgre SQL 版本 9(版本 9.5 和 9.6)、10.x、11.x、12.x 和 13.x
产品版本
RDS适用于 Oracle 数据库实例的 Amazon 版本 12.1.0.2 及更高版本
RDS适用于 Postgre SQL 数据库实例版本 11.5 及更高版本的亚马逊
AWSCLI第 2 版
最新版本的 AWS SCT
Python 3 的最新版本。
架构
源技术堆栈
RDS适用于甲骨文的亚马逊
目标技术堆栈
适用于 Post RDS gre 的亚马逊 SQL
源架构和目标架构
下图显示了使用AWSDMS和 Python 脚本将 Amazon RDS for Oracle 数据库实例迁移到 Amazon RDS for Postgre SQL 数据库实例的情况。
图表显示了以下迁移工作流:
Python 脚本AWSSCT用于连接源数据库实例和目标数据库实例。
用户从 Python 脚本AWSSCT开始,将 Oracle 代码转换为 Postgre SQL 代码,然后在目标数据库实例上运行该代码。
Python 脚本为源数据库实例和目标数据库实例创建AWSDMS复制任务。
用户部署 Python 脚本来启动AWSDMS任务,然后在数据迁移完成后停止任务。
自动化和扩缩
您可以通过在 Python 脚本中为单个程序的多个功能添加其他参数,和与安全相关的更改,来自动执行此迁移。
工具
AWSCommand Line Interface (AWSCLI) 是一个开源工具,可帮助您通过命令行外壳中的命令与AWS服务进行交互。
AWS CloudFormation帮助您设置AWS资源,快速一致地配置资源,并在各个AWS账户和地区的整个生命周期中对其进行管理。此模式使用 Python 脚本将 .csv 输入文件转换为 .json 输入文件。.json 文件用于AWSCLI命令创建AWS CloudFormation 堆栈,该堆栈使用 Amazon 资源名称 (ARNs)、迁移类型、任务设置和表映射创建多个AWSDMS复制任务。
AWSDat@@ abase Migration Service (AWSDMS) 可帮助您将数据存储迁移到AWS云端,或者在云端和本地设置的组合之间迁移。此模式使用AWSDMS在命令行上运行的 Python 脚本创建、启动和停止任务并创建模板。AWS CloudFormation
AWSSchema Conversion Tool (AWSSCT) 通过自动将源数据库架构和大部分自定义代码转换为与目标数据库兼容的格式来支持异构数据库迁移。此模式需要已安装AWSSCT目录中的
AWSSchemaConversionToolBatch.jar
文件。
代码
该 cli-sct-dms-cft.zip
文件(附后)包含此模式的完整源代码。
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
配置AWSSCT为从中运行AWSCLI。 | 1. 使用以下格式在
2. 根据您的要求在以下文件中修改AWSSCT配置参数: | DBA |
运行 run_aws_sct.py Python 脚本。 | 使用以下命令运行
Python 脚本将数据库对象从 Oracle 转换为 Postgre SQL 并创建 Postg SQL re SQL 格式的文件。该脚本还会创建 | DBA |
在亚马逊中RDS为 Postgre SQL 创建对象。 |
| DBA |
任务 | 描述 | 所需技能 |
---|---|---|
创建AWSDMS复制实例。 | 登录AWS管理控制台,打开AWSDMS控制台,然后创建根据您的要求配置的复制实例。 有关更多信息,请参阅文档中的创建复制实例和 Su AWS pport AWS DMS 文档中的如何创建AWSDMS复制实例 | DBA |
创建源端点。 | 在AWSDMS控制台上,选择终端节点,然后根据需要为 Oracle 数据库创建源端点。 注意:额外的连接属性必须为带有 有关更多信息,请参阅AWSDMS文档中的创建源端点和目标端点。
| DBA |
创建目标端点。 | 在AWSDMS控制台上,选择终端节点,然后根据需要为 Postgre SQL 数据库创建目标端点。 有关更多信息,请参阅AWSDMS文档中的创建源端点和目标端点。 | DevOps 工程师 |
将AWSDMS复制详细信息配置为从中运行AWSCLI。 | 使用以下格式使用AWSDMS源终端节点ARN、目标终端节点和复制实例ARN在
| DBA |
运行 dms-create-task .py Python 脚本来创建AWSDMS任务。 | 1. 使用以下命令运行
2. 根据您的迁移类型,您可以使用以下命令创建三种类型的AWSDMS任务:
3. AWS CloudFormation 堆栈和AWSDMS任务已创建
| DBA |
检查AWSDMS任务是否准备就绪。 | 在AWS控制台的 “ | DBA |
任务 | 描述 | 所需技能 |
---|---|---|
开始AWSDMS任务。 | 使用以下命令运行
注意:开始日期和时间必须采用 您可以在AWSDMS控制台AWSDMS任务页面的迁移任务的 “表统计” 选项卡中查看任务状态。 | DBA |
验证数据。 |
有关更多信息,请参阅AWSDMS文档中的AWSDMS数据验证。 | DBA |
停止AWSDMS任务。 | 使用以下命令运行 Python 脚本:
注意:AWSDMS任务可能会以 | DBA |
故障排除
问题 | 解决方案 |
---|---|
AWSSCT源测试和目标测试连接失败 | 配置JDBC驱动程序版本和VPC安全组入站规则以接受传入流量。 |
源端点或者目标端点测试运行失败 | 检查端点设置和复制实例是否处于 有关更多信息,请参阅 Support 文档中的如何解决AWSDMS端点连接故障 |
满载运行失败 | 检查源数据库和目标数据库是否具有匹配的数据类型与大小。 有关更多信息,请参阅AWSDMS文档AWSDMS中的迁移任务疑难解答。 |
验证运行错误 | 检查该表是否有主键,因为非主键表未经验证。 如果表有主键和错误,请检查源端点中的额外连接属性是否有 有关更多信息,请参阅AWSDMS文档中的 “使用 Oracle 作为来源时的额外连接属性” 和 “疑难解答”。AWS DMS OracleSettings |
相关资源
附件
要访问与此文档相关联的其他内容,请解压以下文件:attachment.zip