DB2面向OLTP环境的物理数据库设计:存储系统

与独立磁盘相比,存储系统提供了许多优势,包括降低">存储管理开销、更好的性能、巨大的存储服务器缓存、多路径访问、备用电池、更高的可靠性和更高的可用性。

最近,通常为 DB2 数据库服务器提供服务的并不是独立磁盘,而是中高端的存储系统,比如 IBM System Storage® DS6800 和 DS8300。

尽管最近固态设备 (SSD) 取得了成功,但磁盘仍然是数据中心的规范。因为处理器速度和磁盘带宽之间的差距,磁盘 I/O 带宽迅速成为高性能的数据库系统部署中的瓶颈。规划的目标之一应该是数据库引擎没有 I/O 限制。为了做到这一点,应最大限度地减少 DB2 服务器所执行的 I/O,并将数据分发到多个磁盘轴。

磁盘阵列

在评测中,磁盘阵列的平均故障时间 (MTTF) 和平均故障间隔时间 (MTBF) 均高于磁盘驱动器,主要由于评测磁盘驱动器时所使用的测试方法和统计模型类型造成的。然而,实际情况是,数据库系统中的磁盘驱动器偶尔会发生故障。因此,您应该提供一定级别的磁盘驱动器冗余。若没有冗余,磁盘驱动器故障将会是灾难性的,需要通过还原和前滚来恢复丢失的表空间。

大多数存储系统和操作系统都支持独立磁盘冗余阵列 (RAID) 特性。RAID 有几个级别,每一个 RAID 级别都指出了磁盘阵列是如何安排的,以及支持哪种容错,这些会间接影响磁盘阵列的总性能。 RAID0 以轮循方式使用磁盘块,也称为“条带化”。RAID0 没有冗余,但它加快了读写操作,因为可以在执行 I/O 操作的过程中并行访问属于磁盘阵列的所有磁盘。

RAID1,也被称为磁盘镜像,要求磁盘阵列中的每个磁盘都有一个冗余磁盘。RAID1 提供最佳容错。在阵列中,即使损失了一半镜像磁盘,也不会对数据库系统有任何影响。然而,使用 RAID1 会带来高成本,因为它使磁盘空间需求增倍,同时还会降低写入吞吐量,因为每个写入操作都需要被执行两次。

RAID2 和 RAID3 使用位级和字节级的奇偶校验方法来实现数据冗余。RAID4 和 RAID5 使用奇偶校验块来实现数据冗余,提供磁盘驱动器故障的容错。RAID4 使用专用的校验磁盘,在密集的写操作(这是 OLTP 工作负载的典型场景)过程中,该奇偶校验磁盘可能成为严重的瓶颈。RAID5 提供了一种改进,使用分布式奇偶校验来消除写操作中的瓶颈。

对于 OLTP 工作负载,应该对 DB2 表空间容器使用 RAID5。如果有可能,请使用存储服务器级别或适配器级别的硬件 RAID。对于磁盘阵列,应该禁用存储服务器级别的预读,因为 OLTP 工作负载不会表现出序列模式。启用后写 (write-behind) 功能,以便获得更快的写周转。后写在将页面写到磁盘时不会等待。从 DB2 数据库管理器的角度来看,只要将页面复制到存储服务器缓存,写操作就被视为是成功的。在断电的情况下,启用后写没有问题。备份电池允许存储服务器将存储缓存中的页面刷新到磁盘。

数据库中的每个变更都作为日志记录被记录在日志文件中。每个日志记录都包括重做或撤消数据库中的变更的信息。该日志是数据库中的一个重要特性,可以保持数据的完整性和原子性、一致性、隔离以及持久性 (ACID) 属性。

OLTP 工作负载包括插入、更新和删除操作,对日志 I/O 性能产生大量需求。可靠性、可用性和可伸缩性 (RAS) 以及性能对于日志是两个最重要的需求。虽然 RAID5 可供 DB2 事务用于日志活动日志路径,鉴于事务日志的关键性质,应使用较高的冗余级别(例如,RAID1)。如果 RAID1 的性能是一个问题,应针对日志设备使用 RAID0 +1,因为这个 RAID 级别提供磁盘镜像和条带化。条带化将数据分发到阵列中的各个磁盘。

