DB2维护手册第2页共61页第3页共61页目录DB2维护手册..........................................................................................1一、DB2入门-数据库实例..................................................................5二、DB2日常维护日操作.................................................................201、检查管理服务器是否启动..............................................................212、检查DB2实例是否已经启动..........................................................213、查看表空间状态是否正常..............................................................214、查看表的状态...............................................................................225、查看磁盘空间...............................................................................236、检查存储管理软件是否正常...........................................................237、检查数据库备份是否正常..............................................................248、检查归档日志是否正确归档了........................................................249、查看缓冲池的命中率.....................................................................2410、查看当前运行最频繁的SQL,其命中率是否正常..........................2411、查看当前连接的应用程序,有没有非法连接.................................2512、检查有没有死锁.........................................................................2513、对表和索引进行RUNSTATS...........................................................2514、检查表是否需要重组..................................................................2515、对需要重组的表进行重组...........................................................26三、DB2日常维护月操作.................................................................271、查看DB2日志..............................................................................272、检查备份和日志是否都保存好了....................................................27四、DB2日常维护季度操作..............................................................271、通过快照监控器,查看系统性能如何..............................................272、数据库补丁级别............................................................................28五、注意事项..................................................................................281、不要删除活动日志文件..................................................................282、注意交易日志存储空间..................................................................283、按照系统的实际工作量配置日志空间..............................................294、设置正确数据库代码页..................................................................295、检查许可证(LICENSE)安装情况....................................................306、创建数据库前调整好系统时间........................................................307、不要随便执行CHOWN(CHMOD)–R(UNIX/LINUX)...........................308、在归档日志模式下使用LOAD记得加NONRECOVERABLE参数.........31六、附:以脱机方式重组表...............................................................31七、附:索引重组............................................................................32八、收集和更新统计信息的准则........................................................35九、附:使用CLP捕获数据库运行状况快照.....................................39第4页共61页十、IBMDB2日常维护汇总............................................................41十一、DB2常用命令集.....................................................................51第5页共61页一、DB2入门-数据库实例在本文中,我使用DB2来指代DB2通用数据库V8.1forUNIX、Linux和Windows。在DB2中,实例提供了独立的环境,可在其中创建数据库对象并针对这些对象运行应用程序。由于这些环境是独立的,所以两个或更多的单独实例的对象可以有相同的名称。在图1中,有一个名为“MYDB2”的数据库,它与实例“DB2”相关;还有一个同名的数据库,但它与实例“MyInst”相关。实例允许用户具有用于生产、测试和开发目的的不同环境。以下是一些与实例相关的命令:通过从命令行处理器(CLP)发出下列命令来显式地创建实例:db2icrtinstancename在Windows平台上首次安装DB2时,缺省情况下会创建一个称为“DB2”的实例。在UNIX环境中,如果您选择创建实例,那么缺省的实例名称为“db2inst1”。要删除实例,请使用这条命令:db2idropinstancename要启动实例,请使用这条命令:db2start要停止实例,请使用这条命令:db2stop第6页共61页创建了实例后,就会生成到DB2代码的链接。对于图1中的示例而言,已创建了实例“DB2”和实例“MyInst”,两者都链接至同一段DB2代码。V8之前,曾有两种实例类型:“DB2”类型和“DAS”类型。V8中已经除去了DAS类型的实例;它的功能已经被作为服务器进程集成到产品中了。和许多其它关系数据库管理系统(RDBMS)一样,DB2使用不同的机制来管理、监视和控制DB2系统的行为。这些机制包括:环境变量环境变量是在操作系统级别上定义的变量。例如,在Windows2000®平台中,您可以为一个变量创建新的项,或者通过选择ControlPanel--System--AdvancedTab--EnvironmentVariables来编辑现有变量的值。在UNIX中,您通常可以将安装了DB2之后所提供的脚本db2profile(Bourne或Kornshell)或db2cshrc(Cshell)添加到.login或.profileUNIX初始化文件中。db2profile/db2cshrc文件包含了“export”UNIX命令,这些命令能确保每次调用shell时就传递一个UNIX环境变量。最常使用的DB2环境变量是“DB2INSTANCE”变量。该环境变量允许您指定当前活动实例,所有命令都将应用于该实例。对于本例而言,如果将DB2INSTANCE设置成“MyInst”,那么发出命令“create第7页共61页databasemydb”会创建出与实例“MyInst”相关的数据库。但是如果您想创建与实例“DB2”相关的该数据库,那么首先您必须将DB2INSTANCE变量的值更改成“DB2”。使用控制面板(在Windows中)/db2profile(在UNIX中)来设置环境变量的值,将保证您下次打开窗口/会话时该值不变;但是,如果您想在给定的窗口/会话中临时更改该值,那么在Windows中您可以使用操作系统的“set”命令,或者在UNIX中使用“export”命令。例如,在Windows平台中,下面这个命令:setDB2INSTANCE=DB2会将环境变量DB2INSTANCE的值设置成“DB2”。使用set命令时常犯的错误是在等号(=)前后留有空格。绝对不能有空格!要查看该变量的当前设置,您可以使用下面三个方法中的任何一个:echo%DB2INSTANCE%(Windowsonly)setDB2INSTANCEdb2getinstance要获取系统中您可以执行的所有可用实例的列表,请发出下面这个命令:db2ilistDB2概要注册表在Windows平台上使用DB2时,单词“注册表(Registry)”的使用往往会造成混淆。DB2概要注册表(ProfileRegistry)变量与第8页共61页Windows注册表变量没有任何关系。过去,对某些环境变量进行更改时,会要求用户重新引导机器。如果所有DB2变量都已被定义成环境变量,那么对变量值进行更改将会很麻烦。因此,当时决定将大多数DB2变量组成一个专门的DB2注册表,在其中进行更改无需重新引导机器。DB2概要注册表分成四类;但是下面这两个是最常用的:DB2全局级概要注册表(Global-LevelProfileRegistry)DB2实例级概要注册表(Instance-LevelProfileRegistry)两者的主要区别(您从它们的名称就可以看出)是变量适用的级别。全局级概要注册表变量的值适用于所有实例。因此,可以从图中看到,该注册表画在了两个实例框的外面。实例级概要注册表变量的值适用于特定的实例。因此,您可以看到图中那两个实例每个内部都有单独的“Instance-Leve