DB2 10.5 for Linux, UNIX, and Windows

配置跨多个分区的数据库

数据库管理器提供了多个分区中的所有数据库配置元素的单个视图。这意味着您可以更新或重置所有数据库分区中的数据库配置,而不必对每个数据库分区调用 db2_all 命令。

通过从数据库所在的任何分区只发出一个 SQL 语句或一个管理命令,即可更新多个分区中的该数据库配置。缺省情况下,用于更新或重置数据库配置的方法是在所有数据库分区上

要实现命令脚本和应用程序的向后兼容性,您有下面三种选择:
  • 使用 db2set 命令将 DB2_UPDDBCFG_SINGLE_DBPARTITION 注册表变量设为 TRUE,如下所示:
        DB2_UPDDBCFG_SINGLE_DBPARTITION=TRUE
    注: 设置该注册表变量不适用于使用 ADMIN_CMD 过程发出的 UPDATE DATABASE CONFIGURATIONRESET DATABASE CONFIGURATION 请求。
  • UPDATE DATABASE CONFIGURATIONRESET DATABASE CONFIGURATION 命令或者 ADMIN_CMD 过程使用 DBPARTITIONNUM 参数。例如,要更新所有数据库分区上的数据库配置,请按如下所示调用 ADMIN_CMD 过程:
        CALL SYSPROC.ADMIN_CMD
          ('UPDATE DB CFG USING sortheap 1000')
    要更新单个数据库分区,请按如下所示调用 ADMIN_CMD 过程:
        CALL SYSPROC.ADMIN_CMD
          ('UPDATE DB CFG DBPARTITIONNUM 10 USING sortheap 1000')
  • db2CfgSet API 使用 DBPARTITIONNUM 参数。db2Cfg 结构中的标志指示数据库配置的值是否将应用于单个数据库分区。如果设置一个标志,那么还必须提供 DBPARTITIONNUM 值,例如:
        #define db2CfgSingleDbpartition           256

    如果未设置 db2CfgSingleDbpartition 值,那么该数据库配置的值将应用于所有数据库分区,除非对用于设置数据库管理器或数据库配置参数的 db2CfgSet API 将 DB2_UPDDBCFG_SINGLE_DBPARTITION 注册表变量设为 TRUE,或者将 versionNumber 设为低于版本 9.5 的版本号的任意版本号。

将数据库升级到版本 9.7 时,现有的数据库配置参数在数据库升级后通常会保留它们的值。但是,将添加使用其缺省值的新参数,并且会将一些现有参数设为新的版本 9.7 缺省值。有关对现有数据库配置参数的更改的更多详细信息,请参阅 DB2® 服务器行为更改。 缺省情况下,对升级后的数据库发出的任何后续更新或重置数据库配置请求都将应用于所有数据库分区。

对于现有的更新或重置命令脚本,前面提到的规则同样适用于所有数据库分区。您可以修改脚本,以便包括 UPDATE DATABASE CONFIGURATIONRESET DATABASE CONFIGURATION 命令的 DBPARTITIONNUM 选项,也可以设置 DB2_UPDDBCFG_SINGLE_DBPARTITION 注册表变量。

对于调用了 db2CfgSet API 的现有应用程序而言,必须使用版本 9.5 或更高版本的指示信息。如果要采用版本 9.5 以前的行为,那么可以设置 DB2_UPDDBCFG_SINGLE_DBPARTITION 注册表变量,也可以修改应用程序以调用具有版本 9.5 或更高版本号的 API,其中包括新的 db2CfgSingleDbpartition 标志以及用于更新或重置特定数据库分区的数据库配置的新 dbpartitionnum 字段。

注: 如果您发现数据库配置值不一致,那么可以单独地更新或重置每个数据库分区。