UPDATE DATABASE CONFIGURATION 命令

UPDATE DATABASE CONFIGURATION 命令用于修改特定数据库配置文件中的各个条目。 数据库 配置文件驻留在已创建 数据库 的每个数据库分区上。

作用域

缺省情况下,此命令会更新所有数据库分区或成员,除非指定了以下可选子句:
  • MEMBER ,用于仅更新 Db2® pureScale® 环境的一个数据库成员,或者仅更新分区数据库环境中的一个数据库分区。

权限

为下列其中一种权限:
  • SYSADM
  • SYSCTRL
  • SYSMAINT

需要的连接

。 不需要显式连接,但建议在数据库处于活动状态时进行数据库连接。 如果数据库列示为远程数据库,那么将在命令持续时间内建立与远程节点的实例连接。 要联机更改参数,必须连接到数据库。

命令语法

Read syntax diagramSkip visual syntax diagramUPDATEDATABASEDBCONFIGURATIONCONFIGCFGFORdatabase-aliasMEMBERmember-numberUSING config-keywordvaluevalueAUTOMATICAUTOMATICMANUAL IMMEDIATEDEFERRED

命令参数

FOR database-alias
指定要更新其配置的数据库的别名。 当已建立数据库连接时,不需要指定数据库别名。 您可以更新位于同一数据库实例下的另一个数据库的配置文件。 例如,如果仅连接到数据库 db11,并发出 update db config for alias db22 using .... immediate:
  • 如果 db22上没有活动连接,那么更新将成功,因为只需要更新配置文件。 新连接 (将激活数据库) 将看到内存中的新更改。
  • 如果 db22 上存在来自其他应用程序的活动连接,那么更新将在磁盘上工作,但不会在内存中工作。 您将收到一条警告,指示需要重新启动数据库。
MEMBER member-number
MEMBER 子句指定应该将更改应用于哪个成员。 省略此条款将导致更改应用于所有成员。
USING config-keyword value
config-keyword 指定要更新的数据库配置参数。 value 指定要分配给参数的值。
AUTOMATIC
某些配置参数可设置为 AUTOMATIC,从而允许 Db2 数据库系统自动调整这些参数以反映当前资源需求。 有关支持 AUTOMATIC 关键字的配置参数的列表,请参阅配置参数摘要。 如果值与 AUTOMATIC 关键字一起指定,那么可能会影响自动计算。 有关此行为的具体详细信息,请参阅配置参数的文档。
MANUAL
禁用配置参数的自动调整。 该参数设置为其当前内部值,不再自动更新。
IMMEDIATE
在数据库运行时立即进行更改。 IMMEDIATE 是缺省操作,但它需要数据库连接才能生效。

这也是在 CLPPlus 界面中运行时的缺省子句。 使用 CLPPlus 处理器时无需调用 IMMEDIATE

DEFERRED
仅在配置文件中进行更改,以便更改在下次重新激活数据库时生效。

示例

更新多分区实例上的数据库配置

此示例演示如何针对名为 SAMPLE 的数据库将数据库配置参数 MAXAPPLS10 更新为 50

用户具有具有 4 个分区的多分区实例,如 db2nodes.cfg中所定义:
10 gilera 0
20 gilera 1
30 motobi 0
40 motobi 1 

用户已在实例上创建 SAMPLE 数据库。 SAMPLE 的目录分区位于成员 10 上。 假设用户已登录到系统 motobi

由于多分区实例的缺省行为是更新所有数据库分区上的数据库配置,因此用户发出的以下命令将导致所有数据库分区中的 MAXAPPLS 值相同:
db2 update db cfg for sample using maxappls 50
要仅在成员 30 上更新 MAXAPPLS ,可以发出以下命令:
db2 update db cfg for sample member 30 using maxappls 50

使用说明

要查看或打印数据库配置参数的列表,请使用 GET DATABASE CONFIGURATION 命令。

要将所有数据库配置参数重置为建议的缺省值,请使用 RESET DATABASE CONFIGURATION 命令。

要更改数据库配置参数,请使用 UPDATE DATABASE CONFIGURATION 命令。 例如,要在包含名为 ZELLMART 的数据库的单分区数据库环境上将日志记录方式更改为 archival logging ,请使用:

db2 update db cfg for zellmart using logarchmeth1 logretain

要检查 logarchmeth1 配置参数是否已更改,请使用:

db2 get db cfg for zellmart

例如,要在包含名为 zellmart的数据库的多分区数据库环境中将日志记录方式更改为所有分区上的 archival logging (前提是缺省情况下将注册表变量 DB2_UPDDBCFG_SINGLE_DBPARTITION 设置为 NULL 或 FALSE) ,请使用:

db2 update db cfg for zellmart using logarchmeth1 logretain

要检查所有数据库分区上的 logarchmeth1 配置参数是否已更改,请使用:

db2_all ";db2 get db cfg for zellmart"
使用上一个示例,但要将日志记录方式更新为仅一个特定分区 (30) ,请使用:
db2 update db cfg for zellmart member 30 using logarchmeth1 logretain

(可选) 您可以利用 SYSIBMADM.DBCFG 视图从所有分区获取数据,而不必使用 db2_all

如果您正在 UNIX 操作系统上工作,并且具有 grep 命令,那么可以使用以下命令来仅查看 logarchmeth1 值:

db2_all ";db2 get db cfg for zellmart | grep -i logarchmeth1"

有关 Db2 数据库配置参数以及可用于每种类型的数据库节点的值的更多信息,请参阅各个配置参数描述。 对于配置的每种类型的数据库节点 (服务器,客户机或具有远程客户机的服务器) ,这些参数的值有所不同。

并非所有参数都可以更新。

对数据库配置文件的某些更改只有在装入到内存后才会生效。 所有应用程序都必须先与数据库断开连接,然后才能执行此操作。 有关可在线配置哪些参数以及哪些参数不可配置的更多信息,请参阅配置参数的摘要列表。

例如,要联机更改 SALES 数据库的 sortheap 数据库配置参数,请输入以下命令:
db2 connect to sales 
db2 update db cfg using sortheap 1000 
db2 connect reset

如果发生错误,那么数据库配置文件不会更改。 如果校验和无效,那么无法更新数据库配置文件。 如果在不使用相应命令的情况下更改数据库配置文件,那么可能会发生此情况。 如果发生这种情况,那么必须复原数据库以重置数据库配置文件。

兼容性

要获得与先前版本的兼容性:
  • 可以将 DBPARTITIONNUM 替换为 MEMBER,但 DB2_ENFORCE_MEMBER_SYNTAX 注册表变量设置为 ON时除外。