内容


DB2 10.1 for Linux, UNIX, and Windows DBA 认证考试 611 备考教程,第 1 部分

服务器管理

DB2 认证考试 611 服务器管理

Comments

系列内容:

此内容是该系列 # 部分中的第 # 部分: DB2 10.1 for Linux, UNIX, and Windows DBA 认证考试 611 备考教程,第 1 部分

敬请期待该系列的后续内容。

此内容是该系列的一部分:DB2 10.1 for Linux, UNIX, and Windows DBA 认证考试 611 备考教程,第 1 部分

敬请期待该系列的后续内容。

开始之前

了解您期望从这个教程中学到什么,以及如何更好地掌握这些内容。

关于本系列

如果您正准备参加 DB2 10.1 for Linux, UNIX, and Windows DBA 认证考试(考试 611),那您就来对地方了。“DB2 10.1 for Linux, UNIX, and Windows DBA 认证考试 611” 系列由 8 个教程组成,介绍考试必须知道的所有主要概念和主题。即使您不打算马上参加认证考试,这套教程中提供的信息也有助于您了解 DB2 10.1 for Linux, UNIX, and Windows 中可用的许多新特性和功能。

关于本教程

DB2 10.1 for Linux, UNIX, and Windows DBA 认证考试 611 的 10% 旨在测试服务器管理能力。本教程通过提供有关如何配置和管理 DB2 数据服务器、实例和数据库的信息,介绍 DB2 Server 管理主题。它还将介绍如何使用自主功能,调度作业,以及如何组合使用 Visual Explain 和 IBM data Studio。要更深入地了解服务器管理,请参见 参考资料部分。

目标

在完成本教程之后,您应该更好地了解以下主题:

  • 演示配置和管理 DB2 数据服务器、实例和数据库的能力。
  • 演示使用自主计算的能力。
  • 演示使用 IBM Data Studio 的能力。
    • 演示调度作业的能力。
    • 演示使用 Visual Explain 的能力。

还可以在 IBM 认证网站找到这些目标,该网站位于 考试目标中的 Section 1 – DB2 Server Management下面。

大约 10% 的考试内容涵盖本部分列出的主题。

先决条件

了解本教程的内容需要下列主题的相关知识:

  • DB2 数据服务器、实例、数据库
  • DB2 数据库备份和恢复
  • REORG 和 RUNSTATS 操作
  • 自调优内存管理器(Self-tuning memory manager,STMM)
  • 数据压缩
  • Configuration Advisor
  • DB2 Explain 和 Design Advisor
  • IBM Data Studio

系统要求

要运行本教程提供的示例和命令,则需要访问 DB2 10.1 数据库。如果不能进行此类访问,则可以下载 DB2 10.1的试用版,并免费下载 IBM data Studio以供个人使用。

配置和管理 DB2 服务器、实例和数据库

DB2 数据服务器

DB2 数据服务器指运行受支持的操作系统且安装了 DB2 for Linux, UNIX, and Windows 的计算机。DB2 数据服务器是一个 RDBMS,其中数据保存在页面和容器中。它还包含基于实际数据库使用和工具的优化 SQL 支持,以帮助管理数据。

DB2 数据服务器具有注册表和环境变量、一个或多个实例,以及一个实例中的一个或多个数据库。本部分介绍下图所示的所有组件。

图 1. DB2 数据服务器
DB2 数据服务器图
DB2 数据服务器图

DB2 实例

DB2 实例提供一个独立的环境,可以在这里创建数据库对象并运行应用程序。可以在一台服务器上创建几个实例,并且每个实例可以有多个数据库。由于这些独立的环境,一个实例无法 “看到” 另一个实例的内容。因此,相同名称的对象可以存在于两个或多个实例中。根据使用和服务水平协议,可以不同的方式设置每个实例的配置和维护。

创建实例

操作系统不同,创建实例的步骤也不同。

在 Windows 操作系统上创建实例

要创建实例,从 DB2 命令窗口发出 db2icrt命令,如下所示:

db2icrt instance_name

此命令在 SQLLIB 目录下创建一个子目录,名称为刚才创建的实例名称。此外,会创建一个名为 DB2 – db2copy_name – instance_ name的 Windows 服务。DB2 总是先于任何相关的 Windows 服务名称。

在 Linux 和 UNIX 操作系统上创建实例

要创建实例,发出 db2icrt命令,如下所示:

cd $DB2DIR/instance/
db2icrt -u fenced_user_ID instance_name

您必须让根证书颁发机构或系统管理员为您运行 db2icrt命令。

db2icrt命令在用户实例名称的主目录下创建子目录 SQLLIB。

DB2 on Linux and UNIX 还需要受保护用户 (fenc_name) 在一个单独的地址空间(DB2 数据库管理器使用的地址空间除外)运行用户定义的例程,比如存储过程和用户定义的功能 (UDF)。这样做会确保这些对象的问题不会影响数据库或实例。这保护了数据库管理器免受意外或恶意用户定义的例程损害。

删除实例

要删除实例,发出 db2idrop命令,如下所示:

cd $DB2DIR/instance/
db2idrop instance_name

在调用此命令之前,一定要停止所有数据库并备份它们。

列出、更新和升级实例

通过运行下列 DB2 命令,可以列出服务器上正在运行的所有实例:

db2ilist

为 DB2 数据服务器安装修复包或补丁时,必须更新现有实例,以让它们在新修复包版本或补丁上运行。使用下列 DB2 命令更新实例:

db2iupdt instance_name

使用 db2ckupgradedb2iupgrade命令来验证实例已准备从一个版本升级到新版本,并且实例已经升级到新版本。db2ckmigrdb2imigr命令已停止使用。

连接到实例和分离实例

在发出某些 DB2 命令之前,必须连接到一个实例。要连接到一个实例,请发出以下 DB2 命令:

db2 attach to instance_name

要分离实例,请发出 db2idrop命令,如下所示:

db2 detach

此外,可以发出 db2start命令来启用实例,并发出 db2stop命令来停止实例。

要运行管理实例的任意 DB2 命令,则需要特别授权,比如实例所有者。有关详细信息,请参见 DB2 命令参考。

设置 DB2 环境

