您的位置:首页 > 房产 > 建筑 > 数据库管理-第229期 Oracle全球分布式数据库-深入1(20240814)

数据库管理-第229期 Oracle全球分布式数据库-深入1(20240814)

2024/10/6 14:23:46 来源:https://blog.csdn.net/yhw1809/article/details/141183658  浏览:    关键词:数据库管理-第229期 Oracle全球分布式数据库-深入1(20240814)

数据库管理229期 2024-08-14

  • 数据库管理-第229期 Oracle全球分布式数据库-深入1(20240814)
    • 1 场景
    • 2 混合部署模式
    • 3 数据复制
      • 3.1 分片级复制
      • 3.2 Raft复制
    • 4 数据分布方式
    • 5 客户端请求路由
    • 6 查询过程
    • 总结

数据库管理-第229期 Oracle全球分布式数据库-深入1(20240814)

作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Pro: Database(Oracle与MySQL)
PostgreSQL ACE Partner
10年数据库行业经验,现主要从事数据库服务工作
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP、年度墨力之星,ITPUB认证专家、专家百人团成员,OCM讲师,PolarDB开源社区技术顾问,HaloDB外聘技术顾问,OceanBase观察团成员,青学会MOP技术社区(青年数据库学习互助会)技术顾问
圈内拥有“总监”、“保安”、“国产数据库最大敌人”等称号,非著名社恐(社交恐怖分子)
公众号:胖头鱼的鱼缸;CSDN:胖头鱼的鱼缸(尹海文);墨天轮:胖头鱼的鱼缸;ITPUB:yhw1809。
除授权转载并标明出处外,均为“非法”抄袭

上一期简单介绍了Oracle全球分布式数据库的基本概念,本期将介绍其具体的适用场景、部署、数据分布、路由、查询过程等更加深入的信息。

1 场景

实时OLTP
实时OLTP应用程序具有非常高的事务处理吞吐量、大量用户、大量数据,并且需要严格的数据一致性和大规模管理。一些例子包括面向互联网的消费者应用程序、移动支付等金融应用程序、计费和医疗应用程序等大规模SaaS应用程序。将Oracle全球分布式数据库用于此类应用程序的好处包括:

  • 每秒事务的线性可扩展性,随着新分片的添加,响应时间保持不变,以支持更大的数据量
  • 更好的应用程序SLA,因为任何给定分片上的计划内和计划外停机都不会影响其他分片上存储和可用的数据
  • 事务性应用程序的严格数据一致性
  • 跨多个分片的事务
  • 支持复杂的JOIN、触发器和存储过程
  • 在大规模下简单管理

全球应用
许多企业应用程序是全球性的,同一应用程序为多个地理位置的客户提供服务。此类应用程序通常使用跨多个地理区域分片的单个逻辑全局数据库。分片全球数据库的好处包括:

  • 严格执行数据主权,数据隐私法规要求数据保留在某个地理位置、地区、国家甚至州。
  • 减少跨区域的数据复制
  • 更好的应用程序SLA,因为一个地区的计划内和计划外停机不会影响其他地区

物联网和数据流应用
通常,此类应用程序会收集大量数据并以非常高的速度进行流式传输。Oracle全球分布式数据库优化了数据流库,这些库使用Oracle数据库的直接路径I/O技术以极高的速度将数据加载到分片数据库中。这些应用程序的数据负载要求可能高达每秒数亿条记录。一旦数据被直接加载到数据库中,它就可以通过高级查询处理和分析功能进行实时处理。

机器学习
许多机器学习应用程序需要实时训练和模型评分。使用异常检测和聚类等算法对许多应用程序进行模型训练和评分是特定于给定实体的(例如,给定用户在一天中的某个时间的金融交易模式或特定设备指标)。通过使用特定于用户或设备的分片密钥,可以很容易地对这类数据进行分片。此外,Oracle数据库机器学习算法可以直接应用于数据库,无需单独的数据管道和机器学习处理基础设施。

大数据分析
当数据量来到TB时,分片意味着您不必将数据存储在数仓中进行分析。Oracle全球分布式数据库最多可容纳1000个分片,可以将关系数据库转换为数仓大小的数据存储。使用联邦分片解决方案,可以将运行同一应用程序的不同位置的多个数据库安装转换为联邦分片数据库,这样就可以在不移动数据的情况下运行数据分析。

NoSQL
NoSQL解决方案缺乏主要的RDBMS功能,如关系模式、SQL、复杂数据类型、在线模式更改、多核可扩展性、安全性、ACID属性、单分片操作的CR等。使用Oracle全球分布式数据库,您可以获得NoSQL几乎无限的扩展和分片,以及Oracle数据库的所有功能和优势。

2 混合部署模式

Oracle全球分布式数据库的shared-nothing架构允许您将数据保存在本地、云上、混合云或多云环境。因为数据库分片不共享任何资源,所以分片可以存在于本地和云上的任何地方。
您可以选择在本地部署所有分片,将它们全部部署在云中,或者您可以将它们在云和本地系统之间拆分以满足您的需求。
分片可以部署在所有数据库部署类型上,如单实例、Exadata和Oracle RAC。

3 数据复制

Oracle全球分布式数据库依赖于复制来保证可用性。Oracle全球分布式数据库根据需要提供各种复制方式。复制为读取提供了高可用性、灾难恢复和额外的可扩展性。复制单元可以是分片、分片的一部分或一组分片。分片数据库中的复制拓扑是使用GDSCTL命令语法声明性指定的。您可以选择Oracle Data Guard或Raft复制来复制数据。Oracle全球分布式数据库会自动将指定的复制拓扑部署到系统中,并启用数据复制。

3.1 分片级复制

在Oracle全球分布式数据库中,分片是一个数据库。分片数据库的可用性不受一个或多个分片中断或速度减慢的影响。Oracle Data Guard复制可用于提供单个分片级的高可用性。创建分片数据库时,会自动配置和部署复制。DG(ADG)在为分片提供数据库高可用副本的同时,也提供了可查询的实时同步副本。
也可以选择使用Oracle RAC实现分片级高可用性,并辅以复制,以便在集群停机时保持分片级数据可用性。每个分片都可以部署在Oracle RAC集群上,以提供节点故障的即时保护。例如,每个分片都可以是一个两节点的Oracle RAC集群。在发生计划外停机时,Oracle全球分布式数据库会自动将数据库连接从分片故障转移到其副本。

3.2 Raft复制

Oracle全球分布式数据库的Raft复制功能不是在分片级别进行复制,而是创建较小的复制单元,并在分片之间自动分配它们,以处理块分配、块移动、工作负载分配和扩展时的平衡(添加或删除分片),包括计划内或计划外的分片可用性更改。
Raft复制内置于Oracle全球分布式数据库中,提供了一种基于一致、高性能、低开销的可用性解决方案,具有分布式副本和零数据丢失的快速故障转移功能,同时在分片失败时自动保持复制因子。使用Raft,复制管理开销不会随着分片数量的增加而增加。如果习惯于NoSQL数据库,并且不希望了解复制的工作原理,那么Oracle全球分布式数据库本地复制即可。与Data Guard复制不同,在添加或删除分片时不需要重新配置Raft复制,也不需要人为管理副本。
Raft复制也是Oracle Database 23ai全球分布式数据库的一项新的亮点功能。

4 数据分布方式

由于Oracle全球分布式数据库是基于表分区的,因此Oracle数据库提供的所有子分区方法也都得到了Oracle全球分布数据库的支持。数据分布方式控制数据在分片上的放置。Oracle全球分布式数据库支持系统管理、用户定义、基于目录或复合分片方法。

  • System-managed,系统管理:不要求将数据映射到分片。数据通过一致哈希进行分区,自动分布在分片之间。分区算法在分片之间均匀随机地分布数据。
  • User-defined,用户定义:允许明确指定数据到单个分片的映射。当由于性能、监管或其他原因,某些数据需要存储在特定的分片上并且管理员需要完全控制分片之间的数据移动时,就会使用这种方式。
  • Composite,复合分片:允许使用两个级别的分区。首先,数据按范围或列表进行分区,然后再按一致哈希进行进一步分区。在许多用例中,特别是对于数据主权和数据邻近性要求,复合方式提供了系统管理和用户定义方法的最佳选择,为您提供了所需的自动化和对所需数据放置的控制。
  • Directory-based,基于目录:是对用户定义方法的增强,通过这种方式,与任何分片键相关的数据记录的位置在运行时根据用户偏好动态指定。分片键的位置信息存储在一个目录中,该目录可以容纳数十万个大型键值集。可以自由地将单个键值从一个位置移动到另一个位置,或者进行批量移动以放大或缩小,或者进行数据和负载平衡。位置信息可以包括分片数据库信息和分区信息。

5 客户端请求路由

Oracle全球分布式数据库支持从应用程序直接至分片;基于分片键的路由;通过代理使用分片目录(catalog)进行路由;以及路由到与分片相关的中间层,如应用程序容器、web容器等。Oracle数据库客户端驱动程序和连接池同样支持分片。

  • Key-based routing,基于分片键的路由:Oracle客户端驱动(JDBC、OCI、UCP、ODP.NET)可以识别连接字符串中指定的分片键,以实现高性能的数据依赖路由。连接层中的分片路由缓存用于将数据库请求直接路由到数据所在的分片。
  • Routing by proxy,通过代理路由:Oracle全球分布式数据库支持对不指定分片键的查询进行路由,使任何数据库应用程序都可以灵活地运行SQL语句,而无需指定应处理查询的分片。代理路由可以处理单分片查询和多分片查询。
  • Middle-tier routing,中间层路由:除了对数据层进行分片外,还可以对web层和应用层进行分片,将这些中间层的分片分配给一组特定的数据库分片,从而创建一种称为泳道(swim lane)的模式。智能路由器可以根据特定的分片键将客户端请求路由到适当的泳道,从而在其分片子集上建立连接。

6 查询过程

无需更改查询和DML语句即可支持Oracle全局分布式数据库。大多数现有的DDL语句在分片数据库上的工作方式与在非分片Oracle数据库上的语法和语义相同。就像DDL语句可以在配置中的所有分片上处理一样,某些Oracle提供的PL/SQL过程也可以。Oracle全球分布式数据库在SQL DDL语句中也有自己的关键字,只能对分片数据库运行。

总结

本期对Oracle全球分布式数据库适用场景、部署、数据分布、路由、查询过程等概念。
下一期将对数据快速导入、自动化部署、数据迁移以及生命周期管理进行简述。
老规矩,知道写了些啥。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com