Oracle Autonomous Database 上对 MySQL 和 MongoDB Atlas 的 AWS RDS 进行现代化改造和整合

了解一家客户如何用单个融合的 Autonomous Database 取代 Amazon Web Service (AWS) 上的复杂多数据库架构,该服务使用 MySQL 和 MongoDB Atlas。

数据库迁移是使用 Oracle Cloud Infrastructure GoldenGate 完成的。Oracle Cloud Infrastructure GoldenGate 是完全托管的原生云服务,可实时、大规模地移动数据。迁移还使用适用于 MongoDB 的 Oracle Database API 保留了大量应用程序代码。

在 AWS 上部署的传统架构是一个复杂的数据处理工作流,由托管的 AWS RDS MySQL Database 和 MongoDB Atlas 组成,可确保数据一致性和准确性,同时为客户提供灵活的 JSON 格式的信息。

下图显示了旧数据流:



aws-rds-oci-adw-flow1-oracle.zip

将多个分散的系统结合在一起,增加了数据加载、转换和同步的复杂性。传统架构不仅复杂,而且浪费了资源,而且容易出错。系统的复杂性:

  • 增加数据处理错误的几率,从而降低数据质量,准确性不到 100%
  • 增加处理时间,从而缩短生产时间
  • 增加运营开销,浪费时间和资源解决问题和调试

体系结构

生产数据库从适用于 AWS 的 MySQL 和 MongoDB Atlas 的 Amazon RDS 迁移到部署在 Oracle Cloud Infrastructure (OCI) US-East (Ashburn) 区域中的 Oracle Autonomous Database ,方法是在同一区域和虚拟云网络 (VCN) 中预配的 OCI GoldenGate。

两个云之间的单向复制仅用于迁移。

应用程序部署在 AWS US-East(阿什本)中。迁移后,应用层也会迁移到 OCI 计算实例。Oracle Cloud Infrastructure FastConnect 和 OCI FastConnect 合作伙伴提供了专用连接,用于将 AWS 中运行的数据库连接到 OCI GoldenGate。有关按区域列出的 OCI FastConnect 合作伙伴列表的链接,请参阅“浏览更多”部分。

高级别迁移和合并步骤如下所示:

  1. 准备使用 OCI GoldenGate 进行复制的 MySQL 和 MongoDB 数据库。
  2. 为运行提取预配两个 OCI GoldenGate 部署:为 MySQL 数据库部署 MySQL,为 MongoDB 部署大数据。
  3. 创建从 OCI GoldenGate 到 MySQL 和 MongoDB 的连接。
  4. 在目标 Oracle 部署中,创建 OCI GoldenGate 部署以将数据复制到 Oracle Autonomous Database
  5. 创建从 OCI GoldenGate 到 Oracle Autonomous Database 的连接。
  6. 为各自的部署分配连接。
  7. 为 MySQL 和 MongoDB 部署创建初始加载提取。
  8. 创建分发服务进程以将数据从源 MySQL 和 MongoDB 部署发送到目标 Oracle 部署。
  9. 在目标 Oracle 部署上创建复制流程以复制初始加载数据。
  10. 为 MySQL 和 MongoDB 部署创建更改数据捕获提取。
  11. 在目标 Oracle 部署上创建更改数据捕获复制流程以复制数据。
  12. 将应用程序从 AWS EC2 复制到 OCI VM。
  13. 将 OCI 中的应用连接到 Oracle Autonomous Database
  14. 断开和停用 AWS 上的应用和数据库。

借助在单个数据库中支持关系和文档存储要求的融合数据库功能,在 OCI 上运行的 Oracle Autonomous Database 可提供核心平台来实现客户的目标。通过 Oracle Autonomous Database ,他们可以将原始数据按原样存储在其关系格式中,并保证数据完整性。最终用户应用程序的数据以所需的 JSON 格式返回(以毫秒为单位)。这些数据可通过 SQL 和 JSON 以及 Oracle Database API for MongoDB 轻松获得,无需进一步处理。

下表说明体系结构:



aws-rds-oci-adw-arch-oracle.zip

在此体系结构中,OCI GoldenGate 和 Oracle Autonomous Database 预配在 OCI 中,并简化从 AWS RDS 对 MySQL 的单向复制。

通过使用 OCI GoldenGate,您还可以设计、运行、编排和监视数据复制和流式分析任务,而无需分配或管理任何计算环境。在迁移完成后,不需要 OCI GoldenGate 来运行应用程序和数据库,并且可以将其删除。

将以前的数据库架构整合到在 OCI 上运行的单个 Oracle Autonomous Database 中,因此无需在两个数据库之间运行包含多个单一用途数据库和复杂、同步提取、转换和加载 (ETL) 进程的复杂架构,同时缩短处理时间,同时提高数据质量和准确性。