恰当的 DB2 环境设置非常重要,因为它控制 DB2 数据服务器如何运行和发挥作用。DB2 环境由下列内容组成:

  • DB2 配置文件注册表
  • 操作系统环境变量
  • DB2 数据库管理器配置参数
  • DB2 数据库配置参数
图 2. DB2 数据服务器环境
DB2 数据服务器环境的图
DB2 数据服务器环境的图

设置注册表变量

DB2 配置文件注册表由影响 DB2 数据服务器管理、配置和性能的注册表变量组成。通常需要停止和重启实例,这样对注册表变量进行的更改才会生效。

要列出所有支持的注册表变量,请发出以下命令:

db2set -lr

要设置注册表变量,请发出以下命令:

db2set registry_variable=value

注意,变量名称、等号和变量值之间没有空格。下列示例将 DB2COMM 注册表变量设置为一个值:

db2set DB2COMM=TCPIP

下列示例显示了如何将 DB2COMM 注册表变量设置为多个值:

db2set DB2COMM=TCPIP,NPIPE,LOCAL

要将注册表变量重置为其默认值,只需发出 db2set命令,不需要在 = 后指定值,如下所示:

db2set registry_variable=

要显示服务器上当前设置的所有注册表变量,请发出以下命令:

db2set -all

下列文本是发出此命令时所获得的输出示例:

[e] DB2PATH=C:\Program Files\IBM\SQLLIB_01 
 [i] DB2ACCOUNTNAME=IBM-TP101\kkohli 
 [i] DB2INSTOWNER=IBM-SB2QTSR5RSN 
 [i] DB2PORTRANGE=60001:60004 
 [i] DB2INSTPROF=C:\Program Files\IBM\SQLLIB_01 
 [i] DB2COMM=TCPIP,NPIPE,LOCAL 
 [g] DB2_EXTSECURITY=YES 
 [g] DB2SYSTEM=IBM-TP101 
 [g] DB2PATH=C:\Program Files\IBM\SQLLIB_01 
 [g] DB2INSTDEF=DB2V

方括号 ( [ ] ) 中的指示符表示注册表变量的范围,如下所示:

  • [e] 表示当前会话或环境的注册表变量设置
  • [u] 表示用户级别的注册表变量设置
  • [n] 表示节点级别的注册表变量设置
  • [i] 表示实例级别的注册表变量设置
  • [g] 表示全局级别的注册表变量设置

设置系统环境变量

大多数 DB2 环境设置由 DB2 配置文件注册表中的注册表变量控制。那些没有保存在配置文件注册表中的变量被称为操作系统环境变量。设置系统变量的命令将因操作系统和安装 DB2 数据服务器的 UNIX shell 的不同而不同。下面是一些将 DB2INSTANCE 变量设置为 PROD实例名称的实例:

  • 对于 Windows 操作系统,命令是 set DB2INSTANCE=PROD
  • 对于 Linux 和 UNIX 操作系统中的 Korn shell,命令是 export DB2INSTANCE=PROD

DB2INSTANCE 是一个值得注意的重要系统变量。它指定默认 DB2 实例或当前应用程序会话的实例。设置了此变量后,会在该实例范围内执行所有后续 DB2 命令。

要找出正在使用的 DB2 实例,请发出 GET INSTANCE命令。下列文本显示了此命令的示例输出:

当前的数据库管理器实例是:DB2V

连接到实例和分离实例

设置数据库管理器和数据库配置参数

可以在数据库管理器(实例)级别和数据库级别设置配置参数。在数据库管理级别,可以为实例配置整个 DB2 环境。这些设置会影响该实例中的所有数据库和在此实例中使用数据库的所有应用程序。在数据库级别配置参数会影响访问此特定数据库的所有应用程序的行为。可以使用 IBM Data Studio 或 DB2 命令行处理器 (CLP) 来设置数据库管理器 (DBM) 和数据库 (DB) 配置参数,并显示其当前设置。

使用 IBM Data Studio 显示配置参数设置

要查看 DBM 配置参数,请打开 Administration Explorer并右键单击实例名称。然后,选择 Configure,如 图 3所示:

图 3. 在 Administration Explorer 中显示 DBM 配置参数
显示 DBM 配置参数的 Administration Explorer 的图
显示 DBM 配置参数的 Administration Explorer 的图

要查看 DB 配置参数,请打开 Administration Explorer,右键单击数据库名称,并选择 Set Up and Configure。然后选择 Configure,如下图所示:

图 4. 在 Administration Explorer 中显示 DB 配置参数
显示 DB 配置参数的 Administration Explorer 的图
显示 DB 配置参数的 Administration Explorer 的图

使用 DB2 CLP 显示配置参数与设置

要查看 DBM 和 DB CFG 配置参数,请发出以下命令:

db2 get dbm cfg
db2 get db cfg for database_name

对于 windows 操作系统,必须使用 DB2 命令窗口来发出 DB2 CLP 命令。

使用 IBM Data Studio 更新 DBM and DB 配置参数设置

要更新 DBM 或 DB 配置参数的值,请按照 使用 IBM Data Studio 显示配置参数设置中所示的步骤来运行 Configure操作。然后,查找想要更改的参数并在 Pending Value列中输入新值。图 5显示了如何修改数据库配置参数设置:

图 5. 在 Administration Explorer 中更新 DB 配置参数
更新 DB 配置参数的 Administration Explorer 的图
更新 DB 配置参数的 Administration Explorer 的图

单击 Preview Command以验证将发出的 DB2 命令。然后,单击 Run按钮以发出此命令。使用鼠标悬停在配置参数上将显示参数是什么及其目的。一些配置参数无法动态更改,并在 Value(当前)和 Pending Value列中显示不同的值。挂起值是在下一次停止和重新启动实例或数据库时设置的新值。Pending Value列还显示新值生效的时间。

使用 DB2 CLP 更新 DBM 和 DB 配置参数设置

要更新 DBM 和 DB CFG 配置参数,请发出以下命令:

db2 update dbm cfg using parameter_name new_value 
 db2 update db cfg for database_name using parameter_name new_value

