Oracle 和 DB2,比较与兼容性/数据库扩展/共享架构
有很多共享硬件和软件架构可用于实现高可用性、容错和扩展。就像“数据库”一词的含义取决于上下文(实例、服务器、文件系统)一样,“集群”在数据库领域也是一个普遍存在的词。
虽然这些词似乎代表着一种语义上的“谁是谁非”的方法,排斥了那些不了解笑话的人,但这实际上是一种有用术语的副作用。集群是将事物分组在一起。它可以与索引相关(正如我们之前所见),也可以与硬件相关——将一组机器分组在一起并作为一个单一的协调资源运行。在数据库世界中,一组机器协同处理数据库,恰如其分地被称为“集群数据库”。不幸的是,这两个词——数据库和集群——都是独立的词,每个词都有大约三种含义。对于这两个词,它们使用的上下文提供了含义。
共享一切 (SE) 架构实际上只是上面描述的一般数据库架构的扩展。共享的是一组处理器之间的内存。以这种方式运行的数据库被称为 SMP(对称多处理)。处理器之间的通信通常通过总线进行,不过也可以是交叉开关或片上网格。使用现代多核处理器(其中 CPU 芯片中的每个核心都是连接到同一总线的处理器),任何在这些处理器上运行的应用程序(不仅仅是数据库)都可以是 SMP。
共享一切架构的优点是,Oracle 和 DB2 都可以在没有任何更改的情况下利用这种能力。如果您将这两个数据库中的任何一个放在多核系统上,它将利用额外的处理能力(这就是我们为什么将共享一切描述为一般数据库架构的简单扩展)。
这就是许多数据库服务器以及正在运行的数据库实例访问单个数据库文件系统的地方。一个数据库服务器可以运行一个或多个数据库实例。在迄今为止的架构描述中,我们一直在描述一个针对磁盘上的单个数据库运行的单个数据库实例。在共享磁盘架构中,多个数据库实例与磁盘上的单个数据库进行集群。这种架构看起来像这样
在共享磁盘架构中,非常庞大的计算机网络可以对单个数据集进行操作,而无需复制或分片该数据集。显然,在这种情况下,数据集本身存在一个单点故障,但是可以通过镜像数据集(以及使用高可用性技术,包括复制)来缓解这种情况。在共享磁盘系统中,磁盘上的数据块(或页)只能有一个所有者。块(或页)的所有权将转移到正在执行更新的实例。这会产生网络流量,通常会在数据库实例之间实施专用基础设施以应对这种流量。共享磁盘是同步多主(每个数据库实例都可以同时(同步地)写入(即为主))的一个示例。这是一个功能强大的实现,最适合具有庞大物流或制造系统的组织(即适用于 SAP 的 R3 等应用程序)。共享磁盘系统需要仔细的设计和实施。他们需要大量的基础设施和管理来维持运行。好消息是,如果您需要这种马力,您是一家财富型公司,并且拥有足够的收入来为其提供资金。
在共享无 (SN) 架构中,数据库(磁盘上的数据)可以被认为是一个逻辑整体——整个磁盘数据的集合构成了数据库,但数据总体被物理地分成单独的数据总体。这个概念称为分区或分片。分区可以在数据库内进行(其中数据库中的一个表被分成多个分区)或跨数据库进行(其中数据库被分成多个分区,每个分区都有一个针对其运行的数据库实例)。正如架构所暗示的那样,没有共享,单个数据库实例和数据库分区看起来并运行起来就像图 N 中描述的架构一样。一般数据库架构在上面。数据库对最终用户看起来像一个统一整体的方式由一个协调器处理,它将用户请求定向到适当的实例,并管理数据的分配(即确保插入数据库的数据进入适当的分区)。共享无架构看起来像这样
在共享无系统中,数据库被分成多个“分区”或“分片”。每个部分都包含整个数据集中的一个已知的“块”。之所以是“已知的”,是因为数据只存在于一个地方,因此对该数据的读写访问需要知道它在哪里。“块”由您的需求决定,可以按地理位置(即按州)或时间(我的月份或年份)来划分。这种架构的优点是没有单点故障——如果其中一个数据集不可用,其余数据集仍然可以运行。这也分散了处理过程,您有很多分区,每个分区都有自己独立运行的数据库实例。这种类型的安排非常适合 DSS 类型的系统,并且可以几乎无限地扩展。考虑这种类型的安排的一个因素是数据需要在一个地方——这意味着如果它需要移动(即一组数据需要从一个州转移到另一个州,或者从一年转移到另一年),它可能会产生大量的网络流量或需要进行数据迁移。另一个可能出现的情况是数据可能变得不平衡——即圣诞树企业可能在年底看到大量数据。虽然这似乎很明显,但不太明显的是单片数据集中的数据倾斜,因为所有数据都在同一个地方。如果在实施共享无解决方案时没有考虑到这一点,一个分片或分区最终可能会获得不成比例的活动量。
每种架构的优缺点在此只是简单介绍。关于哪种架构更优越的激烈争论是存在的,它们在架构层面上与法拉利是否比水泥搅拌车更适合你一样相关。这取决于你想要做什么以及你有多少钱。当然,如果您有这么多钱,并且只是想出于纯粹的智力原因来探讨这个话题,那么 IBM 和 Oracle 都将非常乐意为您提供帮助。