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

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

循环日志

循环日志仅支持崩溃恢复,也就是说,如果 DB2 实例因某种原因(比如,电源故障或用户操作错误)而发生崩溃,那么下一次数据库重新启动就会使用日志文件的信息,将数据库带回一致的状态。 在崩溃恢复期间,尚未写入磁盘的所有已结束的、已提交的或中止的事务都会写入到磁盘中。所有打开的、尚未提交的事务都被回滚,以删除部分的变更。 在开发和测试环境中,您可以使用循环日志。在这些环境中,为了简化数据库管理,事务日志不是必需的,可以使用循环日志。

归档日志

选择归档日志的好处是,前滚恢复可以使用归档日志和活动日志,将数据库还原到日志末尾或某个特定的时间点。 可以使用归档日志文件在数据库备份后恢复变更。这种类型的日志与循环日志不同,使用循环日志,只能恢复到备份的时刻,之后所做的所有变更都将丢失。

在数据库创建时,默认的日志类型是循环日志。可以通过更新 logarchmeth1 或 logarchmeth2 数据库配置参数来启用归档日志。在修改参数设置后,需要执行一次离线数据库备份,以便能够">访问数据库。

配置事务日志

DB2 支持若干种媒体类型,以便实现日志归档,如 DISK、TSM (即 Tivoli® Storage Manager 支持)、VENDOR (即第三方库支持),或使用 USEREXIT 设置的客户程序。您可以将 logarchmeth1 数据库配置参数设置为任意可能的有效值。不过,logarchmeth2 数据库配置参数只支持 OFF、DISK、TSM 和 VENDOR 值。 OLTP 工作负载的性质对事务日志设备的响应时间和吞吐量提出了很高的要求。为了获得最佳性能和可用性,应将事务日志放在专用的、更快的设备上,并且使用单独的文件系统。为了提高性能,不要与任何其他数据库存储对象(如,表空间)共享事务日志文件系统或 I/O 带宽。 默认情况下,事务日志的目录被设置为数据库目录。通过设置 newlogpath 数据库配置参数,可以修改该目录。 为了防止流氓应用程序占用所有事务日志空间并影响数据库,可以考虑对事务日志使用以下数据库配置参数:

 num_log_span 参数指定了是否限制一个事务可以跨越多少个日志文件,该限制是多少。
 max_log 参数指定是否有限制一个事务可以消耗的日志空间的百分比,该限制是多少。
 blk_log_dsk_ful 参数防止当 DB2 数据库管理器在活动日志路径不能创建新的日志文件时,生成日志空间已满的错误。DB2 数据库管理器不会生成磁盘已满的错误,而是每 5 分钟试图创建一次日志文件,直到成功为止。

您可以使用 IBM InfoSphere Optim Performance Manager 中的记录仪表板和警报阈值来监视日志空间利用率,并确定是否需要修改日志空间配置。

镜像日志路径

您可以使用 mirrorlogpath 数据库配置参数为事务日志设置备用路径。如果设置了此参数,数据库管理器将在日志路径和镜像日志路径中都创建活动的日志文件。所有日志数据都被写入这两个路径中,这增加对日志文件的意外丢失的保护。

为了从镜像日志路径获得最大利益,并且不会降低性能,我们建议镜像日志路径使用快速专用设备。如果将镜像日志路径放在与日志路径相同的设备或文件系统上,则有可能导致 I/O 带宽成为瓶颈。此外,它只能在几个场景中保护您,无法保护设备或文件系统全部损失的情况。

为了从镜像日志路径获得最大利益,并且不会降低性能,我们建议镜像日志路径使用快速专用设备。如果将镜像日志路径放在与日志路径相同的设备或文件系统上,则有可能导致 I/O带宽成为瓶颈。此外,它只能在几个场景中保护您,无法保护设备或文件系统全部损失的情况。 如果您想使用镜像日志路径,那么您的需求评估中的某些因素会受到影响。您需要双倍的事务日志存储空间,并增加 I/O 带宽。

数据和索引压缩

数据和索引压缩可能有助于减少事务日志的大小。如果您使用 DB2 压缩功能,作为 INSERT、UPDATE 和 DELETE 活动的结果被写入日志记录中的用户数据就会较小。然而,某些 UPDATE 日志记录在压缩后可能比不使用压缩时更大。 除了压缩之外,您还可以通过其他操作尽量减少日志空间的消耗。将更新得较频繁的列分组在一起,并将它们放在记录定义的末尾或接近末尾的地方,这样做可以最大限度地减少日志空间消耗。即使有一个良好的压缩比,OLTP 工作负载仍无法从更好的事务响应时间或吞吐量中获益。因为数据和索引压缩可以减少表空间 I/O 和日志 I/O,所以可以在压缩后的数据上以相当短的时间完成数据库备份和归档日志等管理任务。

最佳实践

将以下设计最佳实践用于数据库日志:
 在生产环境中使用归档日志,以便能够执行许多恢复操作,这些操作包括在线备份、增量备份、在线还原、时间点前滚,以及发出 RECOVER DATABASE 命令。
 考虑对增量备份启用 trackmod 数据库配置参数,以便跟踪数据库的修改,这样 BACKUP DATABASE 命令就可以确定哪些数据库页面的子集应包含在数据库备份或表空间备份的备份映像中。
 使用镜像日志路径增加高可用性。
 配置辅助日志文件,临时提供额外的日志空间。
 使用数据和索引压缩来提高数据库和表空间备份等管理任务的性能,因为在压缩数据上执行备份所需的时间较短。
 考虑事务日志的 I/O 适配器或总线带宽要求。如果要求不够充分,则可能导致 I/O 使用中出现瓶颈。如果担心高可用性,请查看 I/O 多路径的操作系统级支持。

时间: 2014-12-19

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

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

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

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

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

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

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

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

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

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

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

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

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

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

与独立磁盘相比,存储系统提供了许多优势,包括降低http://www.aliyun.com/zixun/aggregation/14290.html">存储管理开销.更好的性能.巨大的存储服务器缓存.多路径访问.备用电池.更高的可靠性和更高的可用性. 最近,通常为 DB2 数据库服务器提供服务的并不是独立磁盘,而是中高端的存储系统,比如 IBM System Storage® DS6800 和 DS8300. 尽管最近固态设备 (SSD) 取得了成功,但磁盘仍然是数据中心的规范.因为处理器

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

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

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

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