大多数配置参数均可在实例或数据库保持运行的情况下联机设置。只要可能,对这些联机配置参数的更改默认为立即生效。例如,如果更改 sortheap数据库配置参数的值,则所有新 SQL 语句将使用此新值。要显式指定该更改立即生效,可将 IMMEDIATE关键字附加到 UPDATE DBMUPDATE DB命令:

db2 update dbm cfg using parameter_name new_value immediate
 db2 update db cfg for database_name using parameter_name new_value immediate

如果您选择将此更改延迟至实例重启或数据库激活时,则应指定 DEFERRED关键字,如下列示例所示:

db2 update dbm cfg using parameter_name new_value deferred
 db2 update db cfg for database_name using parameter_name new_value deferred

在 IBM Data Studio 中,清除 immediate 列的复选框并使用 Preview Command确认 DEFERRED关键字已经添加到了命令中。参见 图 5。

要列出 dbm 配置参数的当前值和延迟值,请发出以下命令:

db2 attach to instance_name
 db2 get dbm cfg show detail

图 6显示了一个示例,更新 numdb数据库管理器配置参数并使用 db2 get dbm cfg show detail命令来在命令输出中检查配置参数的当前值和延迟值:

图 6. DBM 配置参数细节列表
DBM 配置参数细节列表的图
DBM 配置参数细节列表的图

要列出数据库配置参数的当前值和延迟值,请发出以下命令:

db2 connect to database_name 
 db2 get db cfg for database_name show detail

图 7显示了一个示例,更新 dft_queryopt数据库配置参数并使用 db cfg for database_name show detail命令来在命令输出中检查参数的当前值和延迟值:

图 7. DB 配置参数细节列表
DB 配置参数细节列表的图
DB 配置参数细节列表的图

如果无法联机配置 DBM 或 DB 配置参数,则 DBM 或 DB 配置参数的更改就无法立刻生效,并且会返回以下警告信息:

SQL1362W One or more of the parameters submitted for immediate modification were not 
 changed dynamically. Client changes will not be effective until the next time the 
 application is started or the TERMINATE command has been issued. Server changes will 
 not be effective until the next DB2START command.

如果想要更改立刻生效,那么必须重新启动实例或数据库。如果有应用程序连接到数据库,则在使用下列 DB2 命令重新启动数据库或实例之前必须终止到数据库的所有连接:

db2 force applications all
db2stop force
db2start

要终止具体应用程序的数据库连接,首先通过发出以下命令来确定其 Application Id

db2 list applications

然后,发出 db2 force  applications命令来指定在上一步中找到的 Application Id。

清单 1显示了 db2 list applications命令及其输出的示例:

清单 1. 连接到 DB2 数据库的应用程序列表
C:\>db2 list applications 

 Auth Id  Application    Appl.      Application Id                 DB       # of 
         Name           Handle                                    Name    Agents 
 -------- -------------- ---------- ------------------------------ -------- ----- 
 DB2ADMIN db2bp.exe      7688       *LOCAL.DB2.131122170320        SAMPLE   1 
 DB2ADMIN db2jcc_applica 7628       9.26.41.88.51940.131122161832  SAMPLE   1 
 DB2ADMIN db2jcc_applica 7627       9.26.41.88.51941.131122161831  SAMPLE   1

要终止如 清单 1所示的最后两个应用程序的数据库连接,请发出以下命令:

db2 force applications ( 12635, 12619 )

DB2 自主计算能力

DB2 自主计算环境是自我配置、自我修复、自我优化且自我保护的。通过自动感应和响应情况,这些自主计算能力明显降低了管理 DB2 环境的开销。默认启用了以下的一些功能,而其他功能则必须手动启用。

  • 自调优内存管理器 (STMM)
  • 自动存储
  • 数据压缩
  • 自动维护
    • 自动数据库备份
    • 自动重组
    • 自动统计数据收集
  • Configuration advisor
  • 实用程序节流

自调优内存管理器 (STMM)

通过自动设置几个内存配置参数的值,内存优化功能简化了内存配置任务。在启用时,内存调优器会动态地将可用的内存资源分配给多个内存消耗者,比如缓冲池、锁定内存、包缓存和排序内存。最重要的是,STMM 不需要任何 DBA 干预就能根据工作负载变化调优内存参数。

可以使用下列可自动调优且与内存相关的数据库配置参数来启用内存区域或消耗者:

  • database_memory - 数据库共享的内存大小
  • locklist - 锁列表的最大存储
  • maxlocks - 升级之前锁列表的最大百分比
  • pckcachesz - 包缓存大小
  • sheapthres_shr - 共享排序的排序堆阈值
  • sortheap - 排序堆大小

要启用缓冲池作为内存区域,请使用 ALTER BUFFERPOOL 或 CREATE BUFFERPOOL 语句的 AUTOMATIC 值指定大小。

启用 STMM

可以通过 self_tuning_mem数据库配置参数启用 STMM。然后启用几个内存区域的自我调优。

首先,将 self_tuning_mem数据库配置参数设置为 ON,如下所示:

db2 "connect to KKOHLI"
 db2 "update db cfg for KKOHLI using self_tuning_mem ON

此外,更改 IBM Data studio 的 Administration Explorer 的 Modifying Database Configuration database parameters窗口中的 Pending Value,如 图 8所示。

图 8. 设置 self_tuning_mem数据库配置参数
设置 self_tuning_mem 数据库配置参数的图
设置 self_tuning_mem 数据库配置参数的图

单击 Preview Command以验证将发出 DB2 命令。然后单击 Run按钮以发出此命令。

通过将相关的配置参数设置为 AUTOMATIC,启用由内存配置参数控制的 STMM 内存区域,如下所示:

db2 "connect to KKOHLI"
 db2 "update db cfg for KKOHLI using PCKCACHESZ AUTOMATIC"
 db2 "update db cfg for KKOHLI using LOCKLIST AUTOMATIC"
 db2 "update db cfg for KKOHLI using MAXLOCKS AUTOMATIC"
 db2 "update db cfg for KKOHLI using SORTHEAP AUTOMATIC"
 db2 "update db cfg for KKOHLI using SHEAPTHRES_SHR AUTOMATIC"
 db2 "update db cfg for KKOHLI using DATABASE_MEMORY AUTOMATIC"

