DB2 V9 自动维护,第 1 部分: 简介和创建数据库期间缺省启用自动收集统计信息功能...

IBM 的 DB2 V9 引入了自动维护功能,即自动数据库备份、自动统计信息更新以及在必要时重组表和索引。DB2 V9 推出了自动备份功能,自动数据库备份功能为用户提供了一个解决方案,从而帮助用户确保定期正确地对他们的数据库进行备份,而不必担心何时进行备份,也不需要具有有关备份命令的任何知识。另外,DB2 V9 的自动维护功能还包括数据访问优化(运行统计)、数据碎片整理(表或索引重组)和统计信息概要分析等功能,基于这些新的特性,将大大简化我们在实际维护数据库过程中的工作量。由于自动维护是 DB2 V9 的新特性,很多客户不知道该如何使用,本文将重点介绍 DB2 V9 关于自动维护方面的新特性,并结合实际的例子帮助大家理解和提高。

简介

IBM 的 DB2 V9 引入了自动维护功能,即自动数据库备份、自动统计信息更新以及在必要时重组表和索引。对于用户来说,确定是否以及何时运行维护活动可能相当费时。自动维护功能解除了用户的负担。借助自动维护功能,可以指定维护目标(包括自动维护功能的运行时间)。DB2 使用您指定的目标来确定是否需要执行维护活动,在下一个可用的维护窗口(自动维护活动的运行时间段,由用户定义),将仅运行必需的维护活动。

以往我们备份数据库有三种方式,第一种是用 DB2 调度中心把备份作为一个任务进行调度,第二种是把备份命令写到一个 Shell 脚本中,放到 UNIX 的 CRONTAB 中进行调度自动运行,第三种是基于第三方软件进行管理,比如用 Tivoli Storage Management(TSM)进行备份管理。现在 DB2 V9 推出了自动备份功能,自动数据库备份功能为用户提供了一个解决方案,从而帮助用户确保定期正确地对他们的数据库进行备份,而不必担心何时进行备份,也不需要具有有关备份命令的任何知识。以往一般都是 DBA 根据实际情况,比如建议对一个频繁进行大量更新、插入或者删除操作的表进行 RUNSTATS,建议在重组表之后运行 RUNSTATS。现在 DB2 V9 推出了数据访问优化(运行统计),DB2 将更新有关表数据、表索引数据或者表数据及其索引数据的系统目录统计信息。优化器使用这些统计信息来确定用来访问数据的路径。自动收集统计信息功能通过维护最新的表统计信息来尝试提高数据库的性能。目标是允许优化器根据准确的统计信息来选择访问方案。另外,DB2 V9 还提供了数据碎片整理(表或索引重组)和统计信息概要分析等功能,。数据碎片整理(表或索引重组)可以提高 DB2 数据库管理器访问表的效率。自动重组功能管理脱机进行的表和索引重组,用户不必担心何时以及如何重组他们的数据。自动统计信息概要分析功能通过检测过时的、丢失的以及不正确指定的统计信息以及通过根据查询反馈信息来生成统计信息概要文件的方法来建议何时以及如何收集表统计信息。

自动维护功能部件的启用是通过使用自动维护数据库配置参数来控制的。具有一组分层的开关用来方便灵活地管理这些功能部件的启用。可以使用“配置自动维护”向导使数据库维护活动仅在需要时才自动运行。DB2 数据库管理器使用已使用“配置自动维护”向导指定的目标来确定是否需要执行维护活动。然后,在下一个可用的维护窗口中,DB2 仅运行必需的维护活动。维护窗口是您定义的自动维护活动的运行时间段。

由于自动维护是 DB2 V9 的新特性,很多客户不知道该如何使用,本文重点介绍 DB2 V9 关于自动维护方面的新特性,并结合实际的例子帮助大家理解和提高。

我们将按照下列顺序介绍自动自调整内存:

  1. 创建数据库期间缺省启用的自动收集统计信息功能
  2. 启用自动备份功能
  3. 启用自动表和索引重组

创建数据库期间缺省启用自动收集统计信息功能

以往,在 DB2 V9 之前的版本,由于没有自动维护功能,所以都是建议对一个频繁进行大量更新、插入或者删除操作的表进行 RUNSTATS,建议在重组表之后运行 RUNSTATS。我们都是通过手工执行 RUNSTATS 命令,或者通过 DB2 任务中心调度执行 RUNSTATS 命令来收集表的统计信息以改善数据库性能。现在 DB2 V9 又新增了自动收集统计信息功能, 自动收集统计信息通过收集最新的表统计信息来改善数据库性能。DB2 确定工作负载需要哪些统计信息以及需要更新哪些统计信息。然后,在后台自动调用 RUNSTATS 实用程序以确保收集并维护正确的统计信息。将首先收集有关最需要的表的统计信息。然后,DB2 优化器根据准确的统计信息来选择访问方案。在创建数据库之后,可以通过将数据库配置参数 AUTO_RUNSTATS 设置为 OFF 来禁用自动收集统计信息。