下图说明了当前数据流:



aws-rds-oci-adw-flow2-oracle.zip

客户可立即获得以下业务优势:

  • 加快项目生产时间和质量的 15%,从而提高客户满意度
  • 通过简化架构和 Oracle Autonomous Database 功能提高应用性能
  • 通过减少基础设施并减少应用和数据库管理,节省 10% 的运营成本
  • 提高开发人员工作效率,专注于创新而不是解决问题

该体系结构具有以下组成部分:

  • 租户

    租户是 Oracle 在您注册 Oracle Cloud Infrastructure 时在 Oracle Cloud 中设置的安全隔离分区。您可以在租户中的 Oracle Cloud 中创建、组织和管理资源。租户与公司或组织同义。通常,公司只有一个租户并反映在该租户中的组织结构。单个租户通常与单个订阅关联,单个订阅通常只有一个租户。

  • 区域

    Oracle Cloud Infrastructure 区域是一个局部地理区域,包含一个或多个称为可用性域的数据中心。区域独立于其他区域,广阔的距离可以将其分开(跨国家甚至大陆)。

  • 可用性域

    可用性域是区域中的独立独立数据中心。每个可用性域中的物理资源与提供容错能力的其他可用性域中的资源隔离。可用性域不共享基础设施(例如电源或冷却设备)或内部可用性域网络。因此,一个可用性域出现故障不会影响区域中的其他可用性域。

  • 虚拟云网络 (VCN) 和子网

    VCN 是您在 Oracle Cloud Infrastructure 区域中设置的可定制软件定义网络。与传统数据中心网络一样,VCN 允许您完全控制您的网络环境。一个 VCN 可以具有多个不重叠的 CIDR 块,您可以在创建 VCN 后对其进行更改。您可以将 VCN 细分为多个子网,这些子网可以限定到区域或可用性域。每个子网包含一系列不与 VCN 中的其他子网重叠的连续地址。创建后可以更改子网的大小。子网可以是公共子网,也可以是专用子网。

  • 路由表

    虚拟路由表包含将流量从子网路由到 VCN 外部的目标(通常通过网关)的规则。

  • 安全列表

    对于每个子网,您可以创建安全规则来指定必须允许进出子网的流量源、目标和类型。

  • FastConnect

    Oracle Cloud Infrastructure FastConnect 提供了在您的数据中心与 Oracle Cloud Infrastructure 之间创建专用私有连接的简便方式。FastConnect 与基于 Internet 的连接相比,可提供更高的带宽选项和更可靠的网络体验。

  • 动态路由网关 (DRG)

    DRG 是虚拟路由器,用于为同一区域中的 VCN 之间、VCN 与区域外的网络(例如另一个 Oracle Cloud Infrastructure 区域中的 VCN、内部部署网络或其他云提供商中的网络)的专用网络流量提供路径。

  • 服务网关

    通过服务网关,可以从 VCN 访问其他服务,例如 Oracle Cloud Infrastructure Object Storage 。从 VCN 到 Oracle 服务的流量会通过 Oracle 网络网状结构网络传输,并且从不通过互联网传输。

  • 堡垒服务

    Oracle Cloud Infrastructure 堡垒提供对没有公共端点且需要严格资源访问控制(例如裸金属和虚拟机、Oracle MySQL Database Service自治事务处理 (Autonomous Transaction Processing,ATP)、Oracle Container Engine for Kubernetes (OKE) 以及允许安全 Shell 协议 (Secure Shell Protocol,SSH) 访问的任何其他资源的受限且有时限的安全访问。通过 Oracle Cloud Infrastructure 堡垒服务,您可以启用对专用主机的访问,而无需部署和维护跳转主机。此外,您还可以使用基于身份的权限和集中、审计和有时限的 SSH 会话来提高安全状况。Oracle Cloud Infrastructure 堡垒消除了对堡垒访问的公共 IP 的需求,在提供远程访问时消除了散列表和潜在攻击面。

  • 计算

    Oracle Cloud Infrastructure Compute 服务可用于在云中预配和管理计算主机。您可以使用配置启动计算实例,以满足您对 CPU、内存、网络带宽和存储的资源需求。创建计算实例后,可以安全地访问它,重新启动它,附加和分离卷,然后在不再需要时终止它。

  • 对象存储

    通过对象存储,可以快速访问任意内容类型的大量结构化和非结构化数据,包括数据库备份、分析数据以及丰富的内容(例如图像和视频)。您可以安全可靠地存储数据,然后直接从互联网或云平台检索数据。您可以无缝扩展存储,而不会降低性能或服务可靠性。将标准存储用于“热”存储,您需要快速、立即和频繁地访问这些存储。将归档存储用于保留很长时间、很少或很少访问的“冷”存储。

  • 身份和访问管理 (IAM)

    Oracle Cloud Infrastructure Identity and Access Management (IAM) 是 Oracle Cloud Infrastructure (OCI) 和 Oracle Cloud Applications 的访问控制层。通过 IAM API 和用户界面,您可以管理身份域和身份域中的资源。每个 OCI IAM 身份域代表一个独立的身份和访问管理解决方案或不同的用户群体。

  • 日志记录
    日志记录是一项高度可扩展且完全托管的服务,通过它可以从云中的资源访问以下类型的日志:
    • 审计日志:与审计服务发出的事件相关的日志。
    • 服务日志:单个服务(如 API 网关、事件、函数、负载平衡、对象存储和 VCN 流日志)发出的日志。
    • 定制日志:包含来自定制应用、其他云提供商或内部部署环境的诊断信息的日志。
  • 监视

    Oracle Cloud Infrastructure Monitoring 服务使用度量监视资源和预警,并在这些度量满足预警指定的触发器时通知您。

  • Cloud Guard

    您可以使用 Oracle Cloud Guard 监视和维护 Oracle Cloud Infrastructure 中资源的安全性。Cloud Guard 使用您可以定义的部门配方来检查资源是否存在安全漏洞,以及监视操作员和用户是否有风险的活动。检测到任何配置错误或不安全活动时,Cloud Guard 会根据您可以定义的对应方配方建议更正操作并帮助执行这些操作。

  • 数据集成

    Oracle Cloud Infrastructure GoldenGate 是一项完全托管的服务,它允许从驻留在内部部署或任何云中的源提取数据,利用 GoldenGate CDC 技术实时和大规模地捕获数据并交付给 Oracle Autonomous Data Warehouse ,从而使相关信息尽快提供给使用者。

  • 适用于 MySQL 的 AWS RDS

    适用于 MySQL 的关系数据库服务 (Relational Database Service,RDS) 是来自 Amazon Web Services (AWS) 的完全托管的 MySQL 产品。

  • 自治事务处理

    Oracle Autonomous Transaction Processing 是一种自我驱动、自我保护和自我修复的数据库服务,针对事务处理负载进行了优化。您不需要配置或管理任何硬件,或安装任何软件。Oracle Cloud Infrastructure 可处理数据库创建以及备份、打补丁、升级和调优数据库。

推荐

使用以下建议作为起点。您的要求可能不同于此处所述的体系结构。

  • 选择互连位置

    此体系结构需要其组件的一个或多个地理位置:OCI 区域和关联的 OCI FastConnect 边缘节点,以及 AWS 区域和关联的 AWS 直接连接边缘节点。为了实现最佳的端到端延迟,我们建议您选择一个位置,其中每个体系结构元素都位于接近位置。

  • 预配

    对于专用端点中的 Oracle Database ,请将 VCN 配置为仅允许来自指定 VCN 的流量。这将阻止从所有公共 IP 或 VCN 访问数据库。选择与您打算设置专用连接的任何其他网络(在 Oracle Cloud Infrastructure 、您的内部部署数据中心或其他云提供商中)不重叠的 CIDR 块。

  • 应用设计

    使用主动 - 主动复制时,两个数据库系统上的时区必须相同,以便基于时间戳的冲突解决和检测可以有效地运行。

  • 数据唯一性

    使用主动 - 主动复制时,在序列中设置唯一范围以方便识别,以防止冲突。必须在主动 - 主动配置中的所有系统上实施冲突解决过程。应立即识别冲突并尽可能自动化处理冲突。

注意事项

实施拆分堆栈部署时,请考虑这些选项。

  • 网络

    通过多云解决方案,网络是整体系统性能的关键决定因素。客户负责确保云到云网络(带宽和延迟)经过全面测试,以确保应用性能满足定义的业务需求。

  • 成本

    通过自动扩展 Oracle CPU,数据库可以根据负载需求自动调整计算资源(CPU 和内存)。在高峰负载期间,Oracle Autonomous Transaction Processing (ATP) 可以分配更多资源来确保最佳性能,在需求较低的时段内,可以向下扩展以节省成本。这种弹性对于高效、经济地处理波动的负载特别有用。

  • 冲突解决方案战略

    在应用程序中定义明确的冲突解决策略。检测到冲突的更改时,应编写代码,使您的应用程序基于预定义的规则处理它们。这些规则可以优先考虑从一个源到另一个源的更改,也可以根据特定标准合并冲突的更改。

确认

  • Authors: Vivek Verma
  • Contributors: Wei Han, Robert Lies