通过创建或修改现有缓存池来启用缓冲池内存的自我调优,如下所示:

  • 创建指定 UTOMATIC 大小的缓冲池,如下列示例所示:
    db2 "connect to KKOHLI"
     db2 "create bufferpool bpool8k size AUTOMATIC pagesize 8 k"
  • 将现有缓冲池从 AUTOMATIC 更改为指定大小,如下列示例所示:
    db2 "connect to KKOHLI"
     db2 "alter bufferpool bpool4k size AUTOMATIC"

禁用 STMM

要禁用 STMM,只需将 self_tuning_mem数据库配置参数设置为 OFF,如下所示:

db2 "connect to KKOHLI"
 db2 "update db cfg for KKOHLI using self_tuning_mem OFF

此外,在 IBM Data studio 的 Administration Explorer 的 Modifying Database Configuration database parameters窗口中,启用内存区域,如 图 8所示。

在 STMM 中禁用内存区域

要禁用由内存配置参数控制的 STMM 的内存区域,将相关配置参数设置为 MANUAL,如下所示:

db2 "connect to KKOHLI"
 db2 "update db cfg for KKOHLI using PCKCACHESZ MANUAL"
 db2 "update db cfg for KKOHLI using LOCKLIST MANUAL"
 db2 "update db cfg for KKOHLI using MAXLOCKS MANUAL"
 db2 "update db cfg for KKOHLI using SORTHEAP MANUAL"
 db2 "update db cfg for KKOHLI using SHEAPTHRES_SHR MANUAL"
 db2 "update db cfg for KKOHLI using DATABASE_MEMORY MANUAL"

此外,在 IBM Data studio 的 Administration Explorer 的 Modifying Database Configuration database parameters窗口中禁用内存区域,如 图 8所示。

要禁用缓冲池内存的自我调优:

  • 创建指定大小的缓冲池,并且不要使用 AUTOMATIC 值,如下列示例所示:
    db2 "connect to KKOHLI"
     db2 "create bufferpool bpool8k size 1000 pagesize 8 k"
  • 将现有缓冲池从 AUTOMATIC 修改为特定大小,如下列示例所示:
    db2 "connect to KKOHLI"
     db2 "alter bufferpool bpool4k size 1000"

自动存储

自动存储是自主计算下包含的第二个部分,因为它为您处理数据库存储。它还会简化表空间的存储管理。

可以创建由路径(数据库管理器在此放置数据)组成的存储组。然后,在创建表并填充表时,数据库管理器管理表空间的容器和空间分配。在创建数据库时可以指定默认存储组的路径。

默认情况下,所有数据库创建时都具有自动存储和一个默认的存储组。但是,如果通过指定 AUTOMATIC STORAGE NO子句创建数据库,则无法使用自动存储表空间。但是,此子句已启用并且在未来的版本中可能无法使用。

要在 DB2 数据库中管理自动存储:

  • 使用 AUTOMATIC STORAGE YES子句来创建启用了自动存储的数据库。

    下列示例显示了如何创建此类数据库:

    db2 CREATE DATABASE "kkohli" AUTOMATIC STORAGE YES ON '/data' DBPATH ON '/data' ;
  • 使用 ON 子句来创建具有多个存储路径的数据库。

    随着数据库的扩大,数据库管理器跨这些存储路径创建容器,并根据需要自动扩展它们或创建新的容器。下列示例显示了如何创建具有三个存储路径的数据库:

    db2 CREATE DATABASE "kkohli" AUTOMATIC STORAGE YES ON '/data', '/logs', '/bkp'
        DBPATH ON '/data' ;
  • 使用 CREATE STORAGE命令来添加新存储组或启用自动存储。

    下列示例显示了如何创建存储组,其中 operational_sg 是存储组的名称,而 '/data'、'/data'、'/logs' 、'/bkp' 是要添加的存储路径:

    db2 create stogroup operational_sg ON '/data', '/data', '/logs', '/bkp' 
  • 使用 AUTOMATIC STORAGE NO子句来创建不启用自动存储的数据库。

    下列示例显示了如何创建此类数据库:

    db2 CREATE DATABASE "kkohli" AUTOMATIC STORAGE NO ON '/data' ;
  • 使用 ADMIN_GET_STORAGE_PATHS 管理视图来列出数据的存储数据。下列示例显示了如何使用此视图来列出当前连接的数据库的所有存储路径和 SAMPLE 数据库的结果:
    SELECT VARCHAR(STORAGE_GROUP_NAME, 30) AS STOGROUP, VARCHAR(DB_STORAGE_PATH, 40) 
        AS STORAGE_PATH FROM TABLE(ADMIN_GET_STORAGE_PATHS('',-1)) AS T 
                
     STOGROUP    STORAGE_PATH 
     ----------- ------------ 
     IBMSTOGROUP C:

自动存储表空间

创建的任意表空间都作为自动存储表空间进行管理,除非另外指定,或者使用 AUTOMATIC STORAGE NO 子句创建了数据库。使用自动存储表空间,不需要提供容器定义。数据库管理器要求创建和扩展容器以利用分配给数据库的存储。

下列示例显示了如何创建自动存储表空间:

  • CREATE TABLESPACE TS1
  • CREATE TABLESPACE TS2 MANAGED BY AUTOMATIC STORAGE
  • CREATE TEMPORARY TABLESPACE TEMPTS
  • CREATE USER TEMPORARY TABLESPACE USRTMP MANAGED BY AUTOMATIC STORAGE
  • CREATE LARGE TABLESPACE LONGTS
  • CREATE TABLESPACE TS3 INITIALSIZE 8K INCREASESIZE 20 PERCENT MANAGED BY AUTOMATIC STORAGE
  • CREATE TABLESPACE TS4 MAXSIZE 2G
  • CREATE TABLESPACE TS5 USING STOGROUP SG_HOT

这些示例假设在定义了一个或多个存储组的数据库中创建表空间。在没有定义存储组的数据库中创建表空间时,不能使用 MANAGED BY AUTOMATIC STORAGE 子句。您必须创建一个存储组,然后创建自动存储表空间。

数据压缩

通过使用 DB2 for Linux, UNIX, and Windows 内置的压缩功能,可以减少表格、索引和备份图像的大小,因此减少了数据所需的存储。DB2 中可用的压缩类型有:

  • 表压缩
  • 索引压缩
  • 备份压缩

表压缩

使用 COMPRESS YES 子句创建或修改表时,可以在 DB2 数据库中启用数据行压缩。

  • 下列示例显示了如何创建一个启用了行压缩的新表:

    db2 CREATE TABLE Sales COMPRESS YES

  • 下列示例显示了如何启用现有表的行压缩:

    db2 ALTER TABLE Sales COMPRESS YES

构建了表字典(通常在表重组期间进行)后,压缩才生效。下列示例显示了使用 REORG TABLE命令如何构建压缩字典:

db2 REORG TABLE Sales RESETDICTIONARY

但是,下一次运行 REORG TABLE命令时,必须添加 KEEPDICTIONARY子句以保持压缩字典。下列示例显示了如何使用此子句:

db2 REORG TABLE Sales KEEPDICTIONARY

表重组完成后,表可以利用压缩的优势,比如更少的 I/O 和存储空间。

可以使用 INSPECT命令来评估行压缩节省的存储。下列示例显示了如何评估这些存储节省:

db2 INSPECT ROWCOMPESTIMATE TABLE NAME Sales SCHEMA KK 
    RESULTS KEEP inspect_out.txt 
 db2inspf inspect_out.txt db2inspf_out.txt

INSPECT命令分析整个表并评估节省的空间数量。但是,必须通过运行 db2inspf命令来将 INSPECT命令的输出格式化为可读文本。

索引压缩

默认情况下,压缩表启用了索引压缩,而未压缩的表则禁用了索引压缩。可以使用 CREATE INDEX语句的 COMPRESS YES子句重写此默认行为,如下列示例所示:

db2 CREATE INDEX IX_kohli ON sales (ACTUAL_TYPE, VERSION) 
    ALLOW REVERSE SCANS PAGE SPLIT SYMMETRIC COLLECT SAMPLED DETAILED STATISTICS 
    COMPRESS YES

也可以使用 ALTER INDEX语句的 COMPRESS YES子句来启用现有索引的索引压缩,如下列示例所示:

db2 ALTER INDEX DB2ADMIN.IDX_ABSTRCOMPLISTSPEC_KINDID COMPRESS YES

在创建或修改索引时,使用 COMPRESS NO子句可以禁用索引压缩。启用或禁用了索引压缩后,则必须执行索引重组来重建索引。以下限制适用于索引压缩:

  • 块索引和 XML 路径索引不支持索引压缩
  • 索引规范不能压缩
  • 临时表上的索引压缩属性不能使用 ALTER INDEX命令进行更改。

备份压缩

可以使用备份压缩来减少数据库备份的大小。要压缩备份,请在 BACKUP DATABASE命令中使用 COMPRESS子句,如下列示例所示:

db2 BACKUP DATABASE KKOHLI COMPRESS

尽管可以对使用行压缩和索引压缩的表应用备份压缩,但是仅对没有使用压缩的表应用备份压缩,因为压缩需要更多的资源和时间。尤其是这些表包含与 LOB 和长字段数据无关的索引对象时。

自动维护

在执行数据库备份,保持统计数据最新,以及重组表和索引时,数据库管理器提供了自动维护功能。这些活动是改进性能和可恢复性所必需的。可以使用数据库配置参数来启用或禁用特定功能。下列文本是 GET DB CFG命令的摘录,显示了自动维护及其层次结构的所有数据库配置参数列表:

Automatic maintenance                      (AUTO_MAINT) = ON                         ON 
   Automatic database backup            (AUTO_DB_BACKUP) = OFF                        OFF 
   Automatic table maintenance          (AUTO_TBL_MAINT) = ON                         ON 
     Automatic runstats                  (AUTO_RUNSTATS) = ON                         ON 
       Real-time statistics            (AUTO_STMT_STATS) = ON                         ON 
       Statistical views              (AUTO_STATS_VIEWS) = OFF                        OFF 
       Automatic sampling                (AUTO_SAMPLING) = OFF                        OFF 
     Automatic statistics profiling    (AUTO_STATS_PROF) = OFF                        OFF 
       Statistics profile updates        (AUTO_PROF_UPD) = OFF                        OFF 
     Automatic reorganization               (AUTO_REORG) = OFF                        OFF

AUTO_MAINT 配置参数是层次结构中的最高层次并且是主开关。如果将它设置为 OFF,则无论任意子配置参数中的值是什么,都会禁用所有自动维护功能。要启用指定的自动维护功能,则相应的数据库配置参数和所有更高级开关都必须设置为 ON。

例如,要启用自动表重组,则必须使用 DB2 CLP 将 auto_maintauto_tbl_maintauto_reorg数据库配置参数设置为 ON,如下列示例所示:

db2 CONNECT TO kkohli 
          db2 UPDATE DB CONFIG USING AUTO_MAINT ON AUTO_TBL_MAINT ON AUTO_RUNSTATS ON

还可以使用 IBM Data Studio 来配置自动维护功能,方法是连接到数据库,并使用 Administration Explorer 中的 Configure Automatic Maintenance任务助手,如 图 9所示:

图 9. 配置 Automatic Maintenance 任务助手
Configure Automatic Maintenance task assistant
Configure Automatic Maintenance task assistant

此外,可以设置联机维护窗口和脱机维护窗口来定义执行维护活动的时间。此外,可以使用 DB2 CLP 或 IBM Data Studio 定义备份、重组和重启策略。图 10显示了在 Configure Automatic Maintenance任务助手中定义数据库备份策略的步骤:

图 10. 在 Configure Automatic Maintenance 任务助手中定义备份策略的步骤
定义备份策略的步骤
定义备份策略的步骤

完成选择后,单击 Preview Command以验证发出了 DB2 命令。然后,单击 Run按钮以发出命令。

Configuration advisor

可以使用 Configuration Advisor 获取有关缓冲池大小、数据库配置参数和数据库管理器配置参数的初始值的建议。

要运行 Configuration Advisor,从 DB2 CLP 发出 AUTOCONFIGURE命令。如下列示例所示,将 APPLY 关键字的值指定为 NONE 表示您想查看配置建议但并不想应用它们:

db2 CONNECT TO SAMPLE 
 db2 AUTOCONFIGURE USING 
    MEM_PERCENT 60 
    WORKLOAD_TYPE MIXED 
    NUM_STMTS 500 
    ADMIN_PRIORITY BOTH 
    IS_POPULATED YES 
    NUM_LOCAL_APPS 0 
    NUM_REMOTE_APPS 20 
    ISOLATION RR 
    BP_RESIZEABLE YES 
    APPLY NONE

AUTOCONFIGURE 命令生成的建议显示在命令输出中。图 11显示了 SAMPLE 数据库的这些建议的示例:

图 11. AUTOCONFIGURE 命令生成的建议
AUTOCONFIGURE 命令生成的建议
AUTOCONFIGURE 命令生成的建议

实用程序节流

可以使用节流实用程序限制生产工作负载的性能下降,方法是通过 util_impact_lim数据库管理器配置参数定义影响策略。然后,DBA 可以在关键生产时期运行联机实用程序,确保它们对生产工作的性能影响在可接受的限制内。对工作负载影响的默认值是 100%。

util_impact_lim设置为 1 到 10 之间的值会让大多数用户受益。例如,如果您想要将节流备份调用对生成工作负载的影响限制为 10%,则将 util_impact_lim的值设置为 10,如下所示:

db2 UPDATE DBM CFG USING util_impact_lim 10

IBM Data Studio

IBM Data Studio 包含在所有 DB2 10.1 版本中。IBM Data Studio 提供了一个集成环境,用于数据库管理和应用程序开发。可以在一个工具中执行任务,比如与数据库建模和设计相关的任务,开发数据库应用程序,管理数据库,优化 SQL 性能,以及监控数据库,这使它成为具有不同角色和责任的团队环境的理想选择。

IBM Data Studio 由下列组件组成:

  • IBM Data Studio 客户端,它是一种基于 Eclipse 的工具,提供了一种集成开发环境,用于数据库和实例管理,例程和 Java 应用程序开发和查询调优任务。
  • IBM Data Studio Web 控制台,它是一种基于 Web 的工具,用于执行运行状况和可用性监视任务、作业创建任务以及数据库管理任务。

这些是使用 IBM Data Studio 可以执行的一些任务:

  • 连接到数据库
  • 生成 DDL 脚本
  • 执行数据库开发任务
  • 调度作业
  • Visual Explain

本教程的下列部分显示了如何使用此工具执行这些任务的好示例。

连接到数据库

要对数据库执行任何任务,则必须首先建立数据库连接。

要创建数据库连接:

  • 打开 Database Administration Perspective,如 图 12所示:
    图 12. Database Administration 视图
    Database Administration 视图
    Database Administration 视图
  • 单击 Administration Explorer 工具栏中的 New Connection to a Database图标以添加一个新数据库连接。或者,右键单击 All Databases并选择 New Connection to a Database,如 图 13所示:
    图 13. 在 Administration Explorer 中添加一个新连接
    在 Administration Explorer 中创建一个新连接
    在 Administration Explorer 中创建一个新连接
  • 在如 图 14所示的 New Connection 窗口中,选择一个数据库管理器。可以从不同的 IBM 数据服务器和其他数据源选择。然后,从下拉菜单中选择恰当的 JDBC 驱动程序,并在 Properties中输入必要的连接信息。
    图 14. New Connection 窗口
    在 Administration Explorer 中创建新连接
    在 Administration Explorer 中创建新连接
  • 单击 Test Connection以验证可以使用指定的信息成功连接到数据库。测试连接成功之后,单击 Finish以创建连接。

生成 DDL 脚本

可以生成并运行 DDL 脚本,它创建数据库中的所有对象。

  • 右键单击数据库名称并选择 Connect
  • 右键单击数据库名称并选择 Generate DDL,如 图 15所示。
    图 15. 为数据库生成 DDL 脚本
    为数据库生成 DDL 脚本
    为数据库生成 DDL 脚本
  • Generate DDL窗口中选择选项,以确定在 DDL 脚本中包含哪些元素,如 图 16所示:
    图 16. Generate DDL 选项
    生成 DDL 选项
    生成 DDL 选项
  • 单击 Next并选择想为其生成语句的对象,如 图 17所示:
    图 17. 生成 DDL 对象
    生成 DDL 对象
    生成 DDL 对象
  • 单击 Next,指定脚本的位置和名称,并选择是运行生成的 DDL 脚本,还是在 SQL 编辑器中编辑它,如 图 18所示:
    图 18. 运行或编辑选项
    运行或编辑选项
    运行或编辑选项
  • 单击 Next并在 Summary 中检查您的选择。可以单击 Back来更改任何选择。在可以生成 DDL 脚本时单击 Finish,如 图 19所示:
    图 19. Generate DDL 中的 Summary
    Generate DDL 中的 Summary
    Generate DDL 中的 Summary
  • 完成更新后,使用 SQL编辑器编辑生成的 DDL 脚本并运行它们,如 图 20所示:
    图 20. SQL 编辑器中生成的 DDL 脚本
    SQL 编辑器中生成的 DDL 脚本
    SQL 编辑器中生成的 DDL 脚本

执行数据库开发任务

可以使用 IBM Data Studio 执行数据库开发任务,比如创建并运行 SQL 语句,开发存储过程和用户定义功能,以及开发数据库应用程序。

创建并运行 SQL 或 Xquery 语句