从 IBM DB2 版本 9.1 开始,在创建新的数据库时,缺省情况下会启用自动收集统计信息(RUNSTATS)功能。这表示DB2数据库管理器将确定是否需要更新数据库统计信息。然后,RUNSTATS 实用程序会根据需要在后台自动运行,以确保最新的数据库统计信息可用。需要注意的是,将数据库从版本 8 迁移到版本 9.1 时,不会自动启用此功能。要在已迁移的数据库中使用此功能,必须手工进行启用。

接下来我们创建测试数据库 DB2TEST1,打开 DB2CLP 命令窗口,发出 CREATE DATABASE 命令语句,创建数据库,具体如清单 1所示:


清单 1 .创建示例数据库 DB2TEST1

                C:\> DB2 CREATE DATABASE DB2TEST1
DB20000I  CREATE DATABASE命令成功完成。

这样我们创建了一个测试数据库 DB2TEST1,其自动维护功能(AUTO_MAINT 数据库参数)已经打开了,只有自动维护功能打开,自动数据库备份和自动表维护功能才有效;默认情况下自动数据库备份(也就是 AUTO_DB_BACKUP 数据库参数默认被设置成了 OFF)功能是关闭的,如果想打开,需要更改 AUTO_DB_BACKUP 数据库参数,把其设置成 ON;自动表维护默认情况已经打开,只有自动表维护(也就是 AUTO_TBL_MAINT 被设置成 ON)打开,其所属的自动 RUNSTATS、自动统计信息概要分析和自动重组才有效,默认情况下自动 RUNSTATS 是打开的,自动统计信息概要分析和自动重组是关闭的。我们查看示例数据库 DB2TEST1 的配置参数,可以看到数据库地域是中国( CN),数据库代码页是 1386,数据库代码集是 GBK,自动维护默认打开,自动表维护默认打开,自动 RUNSTATS 默认打开,具体如清单 2 所示。


清单 2 .查看示例数据库 DB2TEST1 参数

                C:\> db2 get db cfg for db2test1

数据库 db2test1 的数据库配置

 数据库配置发行版级别                    = 0x0b00
 数据库发行版级别                        = 0x0b00

 数据库地域                              = CN
 数据库代码页                            = 1386
 数据库代码集                            = GBK
 数据库国家/地区代码                    = 86
 数据库整理顺序                          = UNIQUE
 备用整理顺序 ( ALT_COLLATE )            =
 数据库页大小                            = 4096

. . . . . . . . . . . . . . . . . . . . . .

自动维护  ( AUTO_MAINT )                 = ON
自动数据库备份 ( AUTO_DB_BACKUP )        = OFF
自动表维护 ( AUTO_TBL_MAINT )            = ON
自动 runstats ( AUTO_RUNSTATS )          = ON
自动统计信息概要分析 ( AUTO_STATS_PROF ) = OFF
自动概要文件更新 ( AUTO_PROF_UPD )       = OFF
自动重组 ( AUTO_REORG )                  = OFF

我们可以 DB2 控制中心对自动维护进行配置。打开 DB2 控制中心,在左边树形列表上找到 DB2TEST1 数据库,点右键,选“配置自动维护”,就打开了自动维护窗口。在自动维护配置窗口,可以将低活动量和没有活动的时间段定义为此数据库的维护窗口;可以选择要自动处理的DB2维护活动,除了默认启动的自动RUNSTATS,还可以设置自动数据库备份(需要把 AUTO_DB_BACKUP 数据库参数设置成 ON )、自动统计信息概要分析(需要把 AUTO_STATS_PROF 数据库参数设置成 ON)、自动概要文件更新 (需要把 AOTO_PROF_UPD 数据库参数设置成 ON )以及自动重组(需要把AUTO_REORG设置成ON);可以选择在自动维护不成功时要通知的人员。DB2 将通过使用评估条件,确定是否需要维护,需要维护是必需的,将在下一个可用维护窗口中完成维护。具体如图 1 所示:


图 1. 配置自动维护窗口
配置自动维护窗口

我们点下一步,打开选择自动维护类型页面,在这个页面中可以看到当前的自动维护设置是什么;还可以设置数据库的自动维护,比如可以更改自动设置或者禁用自动维护功能,具体如图2所示:


图 2. 配置自动维护窗口--选择自动维护类型页面
配置自动维护窗口--选择自动维护类型页面

我们选择更改自动设置,点下一步,进入到“指定何时可以运行自动维护活动”页面,在这里,可以指定自动维护活动是联机方式运行还是脱机方式运行,具体如图3所示:


图 3. 指定合适可以运行自动维护活动页面
指定合适可以运行自动维护活动页面

联机维护活动是可以在用户已连接到数据库的情况下运行的维护活动。运行联机维护活动时,允许任何当前已连接的应用程序保持连接,并允许建立新连接。

脱机维护活动是只有一定程度地中断用户对数据库的访问才能运行的维护活动。影响用户访问的程度取决于所运行的维护活动。在脱机备份期间,没有任何应用程序可以与数据库连接。任何当前已连接的应用程序都将被强制断开连接。 在脱机数据碎片整理(表或索引重组)期间,应用程序可以访问数据库表中的数据,但无法进行更新。

需要注意的是,数据访问优化维护活动(运行统计)只能以联机方式执行。

维护窗口是自动维护活动的运行时间段,由用户定义。这与任务时间表不同。在维护窗口内,不必运行每项自动维护活动。而是,DB2?根据所要运行的每项维护活动的需求来对系统进行评估。如果未符合维护需求,就运行该维护活动。如果数据库的维护状态良好,则不运行维护活动。

您可能需要确定运行自动维护活动的时间。运行自动维护活动(备份、统计信息收集、统计信息概要分析和重组)将消耗系统上的资源,并且可能会影响数据库的性能。当自动重组和脱机数据库备份运行时,这些实用程序还会限制对表和数据库的访问。因此,需要提供适当的时间段,以便可以在内部安排由 DB2 数据库管理器运行。可以使用“控制中心”或“运行状况中心”中的“自动维护”向导来将这些时间段指定为脱机和联机维护时间段。

脱机数据库备份以及表和索引重组是在脱机维护时间段内运行的。即使超过了指定的时间段,这些功能部件也将运行直到完成为止。内部调度机制经过一段时间就会了解并估计作业完成时间。如果对于特定数据库备份或重组活动来说脱机时间段太短了,则调度程序下一次将不启动作业,并依赖运行状况监视器来提供需要延长脱机维护时间段的通知。

自动统计信息收集和概要分析、联机索引重新组织以及联机数据库备份都在联机维护时间段内运行。为了使它们对系统的影响最小,将用适当的实用程序调节机制来调节联机数据库备份以及自动统计信息收集和概要分析。内部调度机制使用联机维护时间段来启动联机作业。即使超过了指定的时间段,这些功能部件也将运行直到完成为止。

联机维护窗口如图4所示:


图 4. 具体联机维护窗口
具体联机维护窗口

脱机维护窗口如图 5 所示:


图 5. 脱机维护窗口
脱机维护窗口

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9403012/viewspace-173/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9403012/viewspace-173/

DB2 V9/10 HADR 数据库部署 DB2 V9 V10 HADR 部署实例,改变量就好使。 立即下载

相关推荐

查看自动收集统计信息是否开启(1).sql

查看自动收集统计信息是否开启(1).sql

DB2收集统计信息脚本参考RUNSTATS ON

[db2inst1@localhost ~]$ db2level DB21085I Instance "db2inst1" uses "64" bits and DB2 code release "SQL09070" with level identifier "08010107". Informational tokens are "DB2 v9.7.0.0", "s090521", "LINUXAMD6497", and Fix Pack "0". Product is installed at ...

sqlora的专栏 1405

详解mysql 获取某个时间段每一天、每一个小时的统计数据

获取每一天的统计数据 做项目的时候需要统对项目日志做分析,其中有一个需求是获取某个给定的时间段内,每一天的日志数据,比如说要获取从2018-02-02 09:18:36到2018-03-05 23:18:36这个时间段内,统计出每一天的日志数据,一般情况下,看到这种需求都是考虑使用函数来搞定,直接上sql语句 SELECT DATE_FORMAT(trigger_time, '%Y-%m-%d') triggerDay, COUNT(id) triggerCount FROM `job_qrtz_trigger_log` WHERE trigger_time BETWEEN '20

DB2表中统计信息收集及数据重组(二)

DB2提供了3个命令工具,重组和分析table中的数据:REORGCHKREORGRUNSTAT在(一)中收集了对象的统计信息,这里,可以用这些统计信息来诊断对象的物理存储了。具体内容见:http://blog.csdn.net/dlinger/archive/2004/10/12/133178.aspx2.REORGCHK ,诊断对象的物理存储>>-REORGCHK----+--

1883

基于云平台的ATS系统微服务架构方案研究

在当前智慧地铁的升级转型过程中,城市轨道交通ATS系统面临着稳定性差、运维方 式繁琐和故障应急处理效率低等问题。为此,提出一种基于云平台的ATS系统微服务架构方案; 研究了ATS系统在云平台上的微服务总体架构、ATS应用的微服务划分和设计、容器部署方式 及通信交互模式,可实现系统松耦合和易扩展,达到节约计算资源、提高系统稳定性和运营效 率的目的

mi_lan1的博客 966

得利捷datalogic扫码枪调试说明

针对得利捷datalogic扫码枪快速调试并,可以根据详细步骤设置扫码枪,并配有tcp调试助手辅以验证,以达到快速调试完成扫码枪的工作。

Conway510的博客 1万+

db2:在load和创建索引的同时收集统计信息

1、load期间执行收集统计信息db2 -v "load from wenjian.del of del replace into tablename STATISTICS USE PROFILE"当然,在这之前要确保在该表上创建了统计信息配置文件。附:(1)查看该表是否有统计信息配置文件              db2 -v "select STATISTICS_PROFILE from sy...

drbing的博客 1094

【零基础入门哈希签名架构,从Lamport到SPHINCS+】第二集 哈希签名树 Merkle Tree Authentication

在第一集中,我们一直忽略了一个问题。设想一下,假如有一个Hacker(黑客),在截获到Sender发送给Receiver的公钥之后,把这个公钥改成Hacker自己的公钥,然后再发给Receiver,那么Receiver就会误认为这是Sender的公钥。所以我们之前所说放方案,其安全性都需要建立在一个前提下:Receiver需要确认公钥确实是Sender发出的。

m0_50572808的博客 2453

DB2表中统计信息收集及数据重组(一)

DB2提供了3个命令工具,重组和分析table中的数据:REORGCHKREORGRUNSTAT1.RUNSTATS 收集数据对象的统计信息 

2569

IAR9.X半主模式异常解析:为何硬件复位后仍陷调试状态?

本文深入解析了IAR 9.X半主模式异常问题,探讨了硬件复位后MCU仍陷调试状态的原因及解决方案。通过分析半主模式工作机制,提供了禁用半主功能、重写低级IO函数等具体方法,并给出了版本兼容性处理和调试与量产配置分离的优化建议,帮助开发者有效解决复位异常问题。

oo7890的博客 605

Python抓取摄像头图像,进行AI识别(一)

本文介绍了如何用Python获取海康威视摄像头的图像并进行AI识别。主要内容包括:1)准备工作,包括摄像头IP设置和密码重置方法;2)使用Python的Requests库通过ISAPI接口获取实时图像;3)示例代码展示如何保存摄像头图像。整个过程为后续AI图像识别提供了基础,通过简单的Python代码即可实现专业监控设备的图像采集功能。

Hahafantuan的博客 1514

数据库自动维护任务的管理

数据库自动维护任务的管理(managing automated database maintenance tasks) 以下记录如何用pl/sql包来管理oracle的自动维护任务。 一、自动维护任务 自动维护任务是以一定...

cuili9760的博客 971

Python 实战:高效绕过 reCAPTCHA v3 的自动化策略

本文深入探讨了使用Python高效绕过reCAPTCHA v3验证的实战策略。文章首先解析了reCAPTCHA v3无感验证的评分机制,随后详细介绍了两种核心解决方案:一是利用CapSolver等专业API服务直接获取有效token,二是通过Playwright模拟真人浏览器行为以提升评分。文中提供了从定位关键参数到代码实现的完整流程,并强调了合规操作与请求频率控制的重要性,为自动化开发者提供了切实可行的技术指南。

weixin_29057065的博客 489

所有文章

IT168 : DB2 V9自动自调整内存详解http://tech.it168.com/db/2007-09-25/200709251403578.shtml DB2 V9配置顾问程序http://publis...

congjiduo1159的博客 740

智能驾驶感知模块的测试评估方法(上)

对于智能驾驶系统而言,感知模块是开发难度最大、投入资源最多的核心部分。在智能驾驶开发团队内部,感知模块需要独立进行评测才能及早发现潜在缺陷或判断性能是否有改进。随着近几年BEV、OCC、E2E等新技术方案被越来越多企业应用,感知的评测变得越来越艰难,效率也变得越来越低下。本文作者基于在智驾测试行业多年经验,试图总结感知评测的基本规律和效率提升方法,以供读者一些启发。

vincent_321的博客 2559

C#每日面试题-属性和字段的区别

在C#面试中,“属性(Property)和字段(Field)的区别”是基础且高频的考点。很多初学者会把两者混为一谈,甚至觉得“属性就是加了get/set的字段”,但这种理解只停留在表面。面试考察的核心,是对“封装思想”的理解,以及两者在语法特性、底层实现、实际应用中的本质差异。今天我们从“基础认知→核心差异→底层原理→实际应用→面试避坑”五个层面,把这个知识点讲透,既保证新手能看懂,又能满足面试的深度要求。

Amon的专栏 779

MySQL(开发篇)

外键:用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性。我们来看一个例子:左侧的emp表是员工表,里面存储员工的基本信息,包含员工的ID、姓名、年龄、职位、薪资、入职日期、上级主管ID、部门ID,在员工的信息中存储的是部门的ID dept_id,而这个部门的ID是关联的部门表dept的主键id,那emp表的dept_id就是外键,关联的是另一张表的主键。注意:目前上述两张表,只是在逻辑上存在这样一层关系,也就是逻辑外键;在数据库层面,并未建立外键关联,所以是无法保证数据的一致性和完整性的。

m0_61925586的博客 861

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

db2统计信息runstats

1.runstats的语法:runstats on table [模式名].[表名] with distribution and detailed indexes all注意:你可以在所有列上,或者仅仅在某些列或列组(除了LONG和LOB列)上执行RUNSTATS。如果没有指定特定列的子句,系统则会使用默认的ON ALL COLUMNS子句。使用RUNSTATS WITH DISTRIBUTION...

guanyi的博客 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

DB2 V8.2 如何配置AUTO_RUNSTATS

1.配置参数:2.设置需要自动RUNSTATS的表的profile,该profile会纪录于系统表sysibm.systables的STATISTICS_PROFILE列3.AUTO_RUNSTATS触发条件 DB2 V8.2 ...

ckkay800264的博客 958

DB2 查询统计信息的命令

 http://topic.csdn.net/u/20091127/19/a8a805b6-7b49-4371-919e-6e1668a9fff7.html 呵呵,找到了,select * from sysstat.TABLES  (view) 或者SELECT * FROM SYSCAT.TABLES WHERE TABSCHEMA=TEST   列出表中信息,CARD为表中数据

HI,我是小瑞! 3136

DB2 runstats、reorgchk、reorg 命令

DB2 runstats、reorgchk、reorg 命令 1、runstats runsats可以搜集表的信息,也可以搜集索引信息。作为runstats本身没有优化的功能,但是它更新了统计信息以后,可以让DB2优化器使用最新的统计信息来进行优化,这样优化的效果更好。   runstats   on   table   .   收集表      的统计信息

peterxiaoq的专栏 2547

DB2执行LOAD操作的同时进行统计信息的收集

DB2 执行LOAD命令之后,数据会有改变,这时候需要使用RUNSTATS收集统计信息,那么有没有办法在LOAD的同时收集统计信息呢? 答案是有的,需要使用到LOAD命令的下面这个选项: STATISTICS USE PROFILE 收集表统计信息概要文件中指定的统计信息。即使装入操作本身的性能下降(特别是在指定 DETAILED INDEXES ALL 时),与

匿_名_用_户的专栏 5030

收集全库统计信息的解释

收集全库的统计信息参数理解         经常使用一条收集数据库统计信息的语句,对它的参数不是很了解。网上搜索一下 exec dbms_stats.gather_database_stats(estimate_percent=>10,degree=>8,cascade=>true,granularity=>'ALL'); 1)estimate_percent:

huoshuyinhua的专栏 3102

DB2 runstats和reorg操作

db2收集统计信息(runstats) db2 reorg操作

william823的专栏 1676

定时收集统计信息

批处理文件runstat.bat ------------------------------------- @echo off set SQLFILE=c:\runstat.sql set LOGFILE=c:\runstat.log rem 连接数据库 d

蓝猫的专栏 719

修改统计信息自动收集时间窗口

近日,由于系统需求,周一到周五的自动统计信息收集与业务冲突,所以决定修改统计信息的自动收集时间,停止周一到周四的收集,仅仅保留周五六日的。 其实修改的方法简单,无非就是直接调整统计信息收集的job执行时间或调整调用该jo的window的时间。但是为安全直观期间,我还是使用EM control来完成修改,并将脚本记录如下。(注意版本是11.2.0....

weixin_33895475的博客 476
上一篇: 抓住你了!编程中的小麻烦
下一篇: IBM收购Arsenal
ciyi7513
博客等级 码龄11年 2粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值