本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Oracle 数据泵将本地 Oracle 数据库迁移到亚马逊 EC2
Navakanth Talluri,Amazon Web Services
Summary
迁移数据库时,必须考虑源数据库和目标数据库引擎与版本、迁移工具和服务以及可接受的停机时间等因素。如果您要将本地 Oracle 数据库迁移到亚马逊弹性计算云 (Amazon EC2),则可以使用 Oracle 工具,例如 Oracle 数据泵和 Oracle Recovery Manager (RMAN)。有关策略的更多信息,请参阅将 Oracle 数据库迁移至 AWS Cloud。
Oracle Data Pump 可帮助您提取数据库的逻辑、一致性备份并将其恢复到目标 EC2 实例。此模式描述了如何使用 Oracle Data Pump 和NETWORK_LINK参数将本地 Oracle 数据库迁移到 EC2 实例,同时最大限度地减少停机时间。NETWORK_LINK 参数通过数据库链接开始导入。目标 EC2 实例上的 Oracle Data Pump Import (impdp) 客户端连接到源数据库,从中检索数据,然后将数据直接写入目标实例上的数据库。此解决方案中没有使用备份或转储文件。
先决条件和限制
先决条件
一个有效的 Amazon Web Services account。
本地 Oracle 数据库可以:
不是 Oracle Real Application Clusters (RAC) 数据库
不是 Oracle Automatic Storage Management (Oracle ASM) 数据库
处于读写模式。
您已在本地数据中心和 AWS 间创建了 AWS Direct Connect 链接。有关更多信息,请参阅创建连接(Direct Connect 文档)。
产品版本
Oracle Database 10g 版本 1 (10.1)和以上版本
架构
源技术堆栈
本地数据中心中的独立(非 RAC 和非 ASM)Oracle 数据库服务器
目标技术堆栈
在亚马逊上运行的 Oracle 数据库 EC2
目标架构
AWS Well-Architected Framework 的可靠性支柱建议创建数据备份,以帮助提供高可用性和弹性。有关更多信息,请参阅 AWS 上运行 Oracle 数据库的最佳实践中的高可用性架构。这种模式使用 Oracle Active Data Guard 在 EC2 实例上设置主数据库和备用数据库。为了获得高可用性, EC2 实例应位于不同的可用区。但是,可用区可位于同一 AWS 区域或其他 AWS 区域。
Active Data Guard 提供对物理备用数据库的只读访问权限,并从主数据库持续应用重做更改。根据您的恢复点目标(RPO)和恢复时间目标(RTO),您可在同步重做传输选项和异步重做传输选项之间进行选择。
下图显示了主实例和备用 EC2 实例位于不同的 AWS 区域时的目标架构。

数据迁移架构
设置完目标架构后,您可以使用 Oracle Data Pump 将本地数据和架构迁移到主 EC2 实例。在割接期间,应用程序无法访问本地数据库或目标数据库。您可以关闭这些应用程序,直到它们可以连接到主 EC2 实例上的新目标数据库。
下图展示了数据迁移过程中的架构。在此示例架构中,主实例和备用 EC2 实例位于不同的 AWS 区域。

工具
Amazon Web Services
AWS Direct Connect
通过标准的以太网光纤电缆将内部网络链接到 Direct Connect 位置。通过此连接,您可以直接创建连接到公有 Amazon Web Services 的虚拟接口,同时绕过网络路径中的互联网服务提供商。 亚马逊弹性计算云 (Amazon EC2) 在 AWS 云中提供可扩展的计算容量。您可以根据需要启动任意数量的虚拟服务器,并快速纵向扩展或缩减这些服务器。
其他工具和服务
Oracle Active Data Guard
可帮助您创建、维护、管理和监控备用数据库。 Oracle 数据泵
可帮助您将数据和元数据从一个数据库高速移动至另一个数据库。
最佳实践
操作说明
| Task | 说明 | 所需技能 |
|---|---|---|
确定本地主机的源硬件配置和内核参数。 | 验证本地配置,包括存储大小、每秒 input/output 操作数 (IOPS) 和 CPU。这对基于 CPU 内核的 Oracle 许可非常重要。 | 数据库管理员, SysAdmin |
在 AWS 上创建基础设施。 | 创建虚拟私有云 (VPCs)、私有子网、安全组、网络访问控制列表 (ACLs)、路由表和 Internet 网关。有关更多信息,请参阅下列内容: | 数据库管理员、AWS 系统管理员 |
使用 Active Data Guard 设置 EC2 实例。 | 按照 AWS W EC2 ell-Ar chitected Framework 中所述,使用主动数据保护配置配置 AWS 实例。 EC2 实例上的 Oracle 数据库版本可能与本地版本不同,因为这种模式使用逻辑备份。注意以下几点:
有关更多信息,请参阅:
| 数据库管理员、AWS 系统管理员 |
| Task | 说明 | 所需技能 |
|---|---|---|
从 EC2 实例创建指向本地数据库的 dblink。 | 在 EC2 实例上的 Oracle 数据库和本地 Oracle 数据库之间创建数据库链接 (dblink)。有关更多信息,请参阅使用网络链接导入移动数据 | 数据库管理员 |
验证 EC2 实例与本地主机之间的连接。 | 使用 dblink 确认 EC2 实例和本地数据库之间的连接是否正常运行。有关说明,请参阅创建数据库链接 | 数据库管理员 |
停止连接到本地数据库的所有应用程序。 | 批准数据库停机时间后,关闭连接至本地数据库的所有应用程序和相关作业。您可直接从应用程序执行此操作,也可以使用 cron 从数据库执行此操作。有关更多信息,请参阅使用 Crontab 实用程序在 Oracle Linux 上计划任务 | 数据库管理员,应用程序开发人员 |
安排数据迁移任务。 | 在目标主机上,使用命令 | 数据库管理员 |
验证数据迁移。 | 数据验证是关键步骤。对于数据验证,您可使用自定义工具或 Oracle 工具,例如 dblink 和 SQL 查询的组合。 | 数据库管理员 |
| Task | 说明 | 所需技能 |
|---|---|---|
将源数据库置于只读模式。 | 确认应用程序已关闭并且未对源数据库进行任何更改。以只读模式打开源数据库。这可帮助您避免任何未结事务。有关更多信息,请参阅 SQL 语句 | DBA、 DevOps 工程师、应用程序开发人员 |
验证对象数量与数据。 | 若要验证数据和对象,请使用自定义工具或 Oracle 工具,例如 dblink 和 SQL 查询的组合。 | 数据库管理员,应用程序开发人员 |
将应用程序连接到主 EC2 实例上的数据库。 | 更改应用程序的连接属性,使其指向您在主 EC2 实例上创建的新数据库。 | 数据库管理员,应用程序开发人员 |
验证应用程序性能。 | 启动应用程序。使用自动工作负载存储库 | 应用程序开发人员、 DevOps 工程师、数据库管理员 |
相关资源
AWS 参考
Oracle 参考