要创建和运行 SQL 或 Xquery 语句:

  • 单击 Task Launcher,如 图 21所示。或者,在 Help下选择 Task Launcher
    图 21. Task Launcher
    Task Launcher
    Task Launcher
  • 选择 Develop,然后单击 Create and run SQL or Xquery Statements,如 图 22所示:
    图 22. 创建并运行 SQL 或 Xquery 语句
    创建并运行 SQL 或 Xquery 语句
    创建并运行 SQL 或 Xquery 语句
  • 选择一个项目名称,为 DDL 脚本输入一个名称,并选择 SQL and XQuery editor,如 图 23所示:
    图 23. 使用 SQL 和 XQuery 编辑器创建 DDL 脚本
    创建并运行 SQL 或 Xquery 语句
    创建并运行 SQL 或 Xquery 语句

    单击 Finish,会打开 Select Connection Profile窗口,如 图 24所示。选择一个现有连接或创建一个新连接。
    图 24. 在 Data Explorer 中运行 DDL 脚本
    在 Data Explorer 中运行 DDL 脚本
    在 Data Explorer 中运行 DDL 脚本

    会打开 Data Project Explorer,如 图 25所示。开始使用它创建、保存和执行 SQL 脚本、存储过程和 UDF。
    图 25. 在 Data Explorer 中运行 DDL 脚本
    在 Data Explorer 中运行 DDL 脚本
    在 Data Explorer 中运行 DDL 脚本

    或者,如果您想使用 SQL Query Builder,则在选择项目名称并输入脚本名称之后,单击其单选按钮,如 图 26所示。SQL Query Builder提供的功能与 SQL and XQuery editor类似。
    图 26. 使用 SQL Query Builder 创建 DDL 脚本
    使用 SQL Query Builder 创建 DDL 脚本
    使用 SQL Query Builder 创建 DDL 脚本

    可以在 SQL Source 窗格(顶部)键入 SQL 语句,或使用 Tables 窗格(中间)选择表或在表之间定义连接以键入 SELECT 语句,如 图 27所示。还可以打开 Expression Builder 向导来引导您创建复杂的表达式。
    图 27. 使用 SQL Query Builder 运行 DDL 脚本
    使用 SQL Query Builder 运行 DDL 脚本
    使用 SQL Query Builder 运行 DDL 脚本
  • 单击下列其中一项来运行 SQL 语句:
    • Run> Run SQL
    • SQL> Run SQL
    • 主工具栏中的 Run the SQL Statement

调度作业

可以使用 IBM Data studio Web 控制台提供的图形界面来轻松创建、调度和管理 DB2 数据库的作业。

可以在作业管理中执行下列操作:

  • Job list页面手动添加、编辑、删除和运行作业。有关更多信息,请参见 创建作业。
  • Schedules页面添加、编辑和删除调度作业。还可以查看所有启用和禁用的作业。有关更多信息,请参见 调度作业。
  • 将作业以链的形式添加在一起。有关更多信息,请参见 将作业以链的形式添加在一起。
  • Notifications页面添加、编辑和删除作业通知。有关更多信息,请参见 设置作业通知。
  • History页面检查完成作业的状态。还可以检查其他信息,比如开始时间、结束时间和数据库名称。有关更多信息,请参见 查看作业历史记录。

创建数据库连接

需要数据库连接才能开始在 IBM Data Studio Web 控制台中管理作业。要创建数据库连接:

  • 单击 Open菜单并选择 Databases,如 图 28所示。或者,在 Task launcher 的 Getting Started 部分单击 Add database connections
    图 28. 打开数据库页面
    打开数据库页面
    打开数据库页面
  • Databases页面中单击 Add a Database Connection,如 图 29所示:
    图 29. 数据库连接页面
    数据库连接页面
    数据库连接页面
  • 在标有 * 字符的所有必填字段中填写信息,如 图 30所示:
    图 30. 添加数据库连接
    添加数据库连接
    添加数据库连接

    单击 Test Connection以验证使用指定的信息可以成功连接到数据库。测试连接成功之后,单击 OK
  • 检查 Databases页面列出的数据库连接,如 图 31所示:
    图 31. 数据库连接列表
    数据库连接列表
    数据库连接列表

创建了数据库连接后,则可以使用作业管理器开始调度这些数据库上的作业。

创建作业

要在 IBM Data Studio Web 控制台中打开 Job Manager页面:

  • 首先,打开 IBM Data Studio Web 控制台。
  • 单击 Open菜单并选择 Job Manager或在 Task Launcher 页面中单击 Manage database jobs,如 图 32所示:
    图 32. IBM Data Studio Web 控制台中的 Task launcher
    IBM Data Studio Web 控制台中的 Task launcher
    IBM Data Studio Web 控制台中的 Task launcher
  • Job Manager页面中单击 Add Job,如 图 33所示:
    图 33. Job Manager 页面
    Job Manager 页面
    Job Manager 页面
  • 输入作业信息,如 图 34所示:
    图 34. 添加作业
    添加作业
    添加作业
  • Job list页面中为新作业输入脚本并单击 Save All,如 图 35所示:
    图 35. 添加脚本
    添加脚本
    添加脚本
  • 为了测试,单击 Run Job以手动运行作业,而无需调度它,如 图 36所示:
    图 36. 运行作业
    运行作业
    运行作业

    选择想要运行作业的数据库,并单击 OK,如 图 37所示:
    图 37. 选择数据库来运行作业
    选择数据库来运行作业
    选择数据库来运行作业

    会打开一个信息框,告诉您已经启动了作业,并且将打开 History页面来检查作业状态,如 图 38所示:
    图 38. 选择数据库来运行作业
    选择数据库来运行作业
    选择数据库来运行作业

    History页面中,可以看到已经启动了作业,如 图 39所示:
    图 39. Job History
    Job History
    Job History

调度作业

调度定义何时运行作业,是否重复作业,以及调度运行次数或时间的限制。调度还与运行作业的一个或多个数据库相关。一个作业可以有任意数量的调度,但每个调度项只能应用于一个作业。要调度作业:

  • Job List页面选择要调度的作业,并单击 edit
  • 单击 Job Components中的 Schedules。然后,单击 Add Schedule,如 图 40所示:
    图 40. 为作业添加调度
    为作业添加调度
    为作业添加调度
  • 指定作业的开始日期和开始时间,如 图 41所示。如果想重复作业,则选择 Repeats复选框,并为作业设置重复参数。调度必须是活动的才能运行作业。
    图 41. 指定作业调度的参数
    指定作业调度的参数
    指定作业调度的参数
  • Databases页面中,根据想要调度此作业的位置指定一个或多个数据库,如 图 42所示:
    图 42. 选择作业调度的数据库
    选择作业调度的数据库
    选择作业调度的数据库
  • 单击 Apply ChangesSave All以保存对调度作业进行的所有更改。新调度将出现在 Schedules下拉列表中,如 图 43所示:
    图 43. 调度列表
    调度列表
    调度列表