现代存储系统和操作系统所提供的另一个特性是主机通道适配器的负载均衡和故障转移功能。主机通道适配器也被称为多路径 I/O,能够将服务器和操作系统连接到存储器。在正常的运行时中,适配器会共享一个工作负载,如果某个适配器变得不可操作,那么另一个适配器会继续向数据库 I/O 提供服务,因此对性能只有极少影响,甚至没有影响。

最佳实践

针对存储系统使用以下设计最佳实践:

 使用具有 RAID 阵列功能的存储服务器级别的硬件。RAID5 提供了一个成本、冗余和性能之间的平衡。
 禁用存储服务器级别的预读,因为 OLTP 工作负载不会表现出顺序 I/O,并且不会受益于预读。
 使用 RAID 1+0 或 RAID5 作为日志设备,以实现更好的性能及更高的 RAS。
 如果存储系统有备用电池,请启用后写功能。
 如果不提供硬件级 RAID 支持,应使用逻辑卷管理器级别的 RAID。
 尽可能多地使用硬件级 RAS 特性和性能功能。例如,硬件 RAID 特性往往比在操作系统或卷管理器级别的软件 RAID 特性更快。

时间: 2014-12-19

DB2面向OLTP环境的物理数据库设计:存储系统的相关文章

DB2面向OLTP环境的物理数据库设计:数据库操作和维护

在数据库系统进入生产环境之后,工作重点会转向对数据库系统的日常维护.日常运营方面包括性能管理.问题诊断和维护,它们必须继续满足业务http://www.aliyun.com/zixun/aggregation/14189.html">服务水平协议. 面向 OLTP 环境的物理数据库设计应包括运营和维护任务的时间表.本节提供了此类活动的总结. 恢复策略 作为 RAS 整体策略的一部分,恢复策略在满足您的 RAS 目标中发挥着重要作用.虽然事实上在许多层次上都存在冗余,但在定义恢复点目标 (R

DB2面向OLTP环境的物理数据库设计:表空间和缓冲池

在设计表空间和物理设备上的容器位置时,我们的目标是最大限度地提高 I/O 的并行度,增加缓冲区利用率和缓冲池命中率.为了实现这一目标,您需要透彻了解数据库设计和应用程序. 了解表空间和缓冲池的工作原理以及它们影响数据库的整体性能的方式,这可以帮助您确定一些问题,例如,将两张表分隔到不同的设备是否会导致并行 I/O,或者是否应在一个单独的表空间中创建一个表,使该表可以被完全缓冲. 您的设计中要考虑的两个主要存储领域是: 1. 表空间.表空间的类型和设计可以决定对该表空间所执行的 I/O 效率. 2

DB2面向OLTP环境的物理数据库设计:查询设计

在最基本的层面,包括选择.插入.更新和删除在内的 SQL 操作是应用程序与 DB2 数据库进行交互的方式.应用程序的总体性能和体验受到该应用程序所用的 SQL 操作的影响. 设计.维护.监视和调优 SQL 查询的完整处理超出了本文的范围.然而,我们从较高层次概述了查询设计的工具和一般准则,因为查询设计和物理数据库设计彼此密切相关. 大多数物理数据库设计的特征对 SQL 语句并不明显,但为了更好地使用 DB2 特性,在编写查询时需要考虑到数据库的物理特征,如索引.例如,使用范围分区表时,选择查询即

DB2面向OLTP环境的物理数据库设计:数据建模

收集需求并创建逻辑模型,这是良好的物理数据库设计的关键. 数据建模的第一步是收集需求.该步骤涉及识别需要维护的关键业务工件.数据和信息.这些业务工件被称为实体.对于http://www.aliyun.com/zixun/aggregation/7976.html">在线购物目录,有关客户.产品和定价的信息都是业务关键信息,即实体. 可以通过利益相关者的输入来收集需求.需求和数据模型通过迭代方式向对方输送数据而得到进一步完善,从而创建一个逻辑模型. 图 1 显示了迭代数据建模范例: 收集需求

