本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 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区域时的目标架构。
数据迁移架构
设置完目标架构后,您可以使用 Oracle Data Pump 将本地数据和架构迁移到主EC2实例。在割接期间,应用程序无法访问本地数据库或目标数据库。您可以关闭这些应用程序,直到它们可以连接到主EC2实例上的新目标数据库。
下图展示了数据迁移过程中的架构。在此示例架构中,主实例和备用EC2实例位于不同的AWS区域。
工具
AWS服务
AWSDirect Connect 通过
标准的以太网光纤电缆将您的内部网络连接到 Direct Connect 位置。通过此连接,您可以直接创建公共AWS服务的虚拟接口,同时绕过网络路径中的互联网服务提供商。 亚马逊弹性计算云 (AmazonEC2) 在AWS云中提供可扩展的计算容量。您可以根据需要启动任意数量的虚拟服务器,并快速扩展或缩减它们。
其他工具和服务
Oracle Active Data Guard
可帮助您创建、维护、管理和监控备用数据库。 Oracle 数据泵
可帮助您将数据和元数据从一个数据库高速移动至另一个数据库。
最佳实践
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
确定本地主机的源硬件配置和内核参数。 | 验证本地配置,包括存储大小、每秒输入/输出操作数 (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 数据库版本可能与本地版本不同,因为这种模式使用逻辑备份。请注意以下几点:
有关更多信息,请参阅:
| DBA,AWS系统管理员 |
任务 | 描述 | 所需技能 |
---|---|---|
从EC2实例创建指向本地数据库的 dblink。 | 在EC2实例上的 Oracle 数据库和本地 Oracle 数据库之间创建数据库链接 (dblink)。有关更多信息,请参阅使用网络链接导入移动数据 | DBA |
验证EC2实例与本地主机之间的连接。 | 使用 dblink 确认EC2实例和本地数据库之间的连接是否正常运行。有关说明,请参阅 CREATEDATABASELINK | DBA |
停止连接到本地数据库的所有应用程序。 | 批准数据库停机时间后,关闭连接至本地数据库的所有应用程序和相关作业。您可直接从应用程序执行此操作,也可以使用 cron 从数据库执行此操作。有关更多信息,请参阅使用 Crontab 实用程序在 Oracle Linux 上计划任务 | DBA,应用程序开发者 |
安排数据迁移任务。 | 在目标主机上,使用命令 | DBA |
验证数据迁移。 | 数据验证是关键步骤。对于数据验证,您可以使用自定义工具或 Oracle 工具,例如 dblink 和SQL查询的组合。 | DBA |
任务 | 描述 | 所需技能 |
---|---|---|
将源数据库置于只读模式。 | 确认应用程序已关闭并且未对源数据库进行任何更改。以只读模式打开源数据库。这可帮助您避免任何未结事务。有关更多信息,请参阅SQL语句 | DBA、 DevOps 工程师、应用程序开发人员 |
验证对象数量与数据。 | 要验证数据和对象,请使用自定义工具或 Oracle 工具,例如 dblink 和SQL查询的组合。 | DBA,应用程序开发者 |
将应用程序连接到主EC2实例上的数据库。 | 更改应用程序的连接属性,使其指向您在主EC2实例上创建的新数据库。 | DBA,应用程序开发者 |
验证应用程序性能。 | 启动应用程序。使用自动工作负载存储库 | 应用程序开发人员、 DevOps 工程师、DBA |
相关资源
AWS参考文献
Oracle 参考