你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Oracle 数据库迁移到 Azure

Azure 负载均衡器
Azure ExpressRoute
Azure VPN 网关

此解决方案将 Oracle 数据库及其应用程序迁移到 Azure。 我们将 Oracle Active Data Guard 用于数据库,并将 Azure 负载均衡器用于应用层。

体系结构

显示完成从 Oracle 到 Azure 的数据库迁移的体系结构图。

下载此体系结构的 Visio 文件

数据流

  1. 通过站点到站点 VPN 或 ExpressRoute 将 Azure 环境连接到本地网络。
  2. 使用 DataGuard 将 Azure 中的 OracleDB1 标记为活动备用。
  3. 将 Azure 中的 OracleDB1 切换为主数据库,并将 Azure 中的 OracleDB2 设置为备用数据库以完成迁移。

注意

  • 该方法仅适用于在相同的 OS 版本和数据库版本之间进行迁移。
  • 假设:在本地使用 DataGuard。

组件

备选方法

如果数据库超过 2 TB,可以将 Oracle Data Guard 与 Oracle 恢复管理器 (RMAN) 结合使用,或者在初始批量数据传输后使用 Data Pump 复制更改,从而最大限度地减少迁移停机时间。

SQL Server Migration Assistant for Oracle

适用于 Oracle 的 Microsoft SQL Server 迁移助手 (SSMA) 是一种将 Oracle 数据库迁移到 Microsoft SQL Server 和 Azure SQL 数据库的工具。 SSMA for Oracle 会将 Oracle 数据库对象转换为 SQL Server 数据库对象,在 SQL Server 中创建这些对象,然后将数据从 Oracle 迁移到 SQL Server 或 Azure SQL 数据库。

方案详细信息

Oracle DB 迁移可以通过多种方式完成。 此解决方案涵盖了使用 Oracle Active Data Guard 来迁移数据库的这些选项中的一个。 假设 Oracle Data Guard(或 Active Data Guard)用于 HA/DR 目的。 根据应用程序,可以先迁移应用程序,也可以迁移数据库。 在本例中,使用 Azure 负载均衡器将应用程序迁移到 Azure。 这样,便可以在本地和 Azure 之间拆分流量,从而逐步迁移应用层。 数据库迁移分多个步骤执行。 第一步是使用 Oracle Data Guard 在 Azure 中设置一个辅助/备用数据库。 这样,便可以将数据迁移到 Azure。 Azure 中的辅助数据库与主数据库同步后,可将 Azure 中的数据库翻转为主数据库,同时在本地维护辅助数据库。 下一步,可以在不同的可用性区域(或区域)中设置辅助数据库以实现 HA/DR 目的。 此时,可以解除本地环境的授权。 本地和 Azure 之间的所有数据流量都通过 Azure ExpressRoute 或站点到站点 VPN 连接流动。

可能的用例

此解决方案适用于将 Oracle DB 迁移到 Azure。

注意事项

这些注意事项实施 Azure 架构良好的框架的支柱原则,即一套可用于改善工作负载质量的指导原则。 有关详细信息,请参阅 Microsoft Azure 架构良好的框架

迁移

通过使用 Oracle 恢复管理器 (RMAN) 和 Oracle Data Guard,可以在最短的停机时间内将整个 Oracle 数据库从本地迁移到 Azure VM。 使用 RMAN 将数据库还原到目标备用 Azure VM(使用备份/还原或复制数据库方法)。 然后,可以使用 Oracle Data Guard 将目标数据库配置为物理备用数据库,从而允许从主本地数据库到备用数据库的所有事务/重做数据更改。 当主本地 Oracle 数据库与 Azure VM 实例上的目标备用数据库同步时,你可以切换到目标数据库,这会将其转换为读写数据库。 然后,可以将应用程序连接指向新的主数据库。 此选项在将数据库迁移到 Azure 时提供最短的停机时间。