DB2面向OLTP环境的物理数据库设计:表

DB2 数据库将数据存储在表中.有几种类型的表可以存储永久性数据,如多维集群表.分区表和范围集群表.除了用于存储永久性数据的表之外,也有一些表可用来展示结果.汇总表.临时表. 根据数据的显示形式和事务类型,您可能会找到一个表类型,提供可以为您的环境优化存储和查询性能的特定功能. 选择合适的表类型 表类型的选择取决于业务和应用程序的需求.表中存储的数据的性质和查询的性能要求.下节描述了每种表类型适合在何时使用. 基表 基表可以保存永久性数据.DB2 数据库的基表有以下几种类型: 常规表 有索引的常

DB2面向OLTP环境的物理数据库设计:数据类型

为一个数据库设计表,这涉及到选择一个合适的http://www.aliyun.com/zixun/aggregation/14208.html">数据模型和数据类型.数据类型是一个列属性定义,它指示了应该将什么类型的数据存储在一个表列中. 根据所存储的数据的性质小心选择正确的数据类型,这有助于最大限度地减少存储需求. 最大限度地减少数据行消耗的空间,这有助于将更多行放在一个数据页面中.如果一个数据页面中有更多的行,那么这样可以提高缓冲池命中率,减少 I/O 成本,并实现更好的查询性能.DB

DB2面向OLTP环境的物理数据库设计:索引

在 DB2 数据库中,索引是按一个或多个键的值进行逻辑排序的一组指针.指针可以引用表中的行.MDC 表中的块,或在 XML 存储对象中的 XML 数据. 索引通常用于加快对表中的行的访问.若在表上定义了良好的索引,查询就可以更快地访问行. 索引是数据库对象.它们是物理对象,而不是逻辑对象(如,视图).因此,索引也占用http://www.aliyun.com/zixun/aggregation/17325.html">存储空间,需要那些会占用系统资源的必要维护.一组精心设计的索引可以提高

DB2面向OLTP环境的物理数据库设计:数据和索引压缩

您可以通过使用内置在 DB2 for Linux, UNIX and Windows 数据库中的压缩功能来减少表.索引和备份映像的大小,从而减少数据所需的存储量. 表和索引通常包含重复信息.这种重复可能是单独或合并的列值,也可能是列值的共同前缀,或者是在 XML 数据中的重复模式.压缩方法可以使用短字符串或符号来代替重复的信息. 您可以使用一些压缩功能来减少存储表和索引功能所需的空间,同时也可以采用一些功能来确定压缩可以提供的节省.您还可以使用备份压缩来减少备份的大小. DB2 Version

DB2面向OLTP环境的物理数据库设计:可靠性、可用性和可伸缩性

为了跟上如今全球化程度不断增加且日益竞争激烈的市场,您的http://www.aliyun.com/zixun/aggregation/10145.html">企业架构必须有足够的灵活性,能够随着未来战略性需求的变化而一起成长,并在计划内和计划外停机中确保业务连续性. 对于任务关键型的 24x7 企业,一个小时的停机时间可以转化为数百万美元的收入损失,更不用说商业信誉的损害和潜在的客户流失.全球化企业都是跨时区运营的,提供全天候的业务服务.系统维护和升级的定期维护窗口已不复存在.分布式企业

DB2面向OLTP环境的物理数据库设计:数据库事务日志

数据库事务日志对于数据库恢复至关重要,也是设计高度可用的数据库解决方案的一个重要组成部分. 数据库日志使得从故障中恢复成为可能.它们还可以在 HADR 环境中同步主数据库和备用数据库. DB2 对每个数据库使用一组独立的日志文件. 所有数据库都有与自己有关联的日志.这些日志保留数据库变更的记录.如果数据库需要还原到最后一次完整离线备份之前的某个点,日志需要将数据前滚到故障点.DB2 数据库支持两种类型的数据库的日志:循环日志和归档日志. 循环日志 循环日志仅支持崩溃恢复,也就是说,如果 DB2