恰当地设置 DB2 环境非常重要,这是因为它控制着 DB2 操作和活动的方式。DB2 环境由以下几部分构成:
- DB2 配置文件注册库
- 操作系统环境变量
- DB2 数据库管理器配置参数
- DB2 数据库配置参数
DB2 配置文件注册库是特定于 DB2 的变量,它会影响 DB2 系统的管理、配置与性能。为使 DB2 配置文件注册库的更改生效,您通常需要停止并重启实例。
要列举所支持的全部 DB2 配置文件注册库:
db2set -lr |
要设置 DB2 配置文件注册库:
db2set registry_variable = value |
请注意,在变量名、等号和变量值之间没有空格。下面给出一个将 DB2COMM 注册库变量设置为单一值的示例:
db2set DB2COMM=TCPIP |
将 DB2COMM 注册库变量设置为多个值的示例如下:
db2set DB2COMM=TCPIP,NPIPE,LOCAL |
要将 DB2 配置文件注册库重置为默认值,只需使用与上面相同的命令即可,但不指定任何值:
db2set registry_variable = |
要显示服务器上当前设置的所有 DB2 配置文件注册库,请执行以下命令:
db2set -all |
您将看到形式如下的输出结果:
[e] DB2PATH=C:\Program Files\IBM\SQLLIB_01 [i] DB2ACCOUNTNAME=IBM-TP101\dwsnow [i] DB2INSTOWNER=IBM-SB2QTSR5RSN [i] DB2PORTRANGE=60001:60004 [i] DB2INSTPROF=C:\PROGRA~1\IBM\SQLLIB~1 [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 配置文件注册库控制的。而那些未存储在配置文件注册库中的设置称为操作系统环境变量。设置系统变量的命令将根据您所使用的平台及 UNIX shell 而有所不同。
下面给出几个示例:
- 在 Windows 中:
set DB2INSTANCE=PROD - 在 Linux 和 UNIX 的 Korn shell 中:
export DB2INSTANCE=PROD
DB2INSTANCE 是一个需要掌握的重要系统变量。它指定当前应用程序的会话或窗口的默认 DB2 实例。一旦设置好该变量,后续的所有 DB2 命令都将在该实例的作用域内执行。
要了解您当前工作在哪个 DB2 实例中,可运行以下 DB2 命令:
get instance |
举个例子,为此,您只要运行以下命令即可:
db2 get instance |
此命令的输出结果形式如下:
The current database manager instance is: DB2V |
在 DB2 中,存在两个配置 “级别”。在实例(或数据库管理器)级别,您可为该实例配置整个 DB2 环境,这将影响实例中的所有数据库和使用该实例中数据库的所有应用程序。在数据库 级别,您可配置参数,而这些参数将影响到访问特定数据库的所有应用程序的行为。关于参数的更多信息,请参阅 Monitoring DB2 activity 教程。数据库管理器、数据库配置参数及其值均可使用 DB2 Control Center 或 DB2 命令查看及设置。
在 Control Center 中,右击需要配置或更改的实例或数据库,选择 Configure Parameters。您将看到一个配置参数的列表,并带有简短的描述、其当前及挂起值,如下所示。

您还可通过使用如下 DB2 命令获得相同的输出结果:
db2 get database manager configuration db2 get database configuration for database_name |
要更新 Control Center 中数据库管理器或数据库配置参数的值,打开 DBM 或 DB Configuration 窗口。找到您想要更改的参数,然后双击其值。单击 ‘…’ 图标将打开一个包含如何设置变量的提示以及允许范围说明的窗体。
若参数值可立即或动态更改,则在您单击 OK 后,更改立即生效。部分重要性较低的参数无法动态更改,在这种情况下,您将看到其当前值与挂起值不同。挂起值是新值,将在该实例或数据库下一次停止并重启后应用。Pending Value Effective 列告诉您新值将在何时生效。

也可使用以下命令来设置您的数据库管理器或数据库配置参数的值:
db2 update database manager configuration using parameter new_value db2 update database configuration for database_name using parameter new_value |
若您所指定的参数更改不能立即生效,则在您运行了 update db/dbm configuration 命令后,将返回形式如下的警告消息:
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. |
绝大多数配置参数均可在实例或数据库保持运行的情况下联机设置。只要可能,对这些联机配置参数的更改默认为立即生效。例如,若更改了 sortheap 的值,所有新的 SQL 请求将使用新值。为显式指定这种立即生效的行为,可将 immediate 关键字附加到 update 命令中:
db2 update database manager configuration using parameter new_value
immediate
db2 update database configuration for database_name using
parameter new_value
immediate
|
若您选择将此更改延迟至实例重启或数据库激活时,则应指定 deferred 关键字:
db2 update database manager configuration using parameter new_value
deferred
db2 update database configuration for database_name using
parameter new_value
deferred
|
有时,您可能希望找出已确定并延迟了哪些更改。为显示数据库管理器配置参数的当前值和挂起值,首先进入实例,然后在 get database manager configuration 命令中指定 show detail 选项,方法如下(请注意,instance_name 是系统环境变量 DB2INSTANCE 设置的值):
db2 attach to instance_name db2 get database manager configuration show detail |
同样地,要列举数据库配置参数的当前值和挂起值,首先连接到数据库,然后使用 show detail 选项:
db2 connect to database_name
db2 get database configuration for database_name
show detail
|
挂起值列于 Delayed Value 列中,如下所示。

关于
Leave a Comment