DB2 V10.1 for Linux, UNIX, and Windows

数据库分区和处理器环境

容量是指能访问数据库的 用户数和应用程序数。这很大程度上取决于内存、代理程序数、锁定数、I/O 和存储器 管理。可伸缩性是指一个数据库随着其增长而继续显示出相同的操作特征和响应时间的能力。

本节对下列硬件环境提供了一个概述: 下面讨论每种环境的容量和可伸缩性。

单处理器上的单个数据库分区

此环境由内存和磁盘组成,但仅包含一个 CPU(请参阅图 1)。此环境中的数据库可满足一个部门或小办公室的需要,其中的数据和系统资源(包括一个单处理器或 CPU)由单数据库管理器来管理。

图 1. 单处理器上的单个数据库分区
具有 CPU、内存和用来存储数据的连接磁盘的单处理器环境。

容量和可伸缩性

在此环境中可以添加更多的磁盘。如果让每个磁盘拥有一个或多个 I/O 服务器,那么多个 I/O 操作可同时执行。

单处理器系统受处理器可处理的磁盘空间容量的限制。无论可以添加的其他组件(如内存或磁盘)如何,随着工作负载的增加,单个 CPU 可能无法更快地处理用户请求。如果已达到最大容量或最大可伸缩性,那么可考虑移到一个有多处理器的单个数据库分区系统中。

具有多处理器的单个数据库分区

此环境通常由同一台机器中几个能力相等的处理器组成(请参阅图 2),称为对称多处理器 (SMP) 系统。诸如磁盘空间和内存 之类的资源是共享资源。

利用可用的多个处理器,可以更快地完成不同的数据库操作。DB2® 数据库系统还可将单个查询的工作分布在可用的处理器中,以提高处理速度。其他数据库操作,例如,装入数据、备份和复原表空间以及对现有数据创建索引,都可以利用多个处理器。

图 2. 单一分区数据库对称多处理器环境
一个 SMP 环境,它具有包含若干个中央 CPU 和内存的数据库分区。

容量和可伸缩性

可以通过增加磁盘数来增加与处理器关联的数据库分区的 I/O 容量。可以建立 I/O 服务器以专门处理 I/O 请求。如果让每个磁盘拥有一个或多个 I/O 服务器,那么多个 I/O 操作可同时执行。

如果已达到最大容量或最大可伸缩性,那么可考虑移到有多个数据库分区的系统中。

多个数据库分区配置

可以将一个数据库分布在多个数据库分区中,每个数据库分区在它自己的机器上。可将有多个数据库分区的多台机器编组在一起。本节描述下列数据库分区配置:
  • 具有单处理器的系统上的数据库分区
  • 具有多处理器的系统上的数据库分区
  • 逻辑数据库分区

具有单处理器的数据库分区

在此环境中,有许多数据库分区。每个数据库分区都位于它自己的机器上,而且它有自己的处理器、内存和磁盘 (图 3)。所有机器 通过通信工具连接在一起。可使用许多不同的名称来称呼此环境,包括:集群、单处理器集群、大规模并行处理 (MPP) 环境和“不共享”配置。最后一个名称准确地 反映了此环境中的资源安排。与 SMP 环境不同,MPP 环境没有共享的内存或磁盘。MPP 环境避免了由共享内存和磁盘带来的限制。

一个分区数据库环境允许一个数据库保持在逻辑上的整体性,但它实际上分布于多个数据库分区中。数据是分布的这一事实对大多数 用户是透明的。可以在数据库管理器之间划分工作;每个数据库分区中的 每个数据库管理器都只为该数据库中它自己的那部分工作。

图 3. 大规模并行处理 (MPP) 环境
具有几个单处理器环境的 MPP 环境,每个单处理器环境都具有一个数据库分区,而每个数据库分区都包含一个 CPU 和内存。

容量和可伸缩性

在此环境中可以向您的配置添加更多的数据库分区。在某些平台上,最大数目是 512 个数据库分区。但是,在管理很多机器和实例时,可能存在实际的限制。

如果已达到最大容量或最大可伸缩性,那么可考虑移到每个数据库分区都有多个处理器的系统中。

具有多处理器的数据库分区

每个数据库分区具有单处理器的替代配置是,每个数据库分区具有多处理器的配置。这称为 SMP 集群 (图 4)。

此配置结合了 SMP 和 MPP 并行性的优点。这表示一个查询可以在跨多处理器的单个数据库分区中执行。亦即一个查询可以用并行方式在多个数据库分区中执行。

图 4. 集群中的几个对称多处理器 (SMP) 环境
几个 SMP 环境,其中两个 SMP 环境均具有一个数据库分区。每个 SMP 环境都包含几个 CPU 和内存。

容量和可伸缩性

在此环境中,可以添加更多的数据库分区,并可以向现有数据库分区添加更多的处理器。

逻辑数据库分区

逻辑数据库分区与物理分区的不同之处在于逻辑分区未被授予对整台机器的 控制权。虽然机器已共享资源,但是数据库分区不共享资源。处理器是共享的,但磁盘和内存却不共享。

逻辑数据库分区提供了可伸缩性。在多逻辑分区上运行的多个数据库管理器可以比单个数据库管理器更能充分利用可用的资源。图 5说明了通过添加更多的数据库分区可以在一台 SMP 机器上获得更大的可伸缩性;对于那些具有许多处理器的机器而言更是如此。通过分配数据库,可以分别对每个数据库分区进行管理和恢复。

图 5. 带有对称多处理器环境的分区数据库
显示了一个大型的 SMP 环境,该 SMP 环境具有两个数据库分区,每个数据库分区都包含多个 CPU 和内存。

图 6 举例说明可以扩大图 5 中显示的配置以增强处理能力。

图 6. 带有集中在一起的对称多处理器环境的分区数据库
具有两个数据库分区的两个大型 SMP 环境,每个数据库分区都包含几个中央处理器 (CPU) 和内存。
注: 两个以上的数据库分区同时存在于同一台机器上的能力(不考虑处理器的数量),使得可以更灵活地设计高可用性配置和故障转移策略。机器发生故障之后,可以将 一个数据库分区自动移至已包含同一数据库的另一个数据库分区的另一台机器上,然后重新启动该分区。

最适合每个硬件环境的并行性摘要

下表概述了最适合于利用各种硬件环境的并行性的类型。

表 1. 每种硬件环境中的可能并行性类型
硬件环境 I/O 并行性 查询内并行性
分区内并行性 分区间并行性
单个数据库分区,单处理器 1
单个数据库分区,多处理器 (SMP)
多个数据库分区,单处理器 (MPP) 1
多个数据库分区,多处理器(SMP 集群)
逻辑数据库分区
1 甚至是在单处理器系统中,使用一个配置参数将并行度设置为大于 1 的值也可能获得好处,特别是在查询并未充分使用 CPU 时(例如,如果它们受 I/O 约束)。