将作业以链的形式添加在一起

将作业以链的形式添加在一起会创建一个序列,其中主要作业后紧跟基于其结果的次要作业,并且完成作业最后运行。

要将作业以链的形式添加在一起:

  • Job List页面中,选择添加到链的主要作业,并单击 Edit
  • Job Components中单击 Chain。然后,为想要添加到链的次要作业选择选项,如 图 44所示:
    图 44. Job Components 中的 Chain
    Job Components 中的 Chain
    Job Components 中的 Chain
  • 单击 Save All保存所有更改并将作业以链的形式添加在一起。现在选中作业会在 Chain 列中显示 Yes,如 图 45所示:
    图 45. Job list 中的链信息
    Job list 中的链信息
    Job list 中的链信息

设置作业通知

根据作业是成功还是失败,可以将电子邮件通知配置为发送给一个或多个用户。要设置电子邮件通知:

  • Job List页面中选择想要设置电子邮件通知的作业,并单击 Edit
  • Job Components中单击 Notifications。单击 Add Notification,如 图 46所示:
    图 46. 添加作业通知
    添加作业通知
    添加作业通知
  • 输入想要发送通知的电子邮件地址。如果需要,按照链接配置 Email Service。然后,指定数据库和通知标准,如 图 47所示:
    图 47. 指定 Job Notification 的信息
    指定 Job Notification 的信息
    指定 Job Notification 的信息
  • 单击 Apply ChangesSave All以完成通知设置。新通知将出现在 Notifications下拉列表中,如 图 48所示:
    图 48. 通知列表
    通知列表
    通知列表

查看作业历史记录

调度了作业后,可以使用 History页面来查看作业历史记录,并通过查看作业的日志项来获得详细信息。可以将作业管理器配置为获取已运行的所有作业的作业历史记录,或者根据作业成功与否获得一个子集。要查看作业历史记录:

  • Job Manager页面单击 History。作业历史记录视图显示作业结果的高级概述。可以打开每个作业的日志来了解更多详细信息。图 49显示了 History页面:
    图 49. Job History 页面
    Job History
    Job History

    本日志显示了作业脚本的输出,以及与作业相关的所有异常或其他信息。

Visual Explain

使用 Visual Explain,可以生成 SQL 或 XPATH 语句的当前访问计划图,以查明 SQL 编译器如何处理语句。可以使用此图的可用信息来优化 SQL 语句以改善其性能。

Visual Explain 需要一个配置数据库以启用查询调优的函数。在使用 Visual Explain 之前,需要激活 InfoSphere Optim Query Workload Tuner (OQWT) 许可证以执行高级调优功能。IBM DB2 Advanced Enterprise Server Edition 包含此工具的许可证。

要生成这些图:

  • Administration Explorer中右键单击数据库名称,并选择 Start Tuning来打开 Query Tuner Workflow Assistant,如 图 50所示:
    图 50. 开始在 Administration Explorer 中进行调优
    开始在 Administration Explorer 中进行调优
    开始在 Administration Explorer 中进行调优
  • Text of SQL Statement中输入 SQL 语句并单击 Invoke Advisors and Tools,如 图 51所示:
    图 51. Query Tuner Workflow Assistant
    Query Tuner Workflow Assistant
    Query Tuner Workflow Assistant

    在左侧面板的 DB2 for Linux, UNIX, and Windows sources下方,查看与调优相关的信息,比如 Package Cache、Package、Explain 表和事件监视器。

    此外,左侧面板还显示了 Capture部分是活动的。此向导的其他部分是 Status、Manage、Invoke、Review 和 Compare。

    Invoke部分,打开了 Run Single-Query Advisors and Analysis Tools页面。

  • Run Single-Query Advisors and Analysis Tools页面中单击 Select What to Run,如 图 52所示:
    图 52. Run Advisors and Analysis Tools
    Run Advisors and Analysis Tools
    Run Advisors and Analysis Tools
  • Select Activities窗口中选择 Display access plan graph并单击 OK,如 图 53所示:
    图 53. Run Advisors and Analysis Tools
    Run Advisors and Analysis Tools
    Run Advisors and Analysis Tools

    会打开一个显示 SQL 语句执行进度的窗口,它具有一个在后台运行语句的选项,如 图 54所示:
    图 54. 调优查询的进度
    Run Advisors and Analysis Tools
    Run Advisors and Analysis Tools

    此选项对长时间运行的查询有用。

  • 语句执行完成之后,在 Review部分的 Single Query下面选择 Open Access Plan Graph,以查看访问计划图,如 图 55所示:
    图 55. 访问计划的图
    访问计划的图
    访问计划的图

    在此图中,图中的节点表示表和索引,并且对它们进行的每次操作都是一个特定查询。节点之间的链接表示数据流。

  • Review部分的 Single Query下面选择 Open Summary Report,如 图 56所示:
    图 56. 访问计划的图
    访问计划的图
    访问计划的图

结束语

在本教程中,您学习了下列概念,以为 DBA 认证考试 611 做好准备:

  • 在 DB2 服务器中如何创建、列出、更新和删除实例。
  • 什么是注册表和环境变量,以及如何设置它们。
  • 如何设置数据库管理器和数据库配置参数。
  • 如何使用 IBM Data Studio 连接到数据库,以及设置数据库管理器和数据库配置参数。
  • 什么是自主计算,以及如何启用和禁用它。
  • 什么是 STMM、自动存储、自动维护、配置 Advisor 和实用程序节流。
  • 如何使用 IBM Data Studio 启用或禁用 STMM 和自动维护。
  • 如何使用 IBM Data Studio 查询 SQL 和 X 查询语句,以及如何使用查询编辑器工具。
  • 如何使用 IBM Data Studio Web 控制台创建、管理和调度作业。
  • 如何使用 Visual Explain 来生成访问计划的图。

有关帮助您为 DBA 认证考试 611 做好准备的更多信息,请参见 参考资料部分。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management, Linux
ArticleID=980706
ArticleTitle=DB2 10.1 for Linux, UNIX, and Windows DBA 认证考试 611 备考教程,第 1 部分: 服务器管理
publish-date=08142014