数据库管理228期 2024-08-12
数据库管理-第228期 Oracle全球分布式数据库-初探(20240812)
作者:胖头鱼的鱼缸(尹海文)
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 23ai的全球分布式数据库(Globally Distributed Database)进行探索。本期将对全球分布式数据库进行简单讲解。
1 概念
全球分布式数据库是一种对数据进行分区以分配计算和存储工作负载的方法,有助于实现超大规模计算。超大规模计算,hyperscale computing,是一种为了满足系统需求可以快速扩展或缩小的计算架构,这种架构创新最初是由运行分布式站点的互联网巨头推动的,并已被大型云提供商采用。
为了实现超大规模计算,一般采用一种叫分片(Sharding)的技术,即将数据段的集合,也就是分片分布存放在运行在大量服务器的多个数据库中。
Sharding使用分片间不共享硬件或软件的share-nothing架构,所有分片组合在一起构成了一个被称为分片数据库(Shared database)的单一的逻辑数据库。
从应用程序的角度来看,分片数据库看起来像一个单一的数据库:分片的数量以及这些分片之间的数据分布对数据库应用程序完全透明。从数据库管理员的角度来看,分片数据库由多个可以共同管理的数据库组成。
其实全球分布式数据库和12.2引入的Sharding有很多相似的地方(这里关于19c Sharding相关文档我做了部分翻译,可以去墨天轮下载:https://www.modb.pro/doc/124393),简单来说就相当于将原来运行在集中式数据库中的分区表,将每个分区分散在不同的数据库中,所有数据库中的数据加起来就是对应表的数据总和。
2 关于全球分布式数据库
Oracle全球分布式数据库是Oracle数据库的一个功能,可以在一个不共享硬件和软件的数据库池中自动分布、复制数据库。Oracle全球分布式数据库提供了成熟RDBMS和NoSQL数据库的最佳特性和功能:
- 使用SQL语言在Oracle数据库中创建对象、确保数据一致、复杂JOIN、ACID事务特性、分布式事务、关系型数据存储、安全、加密、性能优化、备份与恢复和补丁应用
- Oracle的创新与企业级功能:高级安全、自动存储管理(ASM)、高级压缩、分区、高性能存储引擎、SMP可扩展性、Oracle RAC、Exadata、in-memory列(列式存储)、在线重定义、JSON文档存储等
- 可用于分片数据库应用开发和管理的工具:SQL Developer、EMCC、RMAN和数据泵
- 可通过DG和ADG实现极致的可用性。其余复制选项可以使用内建于Oracle全局分布式数据库的Raft复制
- 支持多模:关系型、text和JSON
- 可充分利用内部和全球Oracle数据库管理员技能,可以保留现有的生命周期管理和操作流程
- 企业级支持
- NoSQL数据库的极致扩展性与可用性
3 分布式分区
分片是一种基于跨多个独立物理数据库对数据进行水平分区的数据库扩展技术。这种配置中的每个物理数据库都称为分片。分片表在分片数据库的所有分片之间进行分区。每个分片上的表分区的使用与非分片Oracle数据库的分区没有区别。
4 Oracle全球分布式数据库的优势
全球分布式数据库的重点优势:
- 线性扩展
基于shared-nothing架构的Oracle全球分布式数据库可以消除性能瓶颈并提供近乎无限的扩展性。目前支持可扩展至1000个分片 - 极致可用性与故障隔离
因为没有软件和硬件共享,因此不会出现单点故障。一个分片的故障或低性能不会影响其他分片的性能与可用性
分片可以使用Oracle MAA(可查看第216期)最佳实践解决方案,比如DG和RAC
一个分片的非计划停机和计划内维护仅仅影响这个分片的数据可用性,因此只有一小部分使用这部分数据的用户会受到影响 - 数据的地理分布
可以按照多个地域划分来分布一个单一逻辑数据库,这样可以满足数据隐私监管要求(数据主权),并允许在使用者就近存储、访问特定数据(数据邻近性)。
总结
本期对Oracle全球分布式数据库的基本概念进行了简单介绍。
下一期将针对典型场景进行讲解,后面将根据Oracle 23ai实际发布情况尝试进行简单搭建展示。
老规矩,知道写了些啥