数据库管理-第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全球分布式数据库用于此类应用程序的好处包括:
全球应用 许多企业应用程序是全球性的,同一应用程序为多个地理位置的客户提供服务。此类应用程序通常使用跨多个地理区域分片的单个逻辑全局数据库。分片全球数据库的好处包括:
物联网和数据流应用 通常,此类应用程序会收集大量数据并以非常高的速度进行流式传输。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全球分布式数据库支持系统管理、用户定义、基于目录或复合分片方法。
5 客户端请求路由
Oracle全球分布式数据库支持从应用程序直接至分片;基于分片键的路由;通过代理使用分片目录(catalog)进行路由;以及路由到与分片相关的中间层,如应用程序容器、web容器等。Oracle数据库客户端驱动程序和连接池同样支持分片。
6 查询过程
无需更改查询和DML语句即可支持Oracle全局分布式数据库。大多数现有的DDL语句在分片数据库上的工作方式与在非分片Oracle数据库上的语法和语义相同。就像DDL语句可以在配置中的所有分片上处理一样,某些Oracle提供的PL/SQL过程也可以。Oracle全球分布式数据库在SQL DDL语句中也有自己的关键字,只能对分片数据库运行。
总结
本期对Oracle全球分布式数据库适用场景、部署、数据分布、路由、查询过程等概念。 下一期将对数据快速导入、自动化部署、数据迁移以及生命周期管理进行简述。 老规矩,知道写了些啥。
