使用 Oracle 数据泵将本地 Oracle 数据库迁移到亚马逊 EC2 - AWS Prescriptive Guidance

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

使用 Oracle 数据泵将本地 Oracle 数据库迁移到亚马逊 EC2

由 Navakanth Talluri 创作 () AWS

环境:PoC 或试点

来源:本地 Oracle 数据库

目标:亚马逊上的 Oracle 数据库 EC2

R 类型:更换主机

工作负载:Oracle

技术:迁移;数据库

AWS服务:亚马逊EC2;AWSDirect Connect

Summary

迁移数据库时,必须考虑源数据库和目标数据库引擎与版本、迁移工具和服务以及可接受的停机时间等因素。如果您要将本地 Oracle 数据库迁移到亚马逊弹性计算云 (AmazonEC2),则可以使用 Oracle 工具,例如 Oracle 数据泵和 Oracle Recovery Manager (RMAN)。有关策略的更多信息,请参阅将 Oracle 数据库迁移到AWS云端

Oracle Data Pump 可帮助您提取数据库的逻辑、一致性备份并将其恢复到目标EC2实例。此模式描述了如何使用 Oracle Data Pump 和NETWORK_LINK参数将本地 Oracle 数据库迁移到EC2实例,同时最大限度地减少停机时间。NETWORK_LINK 参数通过数据库链接开始导入。目标EC2实例上的 Oracle Data Pump Import (impdp) 客户端连接到源数据库,从中检索数据,然后将数据直接写入目标实例上的数据库。此解决方案中没有使用备份或转储文件。

先决条件和限制

先决条件

  • 一个活动的 AWS 账户。

  • 本地 Oracle 数据库可以:

    • 不是 Oracle 真实应用程序集群 (RAC) 数据库吗

    • 不是 Oracle 自动存储管理 (OracleASM) 数据库吗

    • 处于读写模式。

  • 您已在本地数据中心和之间创建了 Di AWS rect Connect 链接AWS。有关更多信息,请参阅创建连接(Direct Connect 文档)。

产品版本

  • Oracle Database 10g 版本 1 (10.1)和以上版本

架构

源技术堆栈

  • 本地数据中心中的独立(非RAC和非ASM)Oracle 数据库服务器

目标技术堆栈

  • 在亚马逊上运行的 Oracle 数据库 EC2

目标架构

Well-Architect AWS ed Framework 的可靠性支柱建议创建数据备份,以帮助提供高可用性和弹性。有关更多信息,请参阅《运行 Oracle 数据库的最佳实践》中的 “设计高可用性架构” AWS。这种模式使用 Oracle Active Data Guard 在EC2实例上设置主数据库和备用数据库。为了获得高可用性,EC2实例应位于不同的可用区。但是,可用区可以位于同一AWS区域,也可以位于不同的AWS区域。

Active Data Guard 提供对物理备用数据库的只读访问权限,并从主数据库持续应用重做更改。根据您的恢复点目标 (RPO) 和恢复时间目标 (RTO),您可以在同步和异步重做传输选项之间进行选择。

下图显示了主实例和备用EC2实例位于不同AWS区域时的目标架构。

应用程序连接到主EC2实例上的新数据库

数据迁移架构

设置完目标架构后,您可以使用 Oracle Data Pump 将本地数据和架构迁移到主EC2实例。在割接期间,应用程序无法访问本地数据库或目标数据库。您可以关闭这些应用程序,直到它们可以连接到主EC2实例上的新目标数据库。

下图展示了数据迁移过程中的架构。在此示例架构中,主实例和备用EC2实例位于不同的AWS区域。

源数据库连接至目标数据库。应用程序已与源和目标断开连接 DBs

工具

AWS服务

  • AWSDirect Connect 通过标准的以太网光纤电缆将您的内部网络连接到 Direct Connect 位置。通过此连接,您可以直接创建公共AWS服务的虚拟接口,同时绕过网络路径中的互联网服务提供商。

  • 亚马逊弹性计算云 (AmazonEC2) 在AWS云中提供可扩展的计算容量。您可以根据需要启动任意数量的虚拟服务器,并快速扩展或缩减它们。

其他工具和服务

最佳实践

操作说明

任务描述所需技能

确定本地主机的源硬件配置和内核参数。

验证本地配置,包括存储大小、每秒输入/输出操作数 (IOPS) 和。CPU这对于基于CPU内核的 Oracle 许可非常重要。

DBA, SysAdmin

在上创建基础架构AWS。

创建虚拟私有云 (VPCs)、私有子网、安全组、网络访问控制列表 (ACLs)、路由表和 Internet 网关。有关更多信息,请参阅下列内容:

DBA,AWS系统管理员

使用 Active Data Guard 设置EC2实例。

使用 Active Data Guard 配置配置配置AWSEC2实例,如 Well-Architected Fram AWSework 中所述。EC2实例上的 Oracle 数据库版本可能与本地版本不同,因为这种模式使用逻辑备份。请注意以下几点:

  • 将目标数据库置于读写模式。

  • 在目标数据库上,提供源数据库的透明网络底板 (TNS) 详细信息。

有关更多信息,请参阅:

DBA,AWS系统管理员
任务描述所需技能

从EC2实例创建指向本地数据库的 dblink。

在EC2实例上的 Oracle 数据库和本地 Oracle 数据库之间创建数据库链接 (dblink)。有关更多信息,请参阅使用网络链接导入移动数据(Oracle 文档)。

DBA

验证EC2实例与本地主机之间的连接。

使用 dblink 确认EC2实例和本地数据库之间的连接是否正常运行。有关说明,请参阅 CREATEDATABASELINK(Oracle 文档)。

DBA

停止连接到本地数据库的所有应用程序。

批准数据库停机时间后,关闭连接至本地数据库的所有应用程序和相关作业。您可直接从应用程序执行此操作,也可以使用 cron 从数据库执行此操作。有关更多信息,请参阅使用 Crontab 实用程序在 Oracle Linux 上计划任务

DBA,应用程序开发者

安排数据迁移任务。

在目标主机上,使用命令 impdb 安排 Data Pump 导入。这会将目标数据库连接至本地主机并开始数据迁移。有关更多信息,请参阅数据泵导入NETWORK_ LINK(Oracle 文档)。

DBA

验证数据迁移。

数据验证是关键步骤。对于数据验证,您可以使用自定义工具或 Oracle 工具,例如 dblink 和SQL查询的组合。

DBA
任务描述所需技能

将源数据库置于只读模式。

确认应用程序已关闭并且未对源数据库进行任何更改。以只读模式打开源数据库。这可帮助您避免任何未结事务。有关更多信息,请参阅SQL语句ALTER DATABASE中的(Oracle 文档)。

DBA、 DevOps 工程师、应用程序开发人员

验证对象数量与数据。

要验证数据和对象,请使用自定义工具或 Oracle 工具,例如 dblink 和SQL查询的组合。

DBA,应用程序开发者

将应用程序连接到主EC2实例上的数据库。

更改应用程序的连接属性,使其指向您在主EC2实例上创建的新数据库。

DBA,应用程序开发者

验证应用程序性能。

启动应用程序。使用自动工作负载存储库验证应用程序的功能和性能(Oracle 文档)。

应用程序开发人员、 DevOps 工程师、DBA

相关资源

AWS参考文献

Oracle 参考