欢迎访问深圳敏捷云计算科技有限公司!

在甲骨文云 OCI 基础设施上部署线性可扩展、容错、分片的甲骨文数据库:云端数据库创新之道

2024-04-09 原创文章

当您需要一个支持极端扩展和为企业级OLTP应用程序提供完全数据隔离的数据库时,可以在甲骨文云基础设施上部署分片的甲骨文数据库实例,以构建容错拓扑结构。分片是一种数据层架构,其中数据在独立的数据库中横向分区,这些数据库称为分片,每个分片运行在具有自己的CPU、内存和磁盘资源的独立服务器上。这种无共享方法消除了基础设施层的单点故障。作为单一逻辑数据库(称为分片数据库)的一组分片被呈现给应用层。拥有明确的数据分布策略并主要通过使用分片键访问数据的应用程序可以利用分片数据层。

架构

以下架构展示了在甲骨文云基础设施中部署的具有容错性的、分片的甲骨文数据库19c拓扑结构,这是通过在甲骨文云市场提供的甲骨文数据库分片堆栈部署的。这些架构在每个层级(分片指挥官、目录和分片)都具有冗余资源,以确保分片数据库的最大可用性。

跨多个可用性域的部署

该架构展示了一个分布在甲骨文云基础设施区域的两个可用性域中的分片数据库。

在单个可用性域中部署

此架构展示了在甲骨文云基础设施区域内的单个可用性域中的故障域间分布的分片数据库。

该架构包括以下组件:

区域

甲骨文云基础设施区域是包含一个或多个数据中心的地理区域,这些数据中心称为可用性域。区域彼此独立,可能相隔很远(跨越国家甚至大洲)。

此架构中的所有资源都部署在您指定的区域内的一个隔间中,并且位于单个甲骨文云基础设施区域内。

可用性域

可用性域是区域内的独立、独立的数据中心。每个可用性域中的物理资源与其他可用性域的资源隔离,从而提供故障容忍。可用性域不共享基础设施,如电源或冷却系统,或内部可用性域网络。因此,一个可用性域的故障不太可能影响该区域内其他可用性域。

故障域

故障域是可用性域内的硬件和基础设施分组。每个可用性域有三个独立的电源和硬件的故障域。当您在多个故障域中分布资源时,您的应用程序可以容忍故障域内的物理服务器故障、系统维护和电源故障。

此架构中的资源均匀分布在每个可用性域的故障域中。

虚拟云网络(VCN)和子网

VCN是您在甲骨文云基础设施区域中设置的可自定义的软件定义网络。与传统数据中心网络一样,VCN使您能够完全控制网络环境。VCN可以有多个不重叠的CIDR块,您可以在创建VCN后更改它们。您可以将VCN分割成子网,这些子网可以是区域范围或可用性域范围。每个子网由不与VCN中其他子网重叠的连续地址范围组成。您可以在创建后更改子网的大小。子网可以是公共的或私有的。

此架构中的计算和数据库资源连接到单个区域公共子网。您可以指定要使用的VCN和子网。如果您想创建新的VCN和子网,则可以指定VCN和子网的CIDR地址块。

互联网网关

互联网网关允许VCN中的公共子网和公共互联网之间的流量。

安全列表

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

此架构包含一个安全列表,以控制流向和来自分片指挥官的流量。

路由表

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

此架构包含一个路由表,将流量从子网引导至互联网网关。

分片指挥官

分片指挥官(也称为全局服务管理器)是一个网络监听器,根据分片键启用高性能连接路由到适当的数据库分片。

您可以指定所需的分片指挥官数量。分片指挥官部署在单独的计算实例上,这些实例分布在区域内的所有可用性域和每个可用性域内的故障域中。您可以选择用于分片指挥官的计算实例的形状。

主要和备用分片目录

分片目录是一种特殊用途的甲骨文数据库实例,支持自动分片部署、分片数据库的集中管理和多分片查询。

此架构包含一对主备目录数据库,每个都是单节点甲骨文云基础设施VM DB系统。您可以选择目录数据库的数据库形状和可用存储容量。

数据库分片

每个数据库分片都是单节点甲骨文云基础设施VM DB系统。您可以指定主分片的数量、要使用的数据库形状和可用存储容量。分片均匀分布在区域内的所有可用性域和每个可用性域内的故障域中。

部署架构时,您可以选择为每个主分片提供一个备用分片。

如果您的区域包含多个可用性域,则主备对的每个分片将放置在不同的可用性域中。

如果区域只包含一个可用性域,则主分片和备用分片将在不同的故障域中隔离。

                     

建议

您的需求可能与这里描述的架构不同。以下建议可作为起点。

分片的大小和数量

部署堆栈时,您可以指定要使用的数据库形状和分片数量。

根据您的工作负载需求选择合适的形状。您指定的形状将用于所有分片。

部署后,您可以更改个别分片的形状以适应工作负载的变化。更改形状的分片将被停止,然后使用新形状重启。

通常,大量小分片比少量大分片提供更好的整体故障容忍性。为了扩展拓扑或提高故障容忍性,您可以随时添加分片,而不影响现有分片的可用性。必要时,您可以缩减分片数据库;在将数据移动到其他分片后,首先移除最后创建的分片。

分片的可用性

为确保分片的高可用性,配置备用分片,并使用甲骨文数据保护(Oracle Data Guard)进行主备同步和故障转移。

分片目录的可用性

为确保分片目录的高可用性,配置备用目录,并使用甲骨文数据保护进行同步和故障转移。请注意,分片目录的可用性对分片数据库的可用性没有影响。分片目录的中断仅影响在故障转移到备用目录期间进行维护操作或多分片查询的能力。OLTP事务继续被路由到分片。

分片指挥官的可用性

为确保分片指挥官层的高可用性,部署多个分片指挥官。您可以在一个区域中部署多达五个分片指挥官。甲骨文建议您至少部署两个分片指挥官,并将它们隔离在不同的可用性域或故障域中。

存储

当前版本的甲骨文云市场堆栈为数据库分片和目录数据库提供基于逻辑卷管理器(LVM)的存储。您可以指定可用的存储容量,从256 GB起,最高可达40 TB。根据您的工作负载选择合适的存储容量。指定大小的块卷将连接到每个数据库分片。

您可以随时扩大存储容量,而不影响数据库的可用性。请注意,使用的总存储量高于可用存储。更多信息请参见甲骨文云基础设施数据库文档。

网络设计

创建VCN时,根据您计划附加到VCN子网中的资源数量,确定所需的CIDR块数量和每个块的大小。使用位于标准私有IP地址空间内的CIDR块。

选择不与您打算建立私有连接的任何其他网络(在甲骨文云基础设施、您的本地数据中心或其他云提供商)重叠的CIDR块。

考虑因素

应用程序设计

任何具有明确定义的数据分布策略并主要通过使用分片键(如客户ID、账号等)访问数据的应用程序都适合于分片数据库。

可扩展性

部署分片数据库后,您可以通过编辑堆栈并应用更改来增加或减少分片的数量。根据您在部署堆栈时指定的复制因子,备用分片也会相应扩展。

您也可以扩展分片指挥官的数量。

安全性

在部署分片数据库时,指定一个SSH公钥以启用对数据库服务器的安全SSH连接。

网络隔离

为确保网络隔离,在私有子网中部署分片数据库。为了实现对数据库服务器的管理访问,您可以在公共子网中配置一个堡垒主机。

部署

一个基于Terraform的堆栈用于部署此参考架构,可在甲骨文云市场上获得。

1. 访问甲骨文云市场。

2. 点击“获取应用”。

3. 按照屏幕上的提示操作。

开启您的Oracle云之旅:Agilewing - 您的智能云服务伙伴

作为Oracle的高级合作伙伴,Agilewing正重新定义企业体验Oracle云服务的方式。借助于其简化的开户流程和一流的技术支持,Agilewing将复杂的开户和操作流程转化为一种轻松、直观的体验。通过我们的一站式服务,您可以迅速开启并享受Oracle云的全方位服务,从而无缝融入云端世界。

Agilewing的AgileCDN服务,结合了OCI的云基础服务,提供了一流的全球内容加速解决方案。超过2800个全球POP节点和7000个直连点的强大网络,确保了无论您的业务扩展到全球哪个角落,都能保持高效稳定的运行。

利用Oracle云的先进技术,Agilewing致力于简化云服务搭建、云迁移和业务出海的过程。我们的合作模式为客户带来经济高效的解决方案,使他们能够更加专注于核心业务,同时享受Oracle云的高性能和安全保障。

Oracle云服务,作为一个充满潜力的领域,以其高性能、安全性和全球统一的服务标准,为各类企业开启了新的机遇之门。通过Agilewing的专业服务,无论是个人用户还是企业,都能轻松步入这个充满技术革新和高效能的新时代。现在,就让Agilewing引领您开始探索Oracle云服务,打开一个全新的世界大门