Oracle Data Pump 实用工具用于从/向 Oracle 数据库导出/导入数据和元数据。 可以在整个数据库、选择性架构、表空间或数据库对象上运行 Data Pump 导出/导入。 Data Pump 是将数据迁移到 Azure 的推荐工具,适用于 10 GB 到 20 TB 大小的大型数据库。 它允许高度并行、灵活的数据提取选项和可缩放的操作,从而能够将数据和元数据从源数据库高速移动到目标数据库。 在将数据导出到数据转储文件时,Oracle Data Pump 还支持加密和压缩。 可以将 Oracle Data Pump 与 Oracle Data Guard 或 Golden Gate 配合使用来处理大型数据库的初始数据传输。 请注意,Data Pump 仅在 Oracle Database 10g 版本 1 (10.1) 及更高版本上可用。

设计注意事项

VM 大小调整

请考虑对 Oracle Database VM 使用超线程内存优化虚拟机(具有受约束的核心 vCPU),以节省许可成本并最大限度地提高性能。 Oracle 确保了从本地到 Azure 的许可移动性。 请参阅 Oracle-Azure 常见问题解答。

存储

使用多个高级或超级磁盘(托管磁盘)来实现 Oracle 数据库的性能和可用性。 使用托管磁盘时,磁盘/设备名可能会在重启时更改。 建议使用设备 UUID(而不是名称)来确保重启后可保留你的装载内容。 请考虑使用 Oracle Automatic Storage Management (ASM) 来简化数据库的存储管理。

测试和优化

建议进行以下测试,以针对新的 Oracle 数据库验证应用程序:

  • 运行性能测试,确保它们符合业务预期。
  • 测试数据库故障转移、恢复和还原,以确保满足 RPO 和 RTO 要求。
  • 列出所有关键作业和报表,并在新的 Oracle 实例上运行它们,以根据服务级别协议 (SLA) 评估它们的性能。
  • 最后,在为云迁移或创建应用程序时,请务必调整应用程序代码以添加云原生模式,如重试模式和断路器模式。 云设计模式指南中定义的其他模式可帮助应用程序更具复原能力。

Oracle 许可

如果在 Azure VM 中使用启用了超线程的技术,则两个 vCPU 视为等效于一个 Oracle 处理器许可证进行计数。 有关详细信息,请参阅在云计算环境中授权 Oracle 软件。

备份策略

一种备份策略是使用 Oracle 恢复管理器 (RMAN) 和 Azure 备份进行应用程序一致备份。 也可使用 Azure 备份方法。

(可选)使用 Azure Blob Fuse 装载高度冗余的 Azure Blob 存储帐户,并将 RMAN 备份写入其中以提高复原能力。

安全性

Azure DDoS 防护与应用程序设计最佳做法相结合,提供增强的 DDoS 缓解功能来更全面地防御 DDoS 攻击。 应在任何外围虚拟网络上启用 Azure DDOS 防护

业务连续性和灾难恢复

对于业务连续性和灾难恢复,请考虑部署以下软件:

  • Oracle Data Guard 快速启动故障转移 (FSFO),用于确保数据库可用性
  • Oracle Data Guard Far Sync,用于提供零数据丢失保护。
  • 用于在 Azure 可用性集或可用性区域上实现“多主”或“主动-主动”模式的 Oracle GoldenGate 取决于 SLA 要求。

使用可用性区域实现区域内的高可用性。 有关详细信息,请参阅适用于 Azure 上的 Oracle 数据库的参考体系结构

通过将 Azure 可用性区域和 Oracle Active DataGuard 与 FSFO 结合使用,数据库层的运行时间可用性可达 99.99%。

请考虑使用邻近的放置组来降低应用层和数据库层之间的延迟。

监视

设置 Oracle Enterprise Manage 以进行管理、监视和日志记录。

后续步骤

有关支持信息,请参阅以下文章:

详细了解各种体系结构组件: