DB2 9 的适应性实用程序节流系统使维护可以在繁忙时间段进行,假如你希望保持汽车状态良好,就必须定期进行一些维护,比如更换机油和火花塞。对于数据库,也是如此;如果希望保持良好的性能,就必须定期执行维护操作,比如重新安排数据布局、更新数据库统计数据和重组表/索引。
在 DB2 中,这些维护操作是通过运行各种实用程序来执行的。因为这些实用程序会消耗宝贵的系统资源,所以维护操作通常在非高峰时间段的 “维护窗口” 中执行。但是,如今的业务越来越需要不间断地运行,所以让数据库离线以执行这些重要的操作变得越来越困难了。现在,一些维护任务可以在数据库在线的情况下执行,但是许多任务消耗的资源仍然非常多,会影响数据库的正常工作。
IBM 为这个问题提供了一个解决方案,可以自动执行某些应该定期执行的日常维护活动。IBM 开发人员还创建了一种细粒度的资源控制机制,这种机制称为实用程序节流(utility throttling)。它允许选择一些实用程序,让它们在某些时间占用更多资源,在其他时间占用比较少的资源。
在这篇专栏文章中,我将解释如何执行自动维护,并说明如果需要在数据库正在处理工作负载时执行维护操作,应该如何利用实用程序节流。
维护
自动维护是 DB2 9 中引入的一个新特性。通过使用这个特性,您可以指定维护目标,DB2 Database Manager 决定是否需要执行维护活动来实现这些目标。如果 Database Manager 认为需要执行维护操作,就可以在下一个维护时间窗中自动执行此操作;维护时间窗是由您指定的一个时间段,所有自动维护活动都在这段时间内执行。
可以使用自动维护执行以下任务:
生成数据库备份映像。自动数据库备份解决方案可以确保适当地定期备份数据库,用户不需要总是关注备份时间或如何正确地编写 BACKUP 命令。
数据碎片整理(表或索引重组)。这种维护活动可以提高 DB2 Database Manager 访问表的效率。自动重组管理离线表和索引重组,用户不需要关心何时以及如何重组数据。
数据访问优化(运行 RUNSTATS)。DB2 Database Manager 会自动更新关于表数据、表索引数据或者这两者的系统编目统计数据。在响应查询时,DB2 Optimizer 使用这些统计数据决定使用哪个路径访问数据。自动统计数据收集过程会维护***的表统计数据,从而提高数据库的性能。其目标是让 DB2 Optimizer 总是根据准确的信息选择访问计划。
统计数据分析。自动统计数据分析过程会探测过时、缺失或不准确地指定的统计数据,根据查询反馈生成统计数据分析,从而建议何时以及如何收集表统计数据。
在创建 DB2 9 数据库时,会默认启用自动维护;通过自动维护专用的数据库配置参数(auto_maint、auto_db_backup、auto_tbl_maint、auto_runstats、auto_stats_prof、auto_prof_upd 和 auto_reorg)启用可用的自动维护特性。这些参数是一组层次化的开关,可以设置为 ON 或 OFF。
用程序节流
自动维护活动(备份、统计数据收集、统计数据分析和表/索引重组)在运行时会消耗系统资源,所以会影响数据库性能。另外,离线数据库备份和表/索引重组操作会限制对表、索引或整个数据库的访问。为了尽可能减少对系统的影响,可以使用 DB2 的适应性实用程序节流系统对某些自动维护活动的资源使用量进行调节。
【编辑推荐】