使用DB2
db2set -lr查看DB2注册表变量和环境变量,一下信息整理自DB2 信息中心
[db2inst1@db2 ~]$
db2set -lr
DB2_OVERRIDE_BPF
DB2_PARALLEL_IO
DB2ACCOUNT
DB2ADMINSERVER
DB2BQTIME
DB2BQTRY
DB2CHKPTR
DB2CLIINIPATH
DB2CODEPAGE
DB2COMM
DB2COUNTRY
DB2DBDFT
DB2DBMSADDR
DB2DEFPREP
DB2DMNBCKCTLR
DB2INCLUDE
DB2INSTDEF
DB2INSTPROF
DB2IQTIME
DB2LOADREC
DB2LOCK_TO_RB
DB2NTNOCACHE
DB2NTPRICLASS
DB2NTWORKSET
DB2OPTIONS
DB2PATH
DB2PRIORITIES
DB2REMOTEPREG
DB2RQTIME
DB2SORCVBUF
DB2SORT
DB2SOSNDBUF
DB2SYSTEM
DB2_FORCE_NLS_CACHE
DB2YIELD
DB2_AVOID_PREFETCH
DB2_COLLECT_TS_REC_INFO
DB2_GRP_LOOKUP
DB2_INDEX_FREE
DB2_MMAP_READ
DB2_MMAP_WRITE
DB2DISCOVERYTIME
DB2ENVLIST
DB2MEMDISCLAIM
DB2LIBPATH
DB2CHKSQLDA
DB2PORTRANGE
DB2INSTOWNER
DB2NOEXITLIST
DB2LOADFLAGS
DB2_HASH_JOIN
DB2NTMEMSIZE
DB2CHECKCLIENTINTERVAL
DB2_FALLBACK
DB2PROCESSORS
DB2ATLD_PORTS
DB2_SORT_AFTER_TQ
DB2_LIKE_VARCHAR
DB2ASSUMEUPDATE
DB2MAXFSCRSEARCH
DB2BIDI
DB2_NEW_CORR_SQ_FF
DB2CHGPWD_EEE
DB2LOCALE
DB2_SKIPDELETED
DB2LDAPHOST
DB2LDAPCACHE
DB2LDAP_CLIENT_PROVIDER
DB2LDAP_BASEDN
DB2_ENABLE_LDAP
DB2_SYSTEM_MONITOR_SETTINGS
DB2_FCM_SETTINGS
DB2SATELLITEID
DB2_LIC_STAT_SIZE
DB2CONNECT_IN_APP_PROCESS
DB2_NUM_FAILOVER_NODES
DB2ROUTINE_DEBUG
DB2_DJ_INI
DB2_DJ_COMM
DB2TCPCONNMGRS
DB2_SQLROUTINE_PREPOPTS
DB2_ANTIJOIN
DB2_DISABLE_FLUSH_LOG
DB2_SELECTIVITY
DB2_EXTENDED_OPTIMIZATION
DB2_ENABLE_SINGLE_NIS_GROUP
DB2_PINNED_BP
DB2_APM_PERFORMANCE
DB2_XBSA_LIBRARY
DB2_VENDOR_INI
DB2DOMAINLIST
DB2_FMP_COMM_HEAPSZ
DB2_SNAPSHOT_NOAUTH
DB2_LOGGER_NON_BUFFERED_IO
DB2_EVALUNCOMMITTED
DB2TERRITORY
DB2_PARTITIONEDLOAD_DEFAULT
DB2_ALLOCATION_SIZE
DB2_NO_FORK_CHECK
DB2_REDUCED_OPTIMIZATION
DB2_USE_PAGE_CONTAINER_TAG
DB2_NUM_CKPW_DAEMONS
DB2_KEEPTABLELOCK
DB2GRAPHICUNICODESERVER
DB2_MINIMIZE_LISTPREFETCH
DB2_INLIST_TO_NLJN
DB2_MEM_TUNING_RANGE
DB2_TRUSTED_BINDIN
DB2_CLPPROMPT
DB2_FORCE_APP_ON_MAX_LOG
DB2_CLP_EDITOR
DB2_CLP_HISTSIZE
DB2_LOAD_COPY_NO_OVERRIDE
DB2_USE_DB2JCCT2_JROUTINE
DB2_MAX_NON_TABLE_LOCKS
DB2_SMS_TRUNC_TMPTABLE_THRESH
DB2_USE_ALTERNATE_PAGE_CLEANING
DB2_HADR_BUF_SIZE
DB2_MAX_CLIENT_CONNRETRIES
DB2_CONNRETRIES_INTERVAL
DB2_DOCHOST
DB2_DOCPORT
DB2_TAPEMGR_TAPE_EXPIRATION
DB2_OBJECT_TABLE_ENTRIES
DB2_LOGGING_DETAIL
DB2_VIEW_REOPT_VALUES
DB2_SELUDI_COMM_BUFFER
DB2_RESOURCE_POLICY
DB2TCP_CLIENT_RCVTIMEOUT
DB2_DDL_SOFT_INVAL
DB2_SKIPINSERTED
DB2CONNECT_DISCONNECT_ON_INTERRUPT
DB2_LARGE_PAGE_MEM
DB2_ALTERNATE_GROUP_LOOKUP
DB2_MIN_IDLE_RESOURCES
DB2AUTH
DB2FFDC
DB2FODC
DB2_ASYNC_IO_MAXFILOP
DB2RSHCMD
DB2RSHTIMEOUT
DB2_MDC_ROLLOUT
DB2_TRUNCATE_REUSESTORAGE
DB2_WORKLOAD
DB2_DXX_PATHS_ALLOWED_READ
DB2_DXX_PATHS_ALLOWED_WRITE
DB2TCP_CLIENT_CONTIMEOUT
DB2_MAX_INACT_STMTS
DB2_USE_FAST_PREALLOCATION
DB2FCMCOMM
DB2_EXTENDED_IO_FEATURES
DB2_UTIL_MSGPATH
DB2_ENABLE_AUTOCONFIG_DEFAULT
DB2_MAP_XML_AS_CLOB_FOR_DLC
DB2_OPT_MAX_TEMP_SIZE
DB2_MAX_LOB_BLOCK_SIZE
DB2_MINIMUM_CLIENT_LEVEL
DB2CONNECT_ENABLE_EURO_CODEPAGE
DB2_RESOLVE_CALL_CONFLICT
DB2_IO_PRIORITY_SETTING
DB2_EVMON_STMT_FILTER
DB2_SERVER_CONTIMEOUT
DB2_DISPATCHER_PEEKTIMEOUT
DB2_CONNECT_GWY_AUTH_SUPP
DB2_EVMON_EVENT_LIST_SIZE
DB2_MEMORY_PROTECT
DB2_SET_MAX_CONTAINER_SIZE
DB2_UPDDBCFG_SINGLE_DBPARTITION
DB2_LIMIT_FENCED_GROUP
DB2_COMPATIBILITY_VECTOR
DB2_CAPTURE_LOCKTIMEOUT
DB2_HADR_NO_IP_CHECK
DB2_HADR_PEER_WAIT_LIMIT
DB2_OPTSTATS_LOG
DB2_ATS_ENABLE
DB2_KEEP_AS_AND_DMS_CONTAINERS_OPEN
DB2RESILIENCE
DB2_FORCE_OFFLINE_ADD_PARTITION
DB2_HADR_SOSNDBUF
DB2_HADR_SORCVBUF
DB2_DEFERRED_PREPARE_SEMANTICS
DB2TCP_CLIENT_KEEPALIVE_TIMEOUT
DB2_PMODEL_SETTINGS
DB2_PMAP_COMPATIBILITY
DB2_HADR_ROS
DB2_STANDBY_ISO
DB2_NCHAR_SUPPORT
DB2_RESTORE_GRANT_ADMIN_AUTHORITIES
DB2_ITP_LEVEL
常规注册表变量
DB2ACCOUNT
-
操作系统:所有操作系统
-
缺省值:NULL
-
此变量定义发送至远程主机的记帐字符串。有关详细信息,参阅DB2 Connect? 用户指南。
DB2BIDI
-
操作系统:所有操作系统
-
缺省值:NO,值:YES 或 NO
-
此变量启用双向支持,并且 DB2CODEPAGE 变量用于声明要使用的代码页。
DB2_CAPTURE_LOCKTIMEOUT
-
操作系统:所有操作系统
-
缺省值:NULL,值:ON 或 NULL
-
此变量指定在发生锁定超时的情况下日志记录关于锁定超时的描述性信息。日志记录的信息标识:导致锁定超时的锁定争用中所涉及的关键应用程序、关于这些应用程序在锁定超时的情况下正在运行的对象的详细信息,以及关于导致争用的锁定的详细信息。将同时捕获关于锁定请求者(接收锁定超时错误的应用程序)和当前锁定所有者的信息。对于每个锁定超时,将编写一个文本报告并将其存储在文件中。
这些文件是使用以下命名约定创建的:db2locktimeout.par.AGENTID.yyyy-mm-dd-hh-mm-ss,其中 par 是数据库分区号;AGENTID 是代理程序标识;yyyy-mm-dd-hh-mm-ss 是时间戳记,由年、月、日、小时、分钟和秒组成。在非分区数据库环境中,par设置为 0。
文件的位置取决于在 diagpath 数据库配置参数中设置的值。如果未设置 diagpath,那么文件位于下面其中一个目录中:
-
在 Windows 环境中:
-
如果未设置 DB2INSTPROF 环境变量,那么信息将写入 x:\SQLLIB\DB2INSTANCE,其中 x 是驱动器引用,SQLLIB 是对DB2PATH 注册表变量指定的目录,而 DB2INSTANCE 是实例所有者的名称。
-
如果设置了 DB2INSTPROF 环境变量,那么信息将写入 x:\DB2INSTPROF\DB2INSTANCE,其中 x 是驱动器引用,DB2INSTPROF 是实例概要文件目录的名称,而 DB2INSTANCE 是实例所有者的名称。
-
如果您将 DB2INSTPROF 环境变量设置为一个新位置,那么必须确保它包含适当的文件和文件夹以运行该实例。这可能会要求您将所有文件和文件夹从先前位置复制到新位置。
-
在 Linux 和 UNIX 环境中:信息将写入 INSTHOME/sqllib/db2dump,其中 INSTHOME 是实例的主目录。
当您不再需要锁定超时报告文件时,将这些文件删除。由于报告文件与其他诊断日志位于相同位置,因此在允许该目录变满的情况下,DB2? 系统可能会关闭。如果需要保留某些锁定超时报告文件,那么将它们移至 DB2 日志的存储目录或文件夹之外的目录或文件夹。
要点: 由于已有通过使用 CREATE EVENT MONITOR FOR LOCKING 语句来收集锁定超时事件的新方法,因此建议不要使用此变量,将来的发行版可能会将其除去。
DB2_COLLECT_TS_REC_INFO
-
操作系统:所有操作系统
-
缺省值:ON,值:ON 或 OFF
-
此变量指定在前滚表空间时,DB2 是否将处理所有日志文件,无论日志文件是否包含会影响表空间的日志记录。要跳过已知不包含将影响表空间的任何日志记录的日志文件,应将此变量设置为 ON。在创建和使用日志文件之前,必须设置 DB2_COLLECT_TS_REC_INFO,以便收集跳过日志文件的所需要的信息。
DB2CONSOLECP
-
操作系统:Windows
-
缺省值:NULL,值:所有有效的代码页值
-
指定用于显示 DB2 消息文本的代码页。当指定了此值时,它会覆盖操作系统代码页设置。
DB2COUNTRY
-
操作系统:Windows
-
缺省值:NULL,值:所有有效数字的国家或地区、地域或区域代码
-
此变量指定客户机应用程序的国家或地区、地域或区域代码。当指定了此值时,它会覆盖操作系统设置。
注: 建议您不要使用 DB2COUNTRY,将来的发行版可能会将其除去。请改为使用 ,它与 DB2COUNTRY 接受相同的值。
DB2DBDFT
-
操作系统:所有操作系统
-
缺省值:NULL
-
此变量指定要用于隐式连接的数据库的数据库别名。如果应用程序没有数据库连接,但发出了 SQL 或 XQuery 语句,那么在缺省数据库中定义了 DB2DBDFT 环境变量的情况下,将建立隐式连接。
DB2DISCOVERYTIME
-
操作系统:Windows
-
缺省值:40 秒,最小值:20 秒
-
此变量指定 SEARCH 发现将在 DB2 系统中搜索的时间。
DB2_EXPRESSION_RULES
-
操作系统:所有操作系统
-
缺省值:空,值:RAISE_ERROR_PERMIT_SKIP 或 RAISE_ERROR_PERMIT_DROP
-
DB2_EXPRESSION_RULES 注册表变量的设置用于控制 DB2 优化器如何确定涉及 RAISE_ERROR 函数的查询的存取方案。RAISE_ERROR 函数的缺省行为是,不将任何过滤操作推到包含此函数的表达式之后。这可能会致使不在表访问期间应用任何有可能导致表达式计算量过高、锁定过多以及查询性能不佳的谓词。
在某些情况下,此行为过于严格,这取决于应用程序的特定业务需求;如果在应用 RAISE_ERROR 之前应用谓词和连接,那么此行为并不重要。例如,在行级别安全性实现的上下文中,通常存在格式如下的表达式:
CASE WHEN <用于验证对此行的访问权的条件> THEN NULL ELSE RAISE_ERROR(...) END
此应用程序可能只希望验证对此查询所选择的行的访问权,而不希望验证对表中每一行的访问权。因此,可以在基本表访问期间应用谓词,并且只需要在执行所有过滤操作之后执行包含 RAISE_ERROR 的表达式。在此情况下,适当的值可能是
DB2_EXPRESSION_RULES=
RAISE_ERROR_PERMIT_SKIP。
另一种情况是列级安全性的上下文。在此情况下,通常存在格式如下的表达式:
CASE WHEN <用于验证对此行和此列的访问权的条件> THEN
ELSE RAISE_ERROR(...) END
在此情况下,此应用程序可能只希望在用户尝试接收特定行的数据并且列包含不允许用户检索的值时才引起错误。在此情况下,如果此特定列由谓词或列函数使用或者作为查询的输出返回,那么设置 DB2_EXPRESSION_RULES=RAISE_ERROR_PERMIT_DROP 只会导致对包含 RAISE_ERROR 函数的表达式进行求值。
DB2FFDC
注: V9.5 中不推荐使用 DB2FFDC,在以后的发行版中会将其除去。新注册表变量 DB2FODC 包含了 DB2FFDC 的功能。
DB2FODC
-
操作系统:所有操作系统
-
缺省值:所有 FODC 参数的并置(请参阅下面的内容)
-
对于 Linux 和 UNIX: "CORELIMIT=val DUMPCORE=ON DUMPDIR=diagpath"
-
对于 Windows:"DUMPDIR=diagpath"
请注意,参数之间用空格分隔。
-
此注册表变量控制在“首次出现数据收集”(FODC) 中使用的一组与故障诊断相关的参数。使用 DB2FODC 控制中断情况下数据收集的不同方面。
此注册表变量在 DB2 实例启动期间读取一次。要对 FODC 参数进行联机更新,请使用
db2pdcfg 工具。使用
DB2FODC 注册表变量使配置在重新引导期间保持有效。不需要指定所有参数,也不需要按特定顺序指定参数。将对未指定的任何参数指定缺省值。例如,如果不想转储核心文件,但您需要其他参数的缺省行为,那么可发出以下命令:
db2set DB2FODC="DUMPCORE=OFF"
参数:
CORELIMIT
DUMPCORE
DUMPDIR
-
操作系统:所有操作系统
-
缺省值:diagpath 目录,或者在未定义 diagpath 时为缺省诊断目录,值:目录的路径
-
此选项指定用于核心文件创建的目录的绝对路径名。
FODCPATH
-
操作系统:所有操作系统
-
缺省值:由 DIAGPATH 数据库管理器配置参数定义的路径,值:fodc_path_name
-
此选项指定要将 FODC 程序包定向至的绝对路径名。fodc_path_name 必须是一个现有目录,并且为其设置此选项的一个或多个成员以及正在这些成员上运行的 fmp 进程必须可写入此目录。
COS
-
操作系统:所有操作系统
-
缺省值:ON,值:ON 或 OFF
-
此选项指定是否启用了 db2cos 脚本。可以将下列参数与此参数配合使用:
COS_SLEEP
-
缺省值:3,值:0 到无限大
-
此选项指定两次检查所生成输出文件的大小之间休眠的时间量(以秒计)。
COS_TIMEOUT
-
缺省值:30,值:0 到无限大
-
此选项指定在完成脚本之前要等待的时间量(以秒计)。
COS_COUNT
-
缺省值:255,值:0 到 255
-
此选项指定在数据库管理器陷阱期间执行 db2cos 的次数。
COS_SQLO_SIG_DUMP
-
缺省值:ON,值:ON 或 OFF
-
此选项指定在接收到 SQLO_SIG_DUMP 信号时是否启用了 db2cos。
DB2_FORCE_APP_ON_MAX_LOG
-
操作系统:所有操作系统
-
缺省值:TRUE,值:TRUE 或 FALSE
-
指定当超过了 max_log 配置参数值时将发生的情况。如果设置为 TRUE,那么会强制应用程序断开与数据库的连接并回滚工作单元。
如果设置为 FALSE,那么当前语句将失败。该应用程序仍然可以落实在工作单元中由先前语句完成的工作,它也可以回滚已完成的工作以撤销该工作单元。
注: 此 DB2 注册表变量影响 IMPORT 实用程序从日志满情况中恢复的能力。如果将 DB2_FORCE_APP_ON_MAX_LOG 设置为 TRUE,并且发出带 COMMITCOUNT 命令选项的 IMPORT 命令,那么 IMPORT 实用程序将不能执行落实以便避免用完活动日志空间。当 IMPORT 实用程序遇到 SQL0964C(事务日志满)时,将强制关闭数据库,并且当前工作单元将回滚。
DB2GRAPHICUNICODESERVER
-
操作系统:所有操作系统
-
缺省值:OFF,值:ON 或 OFF
-
此注册表变量用来存放现有的为将图形数据插入 Unicode 数据库而编写的应用程序。仅需要对那些特别地发送 Unicode 格式(而不是客户机的代码页)的 sqldbchar(图形)数据的应用程序使用此变量。(sqldbchar 是 C 和 C++ 中受支持的 SQL 数据类型,可以包含单个双字节字符。)如果设置为 ON,那么是通知数据库将接收的图形数据是 Unicode 格式,并且应用程序期望接收到 Unicode 格式的图形数据。
DB2INCLUDE
-
操作系统:所有操作系统
-
缺省值:当前目录
-
指定在 DB2 PREP 处理期间处理 SQL INCLUDE 文本文件语句时要使用的路径。它提供一个有可能在其中找到包含文件的目录列表。请参阅开发嵌入式 SQL 应用程序以了解有关如何在不同预编译语言中使用 DB2INCLUDE 的描述。
DB2INSTDEF
-
操作系统:Windows
-
缺省值:DB2
-
此变量设置在未定义 时要使用的值。
DB2INSTOWNER
-
操作系统:Windows
-
缺省值:NULL
-
第一次创建实例时在 DB2 概要文件注册表中创建的注册表变量。将此变量设置为实例拥有的机器的名称。
DB2_LIC_STAT_SIZE
-
操作系统:所有操作系统
-
缺省值:NULL,范围:0 到 32767
-
此变量确定包含系统许可证统计信息的文件的最大大小,以 MB 计。零值关闭许可证统计信息收集。如果无法识别或未定义该变量,那么该变量缺省为不受限制的大小。使用许可证中心显示该统计信息。
DB2LOCALE
-
操作系统:所有操作系统
-
缺省值:NO,值:YES 或 NO
-
此变量指定在调用 DB2 之后是否将进程的缺省值“C”语言环境复原为缺省“C”语言环境,以及在调用 DB2 函数之后是否将进程语言环境复原为原始“C”。如果原始语言环境不是“C”,那么忽略此注册表变量。
DB2_MAX_CLIENT_CONNRETRIES
DB2_MAX_GLOBAL_SNAPSHOT_SIZE
DB2_SYSTEM_MONITOR_ SETTINGS
-
操作系统:所有操作系统
-
此注册表变量控制一组参数,这些参数允许您修改 DB2 监视的各个方面的行为。用分号分隔每个参数,如以下示例所示:
db2set DB2_SYSTEM_MONITOR_SETTINGS=OLD_CPU_USAGE:TRUE;
DISABLE_CPU_USAGE:TRUE
每次设置 DB2_SYSTEM_MONITOR_SETTINGS 时,都必须显式设置每个参数。在设置此变量时未指定的任何参数将还原为其缺省值。因此,在以下示例中:
db2set DB2_SYSTEM_MONITOR_SETTINGS=DISABLE_CPU_USAGE:TRUE
OLD_CPU_USAGE 将恢复为其缺省设置。
注: 当前,此注册表变量只具有适用于 Linux 的设置;在将来的发行版中将添加适用于其他操作系统的其他设置。
-
参数:
OLD_CPU_USAGE
-
操作系统:Linux
-
值:TRUE/ON 或 FALSE/OFF
-
RHEL4 和 SLES9 上的缺省值:TRUE(注意:OLD_CPU_USAGE 的 FALSE 设置将加以忽略 - 仅使用旧行为。)
-
RHEL5、SLES10 和其他操作系统上的缺省值:FALSE
-
此参数控制实例如何获取 Linux 平台上的 CPU 使用时间。如果设置为 TRUE,那么将使用较旧的方法来获取 CPU 使用时间。此方法返回系统和用户 CPU 使用时间,但这样做将消耗更多 CPU(也就是说,它具有更高的开销)。如果设置为 FALSE,那么将使用较新的方法来获取 CPU 使用时间。此方法只返回用户 CPU 使用时间值,但由于它具有较小开销,所以速度更快。
DISABLE_CPU_USAGE
-
操作系统:Linux
-
值:TRUE/ON 或 FALSE/OFF
-
RHEL4 和 SLES9 上的缺省值:TRUE
-
RHEL5、SLES10 和其他操作系统上的缺省值:FALSE
-
此参数允许您确定是否读取 CPU 使用率。启用了 DISABLE_CPU_USAGE(设置为 TRUE)时,将不读取 CPU 使用率,从而避免在检索 CPU 使用率时有时会产生的开销。
DB2TERRITORY
-
操作系统:所有操作系统
-
缺省值:从语言标识中派生,由操作系统指定。
-
此变量指定客户机应用程序的区域或地域代码,它影响日期和时间格式。
DB2_VIEW_REOPT_VALUES
-
操作系统:所有操作系统
-
缺省值:NO,值:YES 或 NO
-
当说明重新优化的 SQL 或 XQuery 语句时,此变量使所有用户都能够将该语句的经过高速缓存的值存储在 EXPLAIN_PREDICATE 表中。当此变量设置为 NO 时,只允许 DBADM 将这些值保存在 EXPLAIN_PREDICATE 表中。
系统环境变量
DB2_ALTERNATE_GROUP_LOOKUP
-
操作系统:AIX? 和 Linux
-
缺省值:NULL,值:NULL、GETGRSET(在 AIX 上)或 GETGROUPLIST(在 Linux 上)
-
此变量允许 DB2? 数据库系统从操作系统所提供的备用源中获取组信息。在 AIX 上,使用函数 getgrset。这使您能够通过可装入认证模块从本地文件之外的其他位置获取组。
DB2_CLP_EDITOR
有关详细信息,请参阅“命令行变量”中的 。
DB2_CLP_HISTSIZE
有关详细信息,请参阅“命令行变量”中的 。
DB2CONNECT_ENABLE_EURO_CODEPAGE
-
操作系统:所有操作系统
-
缺省值:NO,值:YES 或 NO
-
在连接至需要支持欧元符号的 DB2 for z/OS? 服务器或 DB2 for i 服务器的所有 DB2 Connect? 客户机和服务器上,将此变量设置为 YES。如果将此变量设置为 YES,那么当前应用程序代码页将映射到明确指示支持欧元符号的等效编码字符集标识 (CCSID)。因此,DB2 Connect 通过使用一个 CCSID(它是当前应用程序代码的 CCSID 的超集,同时支持欧元符号)连接至 DB2 for z/OS 服务器或 DB2 for i 服务器。例如,如果客户机正在使用映射到 CCSID 1252 的代码页,那么该客户机将使用 CCSID 5348 进行连接。
DB2CONNECT_IN_APP_PROCESS
-
操作系统:所有操作系统
-
缺省值:YES,值:YES 或 NO
-
将此变量设置为 NO 时,将强制 DB2 Enterprise Server Edition 工作站上的本地 DB2 Connect 客户机在代理程序内运行。在代理程序内运行的一些优点是可监视本地客户机,且本地客户机可使用 SYSPLEX 支持。
DB2_COPY_NAME
-
操作系统:Windows
-
缺省值:安装在工作站上的 DB2 缺省副本的名称。值:安装在工作站上的 DB2 副本的名称。此名称限长 128 个字符。
-
DB2_COPY_NAME 变量存储当前正在使用的 DB2 副本的名称。如果工作站上安装了多个 DB2 副本,那么无法使用 DB2_COPY_NAME 来切换到另一个 DB2 副本,而必须运行 INSTALLPATH\bin\db2envar.bat 命令才能切换当前正在使用的副本,其中 INSTALLPATH 是 DB2 副本的安装位置。
DB2DOMAINLIST
-
操作系统:所有操作系统
-
缺省值:NULL,值:由逗号(“,”)分隔的各个 Windows 域名组成的列表。
-
此变量定义一个或多个 Windows 域。此列表在服务器上维护,它定义针对其认证请求用户标识的域。只会接受属于这些域的用户的连接请求。
仅当在数据库管理器配置中设置了 CLIENT 认证时,此变量才有效。如果 Windows 域环境中要求从 Windows 桌面进行单点登录,那么需要此变量。
DB2 服务器版本 7.1 或更高版本支持 DB2DOMAINLIST,但仅在纯 Windows 域环境中支持。从 V8 FP15 和 V9.1 FP3 开始,如果客户机或服务器正在 Windows 环境中运行,那么支持 DB2DOMAINLIST。
DB2ENVLIST
-
操作系统:UNIX
-
缺省值:NULL
-
此变量列示存储过程或用户定义的函数的特定变量名。缺省情况下,db2start 命令过滤掉除带 “DB2” 或 “db2” 前缀之外的所有用户环境变量。如果必须将特定环境变量传递至存储过程或用户定义的函数,那么可列示 DB2ENVLIST 环境变量中的变量名。用一个或多个空格将每个变量名隔开。
DB2INSTPROF
-
操作系统:Windows
-
缺省值:Documents and Settings\All Users\Application Data\IBM\DB2\Copy Name(Windows XP 和 Windows 2003)或ProgramData\IBM\DB2\Copy Name (Windows Vista)
-
此环境变量指定 Windows 操作系统上实例目录的位置。从 V9.5 开始,实例目录和其他用户数据文件不能在 sqllib 目录中。
DB2LIBPATH
-
操作系统:UNIX
-
缺省值:NULL
-
DB2 构造其自身的共享库路径。如果要将 PATH 添加到引擎的库路径中(例如,在 AIX 上,用户定义的函数在 LIBPATH 中需要特定的条目),那么必须设置 DB2LIBPATH。DB2LIBPATH 的实际值追加到 DB2 构造的共享库路径的末尾。
DB2OPTIONS
-
操作系统:所有操作系统
-
缺省值:NULL
-
用来设置命令行处理器选项。
DB2_PARALLEL_IO
-
操作系统:所有操作系统
-
缺省值:NULL,值:TablespaceID:[n],... - 已定义的表空间(由其数字表空间标识识别)的逗号分隔列表。 如果表空间的预取大小设置为 AUTOMATIC,那么可以通过指定表空间标识,后面跟一个冒号,再加上每个容器的磁盘数 n,向 DB2 数据库管理器指示该表空间中每个容器的磁盘数。如果未指定 n,那么将使用缺省值 6。
可以将 TablespaceID 替换为星号 (*) 以指定所有表空间。例如,如果 DB2_PARALLEL_IO =*,那么所有表空间都将使用 6 作为每个容器的磁盘数。如果您同时指定星号 (*) 和表空间标识,那么优先使用表空间标识设置。例如,如果 DB2_PARALLEL_IO =*,1:3,那么所有表空间都将使用 6 作为每个容器中的磁盘数,但第一个表空间除外(它使用 3 作为每个容器中的磁盘数)。
-
此注册表变量用来更改 DB2 计算表空间的 I/O 并行性的方式。如果启用了 I/O 并行性(通过使用多个容器来隐式启用,或者通过设置DB2_PARALLEL_IO 来显式启用),那么通过发出正确数目的预取请求来实现此目标。每个预取请求都是对页的扩展数据块的请求。例如,表空间具有两个容器,而预取大小是扩展数据块大小的四倍。如果设置了此注册表变量,那么此表空间的预取请求会分为四个请求(每个请求对应一个扩展数据块),并且可能由四个预取程序来并行处理这些请求。
如果表空间中的各个容器分布在多个物理磁盘上,或者表空间中的容器是在由多个物理磁盘组成的单个 RAID 设备上创建的,那么您可能想要设置注册表变量。
如果未设置此注册表变量,那么任何表空间的并行度都是表空间的容器数。例如,如果 DB2_PARALLEL_IO 设为 NULL 并且表空间有四个容器,那么将发出四个具有扩展数据块大小的预取请求;如果表空间有两个容器,并且预取大小是扩展数据块大小的四倍,那么此表空间的预取请求将分为两个请求(每个请求对应两个扩展数据块)。
如果设置了此注册表变量,并且表的预取大小不是 AUTOMATIC,那么表空间的并行度为预取大小除以扩展数据块大小。例如,如果对预取大小为 160 而扩展数据块大小为 32 页的表空间设置了 DB2_PARALLEL_IO,那么将发出 5 个具有扩展数据块大小的的预取请求。
如果设置了此注册表变量,且表空间的预取大小是 AUTOMATIC,那么 DB2 将自动计算表空间的预取大小。下表概述了可用的不同选项和在每种情况下计算并行性的方式:
表 1. 如何计算并行性
表空间的预取大小
|
DB2_PARALLEL_IO 设置
|
并行性等同于:
|
AUTOMATIC
|
未设置
|
容器数
|
AUTOMATIC
|
表空间标识
|
容器数 * 6
|
AUTOMATIC
|
表空间标识:n
|
容器数 * n
|
非 AUTOMATIC
|
未设置
|
容器数
|
非 AUTOMATIC
|
表空间标识
|
预取大小/扩展数据块大小
|
非 AUTOMATIC
|
表空间标识:n
|
预取大小/扩展数据块大小
|
在某些情况下使用此变量可能会导致磁盘争用。例如,如果表空间有两个容器,并且每个容器都有专用的单个磁盘,那么设置此注册表变量可能导致发生磁盘争用,这是因为两个预取程序会同时访问两个磁盘。但是,如果每个容器都分布在多个磁盘上,那么设置此注册表变量将潜在允许同时访问四个不同的磁盘。
要激活对此注册表变量的更改,请发出 db2stop 命令,然后输入 db2start 命令。
DB2_PMAP_COMPATIBILITY
-
操作系统:所有操作系统
-
缺省值:ON,值:ON 或 OFF
-
此变量允许用户继续使用 sqlugtpi 和 sqlugrpn API 来分别返回某个表的分布信息以及某行的数据库分区号和数据库分区服务器号。缺省设置 ON 表示分布映射大小仍为 4096 个条目(V9.7 以前的行为)。如果此变量设置为 OFF,那么新数据库或已升级数据库的分布映射大小将增大为 32768 个条目(V9.7 的行为)。如果您使用 32K 分发映射,那么必须使用新的 db2GetDistMap 和 db2GetRowPartNum API。
DB2RCMD_LEGACY_MODE
-
操作系统:Windows
-
缺省值:NULL,值:YES、ON、TRUE 或 1 或者 NO、OFF、FALSE 或 0
-
此变量允许用户启用或禁用 DB2 远程命令服务的增强安全性功能。要以安全方式运行 DB2 远程命令服务,请将 DB2RCMD_LEGACY_MODE设置为 NO、OFF、FALSE、0 或 NULL。要以旧方式(未增强安全性)运行,请将 DB2RCMD_LEGACY_MODE 设置为 YES、ON、TRUE 或1。仅当域控制器运行的是 Windows 2000 或更高版本时,安全方式才可用。
注: 如果将 DB2RCMD_LEGACY_MODE 设置为 YES、ON、TRUE 或 1,那么所有发送至 DB2 远程命令服务的请求都在请求者上下文中进行处理。为了便于进行此处理,必须在域控制器上启用工作站和服务登录帐户,以允许工作站和/或服务登录帐户模拟客户机。
注: 如果将 DB2RCMD_LEGACY_MODE 设置为 NO、OFF、FALSE 或 0,那么您必须拥有 SYSADM 权限才能让 DB2 远程命令服务代表您运行命令。
DB2RESILIENCE
-
操作系统:所有操作系统
-
缺省值:ON,值:ON(TRUE 或 1)或者 OFF(FALSE 或 0)
-
此注册表变量可用于控制是否容忍物理读错误以及是否激活扩展陷阱恢复功能。缺省行为是,容忍读错误并激活扩展陷阱恢复功能。要恢复为前发行版的行为并强制数据库管理器关闭实例,请将该注册表变量设置为 OFF。此注册表变量不会影响现有的存储密钥支持。
DB2_RESTORE_GRANT_ADMIN_AUTHORITIES
DB2_UPDDBCFG_SINGLE_DBPARTITION
-
操作系统:所有操作系统
-
缺省值:未设置,值:0/FALSE/NO 或 1/TRUE/YES
-
当此注册表变量设置为 1、TRUE 或 YES 时,它允许您指定对数据库所进行的任何更新或重置仅影响特定分区。如果未设置此变量,那么更新和请求将按照 V9.5 的行为。
-
从 V9.5 开始,如果未指定分区子句,那么对数据库配置所进行的更新或更改将对所有数据库分区生效。DB2_UPDDBCFG_SINGLE_DBPARTITION 允许您还原为先前版本的 DB2 的行为,即,对数据库配置的更新仅适用于本地数据库分区或 注册表变量设置的数据库分区。对于需要此行为的任何现有命令脚本或应用程序,这使得能够与较低版本兼容。
注: 此变量不适用于通过调用 ADMIN_CMD 例程发出的更新或重置请求。
DB2_USE_PAGE_CONTAINER_TAG
-
操作系统:所有操作系统
-
缺省值:NULL,值:ON 或 NULL
-
缺省情况下,DB2 将容器标记存储在每个 DMS 容器的第一个扩展数据块中,而无论它是文件还是设备。容器标记是容器的元数据。在 DB2 V8.1 之前,容器标记存储在单个页中,因此,它在容器中需要较少的空间。要继续将容器标记存储在单个页中,请将DB2_USE_PAGE_CONTAINER_TAG 设置为 ON。
但是,如果在对容器使用 RAID 设备时将此注册表变量设置为 ON,那么会降低 I/O 性能。这是因为对于您使用等于 RAID 分割区大小或其倍数的扩展数据块大小创建表空间的 RAID 设备,将 DB2_USE_PAGE_CONTAINER_TAG 设置为 ON 会导致扩展数据块不与 RAID 分割区排列在一起。因此,I/O 请求可能必须访问比正常情况下最适合的物理磁盘数更多的磁盘。不建议用户启用此注册表变量,除非您有严格的空间约束,或者您要求行为与 V8 之前的数据库行为保持一致。
要激活对此注册表变量的更改,请发出 db2stop 命令,然后输入 db2start 命令。
通信变量
DB2CHECKCLIENTINTERVAL
DB2COMM
DB2FCMCOMM
DB2_FORCE_NLS_CACHE
-
操作系统:AIX?、HP_UX 和 Solaris
-
缺省值:FALSE,值:TRUE 或 FALSE
-
此变量用于消去多线程应用程序中锁定争用的可能。当此注册表变量为 TRUE 时,在线程第一次访代码页和地域代码信息时将保存这些信息。由此,高速缓存的信息就可用于请求此信息的任何其他线程。在某些情况中,这样可消去锁定争用并导致有利于性能的结果。如果该应用程序更改了连接之间的语言环境设置,那么不应该使用此设置。在这种情况下,可能不需要这样做,原因是多线程应用程序通常不更改它们的语言环境设置,因为这样做不是线程安全的。
DB2_PMODEL_SETTINGS
DB2RSHCMD
-
操作系统:UNIX 和 Linux
-
缺省值:rsh(在 HP-UX 上为 remsh);值为 rsh、remsh 或 ssh 的完整路径名
-
缺省情况下,在启动远程数据库分区时,DB2 数据库系统使用 rsh 作为通信协议,并使用 db2_all 脚本来对所有数据库分区运行实用程序和命令。例如,将此注册表变量设置为 ssh 的完整路径名会导致 DB2 数据库产品使用 ssh 作为请求运行实用程序和命令的通信协议。还可以将它设置为使用适当缺省参数调用远程命令程序的脚本的完整路径名。仅分区数据库、db2start 命令是从安装了 DB2 产品的服务器之外的另一个服务器运行的单分区环境,以及能够启动、停止或监视 DB2 实例(例如,db2gcf)的 rsh 或 ssh 从属实用程序,才需要此变量。实例所有者必须能够使用指定的远程 shell 程序来从每个 DB2 数据库节点登录到其他每个 DB2 数据库节点,而不会提示他们输入任何其他验证或认证(即,密码或密码短语)。
有关设置 DB2RSHCMD 注册表变量以便将 SSH Shell 与 DB2 配合使用的详细指示信息,请参阅白皮书“配置 DB2 Universal Database? for UNIX 以使用 OpenSSH”。
DB2RSHTIMEOUT
DB2SORCVBUF
-
操作系统:所有操作系统
-
缺省值:65536
-
指定 TCP/IP 接收缓冲区的值。
DB2SOSNDBUF
-
操作系统:所有操作系统
-
缺省值:65536
-
指定 TCP/IP 发送缓冲区的值。
DB2TCP_CLIENT_CONTIMEOUT
DB2TCP_CLIENT_KEEPALIVE_TIMEOUT
-
操作系统:AIX、Linux 和 Windows(仅适用于客户机)
-
缺省值 = 15 值:0 - 32767 秒
-
DB2TCP_CLIENT_KEEPALIVE_TIMEOUT 注册表变量指定在检测到无响应的 TCP/IP 客户机连接或附件不再处于活动状态之前经过的最长时间(按秒计)。如果未设置此变量,那么会使用为 15 秒的缺省设置。当 KeepAliveTimeout 关键字设置为 0 时,在操作系统中设置的保持活动设置将生效。如果设置此变量,那么它会优先于 db2dsdriver.cfg 文件中指定的任何 keepAliveTimeout 设置。
对此变量的更改针对所有将此服务器的 TCP/IP 连接和附件立即生效
DB2TCP_CLIENT_RCVTIMEOUT
DB2TCPCONNMGRS
命令行变量
DB2BQTIME
-
操作系统:所有操作系统
-
缺省值:1 秒,最小值:1 秒
-
此变量指定命令行处理器前端在检查后端进程是否活动并建立与它的连接之前休眠的时间量。
DB2BQTRY
-
操作系统:所有操作系统
-
缺省值:60 次重试,最小值:0 次重试
-
此变量指定命令行处理器前端进程尝试确定后端进程是否活动的次数。此变量与 DB2BQTIME 共同起作用。
DB2_CLPPROMPT
-
操作系统:所有操作系统
-
缺省值:无(如果未定义它,那么“db2 =>”将用作缺省 CLP 交互提示符),值:长度小于 100 且包含零个或零个以上下列标记的任何文本字符串:%i、%d、%ia、%da 或 %n。除非用户确实希望更改缺省 CLP 交互式提示符 (db2 =>),否则他们不需要设置此变量。
-
此注册表变量允许用户定义要在命令行处理器 (CLP) 交互方式中使用的提示符。该变量可设置为长度小于 100 个字符且包含零个或零个以上可选标记 %i、%d、%ia、%da 或 %n 的任何文本字符串。当以 CLP 交互方式运行时,要使用的提示符的构造方式如下:通过获取DB2_CLPPROMPT 注册表变量中指定的文本字符串并将出现的所有 %i、%d、%ia、%da 或 %n 标记分别替换为当前连接的实例的本地别名、当前数据库连接的本地别名、当前连接的实例的授权标识、当前数据库连接的授权标识以及换行符(即,回车符)。
注:
-
如果在 CLP 交互方式下更改了 DB2_CLPPROMPT 注册表变量,那么在关闭并重新打开 CLP 交互方式之前,DB2_CLPPROMPT 的新值不会生效。
-
如果不存在实例连接,那么 %ia 将替换为空字符串,而 %i 将替换为 注册表变量的值。(仅适用于 Windows 平台)如果未设置 DB2INSTANCE 变量,那么 %i 将替换为 注册表变量的值。如果这些变量都没有设置,那么 %i 将替换为空字符串。
-
如果不存在数据库连接,那么 %da 将替换为空字符串,而 %d 将替换为 注册表变量的值。如果未设置 DB2DBDFT 变量,那么 %d 将替换为空字符串。
-
交互式输入提示符将始终以大写形式显示授权标识、数据库名称和实例名的值。
DB2IQTIME
-
操作系统:所有操作系统
-
缺省值:5 秒,最小值:1 秒
-
此变量指定命令行处理器后端进程在输入队列上等待前端进程传送命令的时间量。
DB2RQTIME
-
操作系统:所有操作系统
-
缺省值:5 秒,最小值:1 秒
-
此变量指定命令行处理器后端进程等待前端进程提出请求的时间量。
分区数据库环境变量
DB2CHGPWD_EEE
-
操作系统:AIX?、Linux 和 Windows 上的 DB2? ESE
-
缺省值:NULL;值:YES 或 NO
-
此变量指定是否允许其他用户更改 AIX 或 Windows ESE 系统上的密码。必须确保在 Windows 上使用 Windows 域控制器或在 AIX 上使用 LDAP 来集中维护所有数据库分区或节点的密码。如果没有集中维护,在所有数据库分区或节点之间密码可能会不一致。这可能会导致只在用户为了更改而连接的数据库分区中更改密码。
DB2_FCM_SETTINGS
DB2_FORCE_OFFLINE_ADD_PARTITION
-
操作系统:所有操作系统
-
缺省值:FALSE;值:FALSE 或 TRUE
-
此变量允许您指定以脱机方式执行添加数据库分区服务器操作。缺省设置 FALSE 表明不必使数据库进入脱机状态即可添加 DB2 数据库分区服务器。但是,如果要以脱机方式执行此操作,或者某些限制导致无法在数据库处于联机状态时添加数据库分区服务器,请将DB2_FORCE_OFFLINE_ADD_PARTITION 设置为 TRUE。如果此变量设置为 TRUE,那么将按照版本 9.5 和更低版本的行为来添加新的 DB2 数据库分区服务器;即,新数据库分区服务器直到实例关闭并重新启动之后才对该实例可见。
DB2_NUM_FAILOVER_NODES
DB2_PARTITIONEDLOAD_DEFAULT
DB2PORTRANGE
-
操作系统:Windows
-
值:nnnn:nnnn
-
将此值设为 FCM 使用的 TCP/IP 端口范围,以便在另一台机器上创建的任何其他数据库分区也有相同的端口范围。
查询编译器变量
DB2_ANTIJOIN
DB2_DEFERRED_PREPARE_SEMANTICS
-
操作系统:所有操作系统
-
缺省值:NO,值:YES、NO 或 YES_DBCS_GRAPHIC_TO_CHAR
-
如果将此注册表变量设置为 YES,那么将启用延迟准备语义,以使 CLI 和 JDBC PREPARE 语句中使用的所有隐式类型参数标记都根据与后续 OPEN 或 EXECUTE 语句相关联的输入描述符来派生其数据类型和长度属性。与以前的情况相比,这样可以在更多位置使用隐式类型参数标记。
注: 将
DB2_DEFERRED_PREPARE_SEMANTICS 设置为
YES 可能会导致非预期的影响或结果。如果输入描述符中的数据类型与使用“”的规则所派生的数据类型不同,那么可能会发生下列情况:
-
由于增加了强制类型转换操作,使得查询性能降低。
-
由于无法转换数据类型而使得查询失败。
-
查询可能会返回不同的结果。
例如,假定表 t1 中有 char_col 列,此列被定义为 VARCHAR(10) 并且具有值“1”、“100”、“200”和“xxx”。用户运行以下查询:
select * from t1 where char_col = ?
如果输入参数的数据类型为 INTEGER,并且正在使用延迟准备,那么会将 char_col 列强制转换为数字类型。但是,由于此表中的其中一行包含非数字数据(“xxx”),无法转换为数字值,因此查询失败。
如果设置为
YES_DBCS_GRAPHIC_TO_CHAR,那么此注册表变量会指定参数标记要使用 VARCHAR 类型而不是 VARGRAPHIC 类型。如果符合下列所有条件,那么
DB2_DEFERRED_PREPARE_SEMANTICS 注册表变量隐式具有此设置:
-
未设置 DB2_DEFERRED_PREPARE_SEMANTICS(即,设置为 NULL)。
-
The DB2_COMPATIBILITY_VECTOR 注册表变量设置为 ORA、MYS 或 MSS。
-
您处于双字节字符集 (DBCS) 环境中。
-
必须在发出 db2start 命令之前设置 DB2_DEFERRED_PREPARE_SEMANTICS 注册表变量。
仅建议对 Unicode 数据库和 SBCS 数据库使用此注册表变量。
DB2_INLIST_TO_NLJN
-
操作系统:所有操作系统
-
缺省值:NO,值:YES 或 NO
-
在某些情况下,SQL 和 XQuery 编译器可以将 IN 列表谓词重写入连接。例如,在以下查询中:
SELECT *
FROM EMPLOYEE
WHERE DEPTNO IN ('D11', 'D21', 'E21')
可以编写为:
SELECT *
FROM EMPLOYEE, (VALUES 'D11', 'D21', 'E21) AS V(DNO)
WHERE DEPTNO = V.DNO
如果 DEPTNO 上有索引,那么此修订版可以提供更好的性能。首先访问值列表,然后使用索引应用连接谓词,通过嵌套循环连接将它连接到 EMPLOYEE。
有时,优化器没有准确的信息来确定用于查询的重写版本的最好连接方法。如果 IN 列表包含阻止优化器使用目录统计信息来确定选择性的参数标记或主变量,那么会发生这种情况。此注册表变量导致优化器使用表来支持嵌套循环连接来连接值列表,该表提供 IN 列表作为连接中的内部表。
注: 当 DB2 查询编译器变量 和/或 DB2_INLIST_TO_NLJN 设置为 YES 时,它们都保持为活动状态,即使指定了 REOPT(ONCE) 亦如此。
DB2_LIKE_VARCHAR
DB2_MINIMIZE_LISTPREFETCH
DB2_NEW_CORR_SQ_FF
DB2_OPT_MAX_TEMP_SIZE
DB2_REDUCED_OPTIMIZATION
DB2_SELECTIVITY
DB2_SQLROUTINE_PREPOPTS
如果想要对选择各个过程获得与 DB2_SQLROUTINE_PREPOPTS 相同的结果,但不需要重新启动实例,那么可使用 SET_ROUTINE_OPTS 过程。
性能变量
DB2_ALLOCATION_SIZE
注: 不推荐使用 DB2_ALLOCATION_SIZE,在以后的发行版中可能会将其除去。
DB2_AVOID_PREFETCH
-
操作系统:所有操作系统
-
缺省值:OFF,值:ON 或 OFF
-
指定在崩溃恢复期间是否应使用预取。如果 DB2_AVOID_PREFETCH =ON,那么不使用预取。
DB2BPVARS
-
操作系统:对每个参数指定的操作系统
-
缺省值:路径
-
两组参数可用于调整缓冲池。一组参数(仅在 Windows 上可用)指定缓冲池应对特定类型的容器使用散射读。另一组参数(在所有平台上都可用)影响预取行为。
以格式 parameter=value 在 ASCII 码文件中指定参数,每行一个参数。例如,名为
bpvars.vars 的文件可能包含下列行:
NO_NT_SCATTER = 1
NUMPREFETCHQUEUES = 2
假定
bpvars.vars 存储在
F:\vars\ 中,要设置这些变量,请发出以下命令:
db2set DB2BPVARS=F:\vars\bpvars.vars
散射读参数
对于针对相应类型的容器有大量顺序预取的系统以及您已将 DB2NTNOCACHE 设置为 ON 的系统,建议使用这些散射读参数。这些参数仅在 Windows 平台上可用,它们是 NT_SCATTER_DMSFILE、NT_SCATTER_DMSDEVICE 和 NT_SCATTER_SMS。指定 NO_NT_SCATTER 参数以显式地禁止对任何容器进行散射读。特定参数用于对所指示类型的所有容器打开散射读。对于这些参数中的每个参数,缺省值为零(或OFF);且可能的值包括:零(或 OFF)和 1(或 ON)。
注: 仅当 DB2NTNOCACHE 设置为 ON 来关闭 Windows 文件高速缓存时,才可以打开散射读。如果 DB2NTNOCACHE 设置为 OFF 或者未设置,那么当您试图对任何容器打开散射读时,会向管理通知记录中写入一条警告消息,且仍然禁用散射读。
预取调整参数
预取调整参数是 NUMPREFETCHQUEUES 和 PREFETCHQUEUESIZE。这些参数在所有平台上都可用,且可用于改进缓冲池数据预取。例如,请考虑期望的 PREFETCHSIZE 划分为 PREFETCHSIZE/EXTENTSIZE 预取请求的顺序预取。在这种情况下,请求会放置在预取队列中,将从该队列分派 I/O 服务器来执行异步 I/O。缺省情况下,DB2 数据库管理器为每个数据库分区维护一个大小为 max(200,2*NUM_IOSERVERS ) 的队列。在某些环境中,随着队列和/或不同大小的队列的增加,性能会得到提高。预取队列的数目应该最多为 I/O 服务器数目的一半。设置这些参数时,请考虑其他参数(例如,PREFETCHSIZE、EXTENTSIZE、NUM_IOSERVERS 和缓冲池大小)以及工作负载特征(例如,当前用户数)。
如果认为缺省值对于您的环境太小,首先稍稍增大该值。例如,您可以设置 NUMPREFETCHQUEUES=4 和 PREFETCHQUEUESIZE=200。以受控方式对这些参数进行更改,以便可以监视和评估这些更改的效果。
对于 NUMPREFETCHQUEUES,缺省值为 1,该值的范围是 1 至 NUM_IOSERVERS。如果将 NUMPREFETCHQUEUES 设置为小于 1,那么它将调整为 1。如果将它设置为大于 NUM_IOSERVERS,那么它将调整为 NUM_IOSERVERS。
对于 PREFETCHQUEUESIZE,缺省值为 max(200,2*NUM_IOSERVERS)。值的范围是 1 到 32767。如果将 PREFETCHQUEUESIZE 设置为小于 1,那么它将调整为缺省值。如果设置为大于 32767,那么它将调整为 32767。
注: 不推荐使用 DB2BPVARS,在以后的发行版中可能会将其除去。
DB2CHKPTR
-
操作系统:所有操作系统
-
缺省值:OFF,值:ON 或 OFF
-
指定是否需要对输入进行指针检查。
DB2CHKSQLDA
-
操作系统:所有操作系统
-
缺省值:ON,值:ON 或 OFF
-
指定是否需要对输入进行 SQLDA 检查。
DB2_EVALUNCOMMITTED
-
操作系统:所有操作系统
-
缺省值:NO,值:YES 或 NO
-
当启用此变量时,在可能的情况下,它将进行扫描以延迟或避免行锁定,直到知道数据满足谓词求值为止。当启用此变量时,可对未落实的数据进行谓词求值。
只有在“当前已落实”语义对避免锁定争用没有帮助时,DB2_EVALUNCOMMITTED 才适用。如果设置了此变量,并且“当前已落实”语义适用于扫描,那么将不会跳过已删除的行,并且不会对尚未落实的数据进行谓词求值;而是,将处理行和数据的当前已落实版本。
并且,DB2_EVALUNCOMMITTED 只适用于使用“游标稳定性”或“读稳定性”隔离级别的语句。并且,执行表扫描访问时将无条件地跳过已删除的行,除非还设置了注册表变量 ,否则不会跳过已删除的键。
在执行 db2start 命令时激活 DB2_EVALUNCOMMITTED 注册表变量有效。有关延迟锁定是否合适的决定则是在语句编译或绑定时作出的。
DB2_EXTENDED_OPTIMIZATION
-
操作系统:所有操作系统
-
缺省值:OFF,值:ON、OFF、ENHANCED_MULTIPLE_DISTINCT、IXOR 或 SNHD
-
此变量指定查询优化器是否使用优化扩充功能来提高查询性能。ON、ENHANCED_MULTIPLE_DISTINCT 和 SNHD 值指定不同的优化扩充功能。如果要将这些值组合使用,请使用用逗号分隔的列表。
如果查询中的一个单选操作涉及多个不同的聚集操作并且处理器数与数据库分区数的比率很低(例如,比率小于或等于 1),那么可以使用ENHANCED_MULTIPLE_DISTINCT 值来提高这种查询的性能。在不包含对称多处理器(SMP)的分区数据库环境中,应该使用此设置。
IXOR 选项(从 DB2 V9.7 FP2 发行版开始提供此选项)指定优化器将使用索引 OR 运算数据访问方法。
如果指定了 SNHD 值,那么优化器根据成本确定一个更加有效的单一分区、散列引导分区策略。在此方法下,无法真正以并行方式执行的操作将更加积极地被优化为在单个数据库分区(而非协调程序分区)上执行操作。
这些优化扩充功能并不能在所有环境中提高查询性能。您应执行测试,以确定各个查询的性能提高情况。
DB2_KEEP_AS_AND_DMS_ CONTAINERS_OPEN
-
操作系统:所有操作系统
-
缺省值:NO,值:YES 或 NO
-
如果将此变量设置为 ON,那么每个 DMS 表空间容器都将打开一个文件句柄,直到数据库被取消激活为止。因为免除了打开容器时所需进行的处理,所以查询性能可能会提高。仅应在纯 DMS 环境中使用此注册表,否则针对 SMS 表空间的查询的性能可能会受到负面影响。
DB2_KEEPTABLELOCK
-
操作系统:所有操作系统
-
缺省值:OFF,值:ON、TRANSACTION、OFF 或 CONNECTION
-
如果将此变量设置为 ON 或 TRANSACTION,那么此变量允许 DB2 数据库系统在“未落实的读”或“游标稳定性”隔离级别处于关闭状态期间维护表锁定。事务结束时将释放所保留的表锁定,就像为“读稳定性”和“可重复读”扫描释放表锁定一样。
如果将此变量设置为 CONNECTION,那么将为应用程序释放一个表锁定,直到该应用程序回滚事务或者连接被重置为止。在落实之间,表锁定将继续挂起,删除表锁定的应用程序请求将被数据库忽略。表锁定仍然被分配给该应用程序。因此,当应用程序重新请求表锁定时,锁定已经处于可用状态。
对于可利用此优化的应用程序工作负载,性能应该会有所提高。然而,并行运行的其他应用程序的工作负载可能会受到影响。其他应用程序可能无法访问给定表,从而使得并行性过低。DB2 SQL 目录表不受此设置影响。CONNECTION 设置还具有上面描述的 ON 或 TRANSACTION设置所具有的行为。
在进行语句编译或绑定时将检查此注册表变量。
DB2_LARGE_PAGE_MEM
-
操作系统:AIX、Linux 和 Windows Server 2003
-
缺省值:NULL,值:*(表示所有应该使用大页内存的适用内存区域)或者应该使用大页内存的特定内存区域的列表(各个内存区域之间以逗号分隔)。可用区域根据操作系统有所变化。在 AIX 上,可以指定下列区域:DB、DBMS、FCM、APPL 或 PRIVATE。在 Linux 上,可以指定以下区域:DB。在 Windows Server 2003 上,可以指定以下区域:DB。巨页内存仅在 AIX 上可用。
-
DB2_LARGE_PAGE_MEM 注册表变量用来启用大页支持或者巨页支持。设置 DB2_LARGE_PAGE_MEM=DB 将对数据库共享内存区域启用大页内存;如果 database_memory 设置为 AUTOMATIC,那么将禁止 STMM 对此共享内存区域进行自动调整。在 AIX 上,设置DB2_LARGE_PAGE_MEM=DB:16GB 将对数据库共享内存区域启用巨页内存。
使用大量虚拟内存的密集内存访问型应用程序可以通过使用大页或巨页来提高性能。要使 DB2 数据库系统可以使用大页或巨页,必须先将操作系统配置为使用大页或巨页。
要对 64 位 DB2 AIX 版上的代理程序专用内存启用大页(DB2_LARGE_PAGE_MEM=PRIVATE 设置),必须在操作系统中配置大页,并且实例所有者必须具有 CAP_BYPASS_RAC_VMM 和 CAP_PROPAGATE 能力。
在 AIX 5L? 上,可以将此变量设置为 FCM。FCM 内存位于它自己的内存集中,因此必须将 FCM 关键字添加至 DB2_LARGE_PAGE_MEM 注册表变量的值,以便对 FCM 内存启用大页。
在 Linux 上,还要求 libcap.so.1 库可用。必须先安装此库才能使此选项起作用。如果此选项已打开,且该库不在系统上,那么 DB2 数据库会禁用大内核页并继续如常运作。
在 Linux 上,要验证大内核页是否可用,请发出以下命令:
cat /proc/meminfo
如果大内核页可用,那么应该显示下面三行(服务器上配置的内存量不同,显示的数字也会不同):
HugePages_Total: 200
HugePages_Free: 200
Hugepagesize: 16384 kB
如果没有看到这几行,或者 HugePages_Total 为 0,那么必须配置操作系统或内核。
在 Windows 上,系统上可用的大页内存量小于总可用内存。系统运行一段时间之后,内存就会被分段,大页内存量就会减少。DB2_ALLOCATION_SIZE 注册表变量应设置为较高值(例如,256MB),以便在 Windows 上分配大内存页时实现一致的性能。(请注意,DB2_ALLOCATION_SIZE 需要您停止然后重新启动该实例。)
DB2_LOGGER_NON_ BUFFERED_IO
-
操作系统:所有操作系统
-
缺省值:AUTOMATIC,值:AUTOMATIC、ON 或 OFF
-
此变量允许您控制是否对日志文件系统执行直接 I/O (DIO) 操作。如果 DB2_LOGGER_NON_BUFFERED_IO 设置为 AUTOMATIC,那么将通过 DIO 来打开活动日志窗口(即,主日志文件),并且将对所有其他记录器文件进行缓存。如果它设置为 ON,那么将通过 DIO 来打开所有日志文件句柄。如果它设置为 OFF,那么将对所有日志文件句柄进行缓存。
DB2MAXFSCRSEARCH
-
操作系统:所有操作系统
-
缺省值:5,值:-1 以及 1 到 33554
-
指定在将记录添加至表中时,要搜索的可用空间控制记录 (FSCR) 的数量。缺省情况是搜索 5 个 FSCR。修改此值允许您平衡插入速度与空间复用。使用较大的值将优化空间复用。使用较小的值将优化插入速度。将值设置为 -1 会强制数据库管理器搜索所有 FSCR。
DB2_MAX_NON_TABLE_LOCKS
-
操作系统:所有操作系统
-
缺省值:YES,值:请参阅描述
-
此变量定义在事务释放所有 NON 表锁定之前该事务可具有的 NON 表锁定的最大数目。NON 表锁定是这样一些表锁定:即使事务已使用完它们,它们仍保留在散列表和事务链中。因为事务经常多次访问同一个表,所以保留锁定并将它们的状态更改为 NON 可以提高性能。
为了获得最佳结果,此变量的建议值是想要任何连接访问的表的最大数目。如果未指定用户定义的值,那么缺省值如下所示:如果
locklist 大小大于或等于
SQLP_THRESHOLD_VAL_OF_LRG_LOCKLIST_SZ_FOR_MAX_NON_LOCKS
(当前为
8000),缺省值是
SQLP_DEFAULT_MAX_NON_TABLE_LOCKS_LARGE
(当前为
150)。否则,缺省值为
SQLP_DEFAULT_MAX_NON_TABLE_LOCKS_SMALL
(当前为
0)。
DB2_MDC_ROLLOUT
-
操作系统:所有操作系统
-
缺省值:IMMEDIATE,值:IMMEDIATE、OFF 或 DEFER
-
此变量对 MDC 表的删除操作启用称为“转出”的性能增强功能。当在搜索式 DELETE 语句中删除整个单元格(维值的交叉点)时,转出是删除 MDC 表中的行的较快方法。好处是减少了记录工作而处理效率更高。
变量设置有三种可能的结果:
-
不转出 - 在指定了 OFF 时
-
立即转出 - 在指定了 IMMEDIATE 时
-
转出但延迟清除索引 - 在指定了 DEFER 时
如果在启动后更改了值,那么对语句进行的任何新编译都将沿用新的注册表值设置。对于程序包高速缓存中的语句,在重新编译语句之前,不会在删除处理中进行任何更改。SET CURRENT MDC ROLLOUT MODE 语句将在应用程序连接级别覆盖 DB2_MDC_ROLLOUT 的值。
在 DB2 V9.7 及更高版本的发行版中,不支持将 DEFER 值用于具有分区 RID 索引的数据分区 MDC 表。仅支持 OFF 和 IMMEDIATE 值。如果DB2_MDC_ROLLOUT 注册表变量设置为 DEFER,或者 CURRENT MDC ROLLOUT MODE 专用寄存器设置为 DEFERRED 以覆盖DB2_MDC_ROLLOUT 设置,那么清除转出类型将为 IMMEDIATE。 如果 MDC 表仅存在非分区 RID 索引,那么支持执行延迟索引清除转出。
DB2MEMMAXFREE
注: 建议您不要使用 DB2MEMMAXFREE,在以后的发行版中会将其除去。由于数据库管理器现在使用线程引擎模型,所以不再需要此变量。不要设置此变量。设置它可能会降低性能,并且可能导致意外行为。
DB2_NO_FORK_CHECK
-
操作系统:UNIX
-
缺省值:OFF,值:ON 或 OFF
-
当启用此注册表变量时,DB2 运行时客户机将使确定当前过程是否是派生调用的结果而进行的检查次数最少。这样可以提高不使用 fork()API 的 DB2 应用程序的性能。
DB2NTNOCACHE
注: 通过使用 CREATE TABLESPACE 和 ALTER TABLESPACE SQL 语句,可以对表空间容器获得相同好处。
DB2NTPRICLASS
-
操作系统:Windows
-
缺省值:NULL,值:R、H 或(任何其他值)
-
设置 DB2 实例(程序 DB2SYSCS.EXE)的优先级类别。有三种优先级类别:
-
NORMAL_PRIORITY_CLASS(缺省值优先级类别)
-
REALTIME_PRIORITY_CLASS(使用 R 来设置)
-
HIGH_PRIORITY_CLASS(使用 H 来设置)
此变量与使用 DB2PRIORITIES 设置的各个线程优先级一起使用,以确定此系统中 DB2 线程相对于其他线程的绝对优先级。
注: 建议不要使用 DB2NTPRICLASS,该参数只应在服务建议中使用。使用 DB2 服务类来调整代理程序优先级和预取优先级。使用此变量时应当小心。误用可能会对整个系统的性能有负面影响。
有关更多信息,请参阅 Win32 文档中的 SetPriorityClass() API。
DB2_PINNED_BP
-
操作系统:AIX、HP-UX 和 Linux
-
缺省值:NO,值:YES 或 NO
-
将此变量设置为 YES 将致使 DB2 请求操作系统锁定 DB2 的数据库共享内存。将 DB2 配置为锁定数据库共享内存之后,应注意确保系统不会被过度使用,这是因为操作系统在管理内存方面的灵活程度将下降。
在 Linux 上,除了要求修改此注册表变量以外,还需要 libcap.so.1 库。
如果将此变量设为 YES,那么将无法启用数据库共享内存自调整功能(通过将 database_memory 配置参数设为 AUTOMATIC 来激活此功能)。
对于 AIX 操作系统,要使用具有中等页大小支持(这是缺省行为)的数据库内存锁定,通过以具有 root 用户权限的用户登录并发出以下命令来确保实例所有者具有 CAP_BYPASS_RAC_VMM 和 CAP_PROPAGATE 能力:
chuser capabilities=CAP_BYPASS_RAC_VMM,CAP_PROPAGATE
对于 64 位环境中的 HP-UX,除了修改此注册表变量外,还必须对 DB2 实例组授予 MLOCK 特权。为此,具有 root 用户访问权限的用户要执行以下操作:
-
将 DB2 实例添加至 /etc/privgroup 文件中。例如,如果 DB2 实例组属于 db2iadm1 组,那么必须将下面这一行添加到/etc/privgroup 文件中:
db2iadm1 MLOCK
-
发出以下命令:
setprivgrp -f /etc/privgroup
DB2PRIORITIES
-
操作系统:所有操作系统
-
值的设置是与平台相关
-
控制 DB2 进程和线程的优先级。
注: 建议不要使用 DB2PRIORITIES,该参数只应在服务建议中使用。使用 DB2 服务类来调整代理程序优先级和预取优先级。
DB2_RESOURCE_POLICY
-
操作系统:AIX 5 或更高版本、所有 Linux(32 位 zSeries? 除外)以及 Windows Server 2003 或更高版本
-
缺省值:未设置,值:指向配置文件的有效路径
-
定义如下资源策略:可以使用该策略来限制 DB2 数据库使用的操作系统资源,或者该策略包含用于将特定操作系统资源指定给特定 DB2 数据库对象的规则。例如,在 AIX、Linux 或 Windows 操作系统上,可使用此注册表变量来限制 DB2 数据库系统使用的一组处理器。资源控制的范围根据操作系统的不同而变化。
在启用了 AIX NUMA 和 Linux NUMA 的机器上,可以定义指定 DB2 数据库系统使用的资源集的策略。使用资源集绑定时,将每个单独的 DB2 进程与特定资源集绑定。这对于一些性能调整方案很有用。
可以设置该注册表变量来指示指向这样一个配置文件的路径:该配置文件定义用于将 DB2 进程与操作系统资源的策略绑定。资源策略使您可以指定一组操作系统资源来限制 DB2 数据库系统。每个 DB2 进程都与该资源集中的单个资源绑定。资源分配以循环方式进行。
样本配置文件:
示例 1:将所有 DB2 进程与 CPU 1 或 3 绑定。
CPU
1
3
示例 2:(仅适用于 AIX)将 DB2 进程与下列其中一个资源集绑定:sys/node.03.00000、sys/node.03.00001、sys/node.03.00002 或 sys/node.03.00003
RSET
sys/node.03.00000
sys/node.03.00001
sys/node.03.00002
sys/node.03.00003
注: (仅适用于 AIX)使用 RSET 方法要求具有 CAP_NUMA_ATTACH 功能。
示例 3:(仅适用于 Linux)将与 SAMPLE 数据库相关联的缓冲池标识 2 和 3 的所有内存与 NUMA 节点 3 绑定。并且,将数据库内存总量的 80% 用于与 NUMA 节点 3 绑定,并保留 20% 的内存量分布在所有节点中作为并非特定于缓冲池的内存。
sample
NODEMASK
3
80
2
3
示例 4:(仅适用于 Linux 和 Windows)定义两个分别由 CPU 掩码 0x0F 和 0xF0 指定的不同处理器集。将 DB2 进程和缓冲池标识 2 与处理器集 0x0F 绑定,并将 DB2 进程和缓冲池标识 3 与处理器集 0xF0 绑定。对于每个处理器集,将数据库内存总量的 50% 用于绑定。
当期望建立处理器与 NUMA 节点之间的映射时,此资源策略很有用。下面是这种情况的一个示例:一个系统中有 8 个处理器和 2 个 NUMA 节点,其中处理器 0 到 3 属于 NUMA 节点 0,而处理器 4 到 7 属于 NUMA 节点 1。此资源策略允许在进行处理器绑定的同时隐式维护内存的局部性(CPU 方法和 NODEMASK 方法混合使用)。
sample
CPUMASK
0x0F
50
2
0xF0
50
3
DB2_RESOURCE_POLICY 注册表变量指定的配置文件接受 SCHEDULING_POLICY 元素。在某些平台上,可以使用 SCHEDULING_POLICY 元素来选择
此外,可以使用注册表变量 DB2PRIORITIES 和 DB2NTPRICLASS 来控制操作系统调度策略和设置 DB2 代理程序优先级。但是,如果在资源策略配置文件中指定 SCHEDULING_POLICY 元素,就可以在单一位置指定调度策略和相关代理程序优先级。
示例 1:选择 AIX SCHED_FIFO 调度策略,并提高 DB2 日志写程序和阅读器进程的优先级。
SCHED_FIFO
60
db2loggr
56
db2loggw
56
示例 2:在 Windows 上替换 DB2NTPRICLASS=H。
HIGH_PRIORITY_CLASS
DB2_SET_MAX_CONTAINER_SIZE
DB2_SMS_TRUNC_TMPTABLE_THRESH
-
操作系统:所有操作系统
-
缺省值 =-2,值:-2、-1 或 0 到 n,其中 n = SMS 表空间容器中针对每个临时表要维护的扩展数据块的数目
-
此变量指定表示将在 SMS 表空间中维护的临时表的文件的最小文件大小阈值。
从 DB2 V9.7 FP2 开始,此变量的缺省设置为 -2,这意味着对于其大小小于或等于 1 个扩展数据块 * 容器数的任何溢出的 SMS 临时对象,将没有任何不需要的文件系统访问。超过此大小的临时对象会被截断为 0 个扩展数据块。
当此变量设置为 0 时(在 DB2 V9.7 FP2 之前,这是缺省设置),不会执行特殊阈值处理。但是,一旦不再需要临时表,该文件就会被截断为 0 个扩展数据块。当此变量的值大于 0 时,将维护更大的文件。超过此阈值的对象将被截断为阈值大小。这样可减少每次使用临时表时删除并重新创建文件所造成的一部分系统开销。
如果此变量设置为 -1,那么不会截断该文件,并且允许它无限增长,只不过会受到系统资源的限制。
DB2_SQLWORKSPACE_CACHE
-
操作系统:所有操作系统
-
缺省值:30,值:10 到 2000
-
此变量允许您控制在 SQL 工作空间中对先前使用的段进行高速缓存的数量。
SQL 工作空间包含执行 SQL 时的分配(以段的形式)。正在为应用程序执行的每个 SQL 语句(静态或动态)都必须在 SQL 工作空间中保留该语句的执行期间所使用的段的唯一副本。在完成该语句的执行后,该段将成为不活动段,并且可以释放与不活动段相关联的内存分配,也可以继续在 SQL 工作空间中高速缓存这些内存分配。当从任何连接再次执行相同 SQL 语句时,将在 SQL 工作空间中查找上次执行该语句时保留的段的高速缓存副本,从而节省与分配和初始化该段的新副本相关联的成本。因此,SQL 工作空间将同时包含活动段(对应于当前执行的 SQL)和当前未在执行的已高速缓存的段。
此注册表变量的值指定允许在 SQL 工作空间中高速缓存的内存分配的百分比。此高速缓存将表示为活动段的内存分配的百分比。例如,值 50 表示 SQL 工作空间包含所有活动段(当前在执行的段)以及最多 50% 的先前执行了高速缓存的段(可以复用这些段)。应该根据您希望 SQL 工作空间中可供复用的多少来调整 DB2_SQLWORKSPACE_CACHE 的设置。例如,增加此变量的大小可以在一定程度上提高 OLTP 工作负载的性能。在另一方面,较高的设置也意味着将增加应用程序共享堆的大小。注意,如果未将 appl_memory 数据库配置参数设置为AUTOMATIC,那么 SQL 工作空间的大小还会受 appl_memory 的限制,因此 SQL 工作空间可能并不会提供DB2_SQLWORKSPACE_CACHE 设置所允许的高速缓存量;在这样的情况下,您可能需要考虑增大 appl_memory(或将其设置为AUTOMATIC)。此注册表变量不是动态的
DB2_TRUSTED_BINDIN
-
操作系统:所有操作系统
-
缺省值:OFF,值:OFF、ON 或者 CHECK
-
当启用了 DB2_TRUSTED_BINDIN 时,会加速执行不受防护的嵌入式存储过程中包含主变量的查询语句。
当启用了此变量时,在绑定不受防护的嵌入式存储过程中包含的 SQL 和 XQuery 语句期间,不会将外部 SQLDA 格式转换为内部 DB2 格式。这将加速处理嵌入式 SQL 和 XQuery 语句。
当启用了此变量时,不受防护的嵌入式存储过程中不支持下列数据类型:
-
SQL_TYP_DATE
-
SQL_TYP_TIME
-
SQL_TYP_STAMP
-
SQL_TYP_CGSTR
-
SQL_TYP_BLOB
-
SQL_TYP_CLOB
-
SQL_TYP_DBCLOB
-
SQL_TYP_CSTR
-
SQL_TYP_LSTR
-
SQL_TYP_BLOB_LOCATOR
-
SQL_TYP_CLOB_LOCATOR
-
SQL_TYP_DCLOB_LOCATOR
-
SQL_TYP_BLOB_FILE
-
SQL_TYP_CLOB_FILE
-
SQL_TYP_DCLOB_FILE
-
SQL_TYP_BLOB_FILE_OBSOLETE
-
SQL_TYP_CLOB_FILE_OBSOLETE
-
SQL_TYP_DCLOB_FILE_OBSOLETE
如果遇到了这些数据类型,那么会返回 SQLCODE -804 和 SQLSTATE 07002。
注: 输入主变量的数据类型和长度必须与相应元素的内部数据类型和长度精确匹配。对于主变量,将始终满足此要求。但是,对于参数标记,必须注意确保使用相匹配的数据类型。可以使用 CHECK 选项来确保所有输入主变量的数据类型和长度都匹配,但是此选项将不利于性能提高。
注: 建议不要使用 DB2_TRUSTED_BINDIN,在以后的发行版中会将其除去。
DB2_USE_ALTERNATE_PAGE_CLEANING
-
操作系统:所有操作系统
-
缺省值:未设置,值:ON 或 OFF
-
此变量指定 DB2 数据库使用页清除算法的另一种方法还是使用页清除的缺省方法。当此变量设为 ON 时,DB2 系统会将更改的页写入磁盘,从而保持在 LSN_GAP 前面并且主动查找牺牲页。这样做允许页清除程序更好地利用可用的磁盘 I/O 带宽。当此变量设置为 ON 时,由于chngpgs_thresh 数据库配置参数不控制页清除程序的活动,所以它不再相关。
DB2_USE_FAST_PREALLOCATION
其他变量
DB2ADMINSERVER
-
操作系统:Windows 和 UNIX
-
缺省值:NULL
-
指定 DB2? 管理服务器。
DB2_ATS_ENABLE
-
操作系统:所有操作系统
-
缺省值:NULL;值:YES/TRUE/ON/1 或者 NO/FALSE/OFF/0
-
此变量用于控制管理任务调度程序是否正在运行。缺省情况下,管理任务调度程序处于禁用状态。当此调度程序处于禁用状态时,可以使用内置过程和视图来定义和修改任务,但是此调度程序不执行任务。
DB2CLIINIPATH
-
操作系统:所有操作系统
-
缺省值:NULL
-
用于替换 CLI/ODBC 配置文件 (db2cli.ini) 的缺省路径并指定客户机上另一个位置。指定的值必须是客户机系统上的有效路径。
DB2_COMPATIBILITY_VECTOR
-
操作系统:所有操作系统
-
缺省值:NULL,值:NULL 或者 00 到 FFF
-
DB2_COMPATIBILITY_VECTOR 注册表变量用来启用 DB2 V9.5 中引入的一个或多个 DB2 兼容性功能部件。通过这些功能部件,更容易完成将对其他关系数据库供应商编写的应用程序迁移到 DB2 V9.5 或更高版本的任务。
-
DB2_COMPATIBILITY_VECTOR 被表示为一个十六进制值,该变量中的每个位启用其中一个 DB2 兼容性功能部件,如表中所述。要启用所有受支持的兼容性功能部件,请将此注册表变量设置为值 ORA(此值等价于十六进制值 FFF)。这是建议设置。
DB2CONNECT_DISCONNECT_ON_INTERRUPT
-
操作系统:所有操作系统
-
缺省值:NO,值:YES/TRUE/1 或 NO/FALSE/0
-
当此变量设置为 YES(TRUE 或 1)时,它指定在发生中断时,应立即断开与 V8(或更高版本)的 DB2 Universal Database? z/OS? 服务器的连接。可以在下列配置中使用此变量:
-
如果正在将 DB2 客户机与 V8(或更高版本)DB2 UDB z/OS 服务器配合使用,那么在该客户机上将DB2CONNECT_DISCONNECT_ON_INTERRUPT 设置为 YES。
-
如果正在通过 DB2 Connect 网关对 V8(或更高版本)DB2 UDB z/OS 服务器运行 DB2 客户机,那么在该网关上将DB2CONNECT_DISCONNECT_ON_INTERRUPT 设置为 YES。
DB2_CREATE_DB_ON_PATH
-
操作系统:Windows
-
缺省值:NULL,值:YES 或 NO
-
将此注册表变量设置为 YES,以支持将一个路径(以及驱动器)用作数据库路径。创建数据库时、设置数据库管理器配置参数 dftdbpath 时以及复原数据库时,将检查 DB2_CREATE_DB_ON_PATH 的设置。标准数据库路径长度可达 215 个字符。
创建或恢复数据库时,如果没有设置 DB2_CREATE_DB_ON_PATH(或将其设置为 NO)且指定了数据库路径,那么会返回错误 SQL1052N。
如果没有设置 DB2_CREATE_DB_ON_PATH(或将其设置为 NO)且更新了 dftdbpath 数据库管理器配置参数,那么会返回错误SQL5136N。
警告:
如果使用路径支持功能来创建新数据库,那么在 DB2 V9.1 之前编写的使用 db2DbDirGetNextEntry() API 和其旧版本的应用程序可能无法正常工作。有关各种方案和正确操作过程的详细信息,请参阅 。
DB2_DDL_SOFT_INVAL
-
操作系统:所有操作系统
-
缺省值:ON,值:ON 或 OFF
-
允许在适用的数据库对象被删除或更改时使其软失效。
如果
DB2_DDL_SOFT_INVAL 设置为
ON,那么任何 DDL 操作(例如删除、更改或拆离)不必等待引用相同对象的事务完成即可启动。依赖于这些对象的当前执行将继续使用原始的对象定义,而新执行将使用更改后的对象。这将提高发出 DDL 语句时的并行性。
注: 新的软失效功能仅适用于动态程序包。任何使用静态程序包的对象仍要求执行硬失效操作。
DB2DEFPREP
-
操作系统:所有操作系统
-
缺省值:NO,值:ALL、YES 或 NO
-
对在 DEFERRED_PREPARE 预编译选项可用之前已预编译的应用程序,模拟此选项的运行时行为。例如,如果 DB2 V2.1.1 或更低版本的应用程序在 DB2 V2.1.2 或更高版本的环境中运行,那么可使用 DB2DEFPREP 来指示期望的“延迟准备”行为。
注: 建议您不要使用 DB2DEFPREP,将来的发行版中会将其除去。只有使用旧版本 DB2(DEFERRED_PREPARE 预编译选项在其中不可用)的用户才需要此变量。
DB2_DISABLE_FLUSH_LOG
-
操作系统:所有操作系统
-
缺省值:OFF,值:ON 或 OFF
-
指定在联机备份完成时,是否禁止关闭活动日志文件。
当联机备份完成时,最后一个活动日志文件将被截断、关闭并且可以归档。这样就可确保您的联机备份有一组完整的归档日志可用于恢复。如果您担心这样会浪费部分日志序号 (LSN) 空间,那么可以禁用关闭最后一个活动日志文件。每次截断活动日志文件时,LSN 按截断空间量的比例递增。如果您每天都要执行大量联机备份,那么可以禁止关闭最后一个活动日志文件。
如果您在完成联机备份后不久就收到日志已满的消息,那么可能也需要禁止关闭最后一个活动日志文件。当一个日志文件被截断时,剩余的活动日志空间根据被截断的日志大小的比例递增。回收截断的日志文件时,将释放活动日志空间。日志文件处于不活动状态后不久,就会进行回收。在这两个事件之间的短暂时间间隔内,您将收到日志已满的消息。
在任何备份(包括日志)期间,将忽略此注册表变量,因为必须截断并关闭活动日志文件才能使备份包括日志。
DB2_DISPATCHER_PEEKTIMEOUT
DB2DMNBCKCTLR
注: 建议您不要使用 DB2DMNBCKCTLR,在以后的发行版中会将其除去。由于 Active Directory 中没有其他备份域控制器,所以不再需要此变量。
DB2_DOCHOST
-
操作系统:所有操作系统
-
缺省值:未设置(但 DB2 仍将尝试从 IBM Web 站点(publib.boulder.ibm.com/infocenter/db2luw/v9r7)访问信息中心),值:http://hostname,其中 hostname 是有效的主机名或 IP 地址。
-
指定安装了 DB2 信息中心的主机名。如果在 DB2 安装向导中选择了自动配置选项,那么在安装 DB2 信息中心期间可以自动设置此变量。
DB2_DOCPORT
-
操作系统:所有操作系统
-
缺省值:NULL,值:任何有效端口号
-
指定 DB2 帮助系统为 DB2 文档服务时使用的端口号。如果在 DB2 安装向导中选择了自动配置选项,那么在安装 DB2 信息中心期间可以自动设置此变量。
DB2DSDRIVER_CFG_PATH
-
操作系统:所有操作系统
-
缺省值:NULL
-
用于覆盖 db2dsdriver.cfg 配置文件的缺省路径。有关更多信息,请参阅“相关参考”部分。
DB2DSDRIVER_CLIENT_HOSTNAME
-
操作系统:所有操作系统
-
缺省值:NULL
-
用于覆盖 (db2dsdriver.cfg) 配置文件的缺省客户机主机名。该变量强制 CLI 从 db2dsdriver.cfg 文件的客户机自动重新路由部分中选取客户机主机名条目。
DB2_ENABLE_AUTOCONFIG_DEFAULT
-
操作系统:所有操作系统
-
缺省值:NULL,值:YES 或 NO
-
此变量控制创建数据库时是否自动运行配置顾问程序。如果未设置 DB2_ENABLE_AUTOCONFIG_DEFAULT (NULL),那么效果等同于将该变量设置为 YES,因此创建数据库时将运行配置顾问程序。设置此变量后,不需要重新启动实例。如果执行 AUTOCONFIGURE 命令或者运行CREATE DB AUTOCONFIGURE,那么这些命令将覆盖 DB2_ENABLE_AUTOCONFIG_DEFAULT 设置。
DB2_ENABLE_LDAP
-
操作系统:所有操作系统
-
缺省值:NO,值:YES 或 NO
-
指定是否使用“轻量级目录访问协议”(LDAP)。LDAP 是一种目录服务访问方法。
在 db2dsdriver.cfg 文件中可以指定的等效关键字为 EnableLDAP。
DB2_EVMON_EVENT_LIST_SIZE
-
操作系统:所有操作系统
-
缺省值:0(没有限制),值:以 KB/Kb/kb、MB/Mb/mb 或 GB/Gb/gb 计;虽然此变量没有固定的上限,但它受监视器堆中的可用内存量限制。
-
此注册表变量指定排队等待写入特定事件监视器的最大字节数。达到此限制后,尝试发送事件监视器记录的代理程序将等待,直到队列大小降低到小于此阈值为止。
注: 如果无法从监视器堆分配活动记录,那么这些记录将被删除。为了防止出现这种情况,请将 mon_heap_sz 配置参数设置为 AUTOMATIC。如果将 mon_heap_sz 设置为特定值,那么确保 DB2_EVMON_EVENT_LIST_SIZE 设置为更小的值。但是,这些操作不能保证活动记录不被删除,因为监视器堆还用于跟踪其他监视器元素。
DB2_EVMON_STMT_FILTER
注: 要了解数据库系统监视器常量的定义,请参阅 sqlmon.h 头文件。
DB2_EXTSECURITY
-
操作系统:Windows
-
缺省值:YES,值:YES 或 NO
-
通过锁定 DB2 对象(系统文件、目录和 IPC 对象)来防止对 DB2 进行未经授权的访问。为避免发生潜在的问题,不应该关闭此注册表变量。如果未设置 DB2_EXTSECURITY,其值在 DB2 数据库服务器产品上解释为 YES,在客户机上解释为 NO。
DB2_FALLBACK
-
操作系统:Windows
-
缺省值:OFF,值:ON 或 OFF
-
此变量允许在回退处理期间强制所有数据库连接断开。它与故障转移支持一起用于带有 Microsoft Cluster Server (MSCS) 的 Windows 环境中。如果 DB2_FALLBACK 未设置或设置为 OFF,且在回退期间数据库连接一直存在,那么不会导致 DB2 资源脱机。这意味着回退处理将失败。
DB2_FMP_COMM_HEAPSZ
-
操作系统:Windows 和 UNIX
-
缺省值:20 MB 或足够的空间来运行 10 个受防护的例程(以较大者为准)。在 AIX 上,缺省值是 256 MB
-
此变量指定用于受防护的例程调用(例如,存储过程或用户定义的函数调用)的池的大小(以 4 KB 页计)。每个受防护的例程使用的空间是aslheapsz 配置参数值的两倍。
如果正在系统上运行大量的受防护的例程,那么可能需要增大此变量的值。如果只是运行非常少量的受防护的例程,那么可以减小这个变量值。
将此值设置为 0 表示不创建集合,因此无法调用任何受防护的例程。它还意味着将禁用运行状况监视器和数据库自动维护功能(例如,自动备份、收集统计信息和 REORG),原因是此功能依赖于受防护的例程基础结构。
如果正运行 SAS 数据库内分析(通过设置 DB2_SAS_SETTINGS 注册表变量来启用),那么用于与 SAS 嵌入式进程 (EP) 的连接的内存也将从 FMP 堆分配。调整该堆以容纳连接(这些连接运行一些包括数据库内分析的查询)时,相似的受防护例程准则适用。一般来说,您可能期望 FMP 堆内存需求增大 120 KB。但是,如果您通过设置 DB2_SAS_SETTINGS 注册表变量指定了 COMM_BUFFER_SZ 值,那么 FMP 堆内存需求的增幅为 COMM_BUFFER_SZ 值乘以您要支持的并行 SAS 查询数的两倍。
DB2_GRP_LOOKUP
-
操作系统:Windows
-
缺省值:NULL,值:LOCAL、DOMAIN、TOKEN、TOKENLOCAL 或 TOKENDOMAIN
-
此变量指定如何使用 Windows 安全性机制来枚举用户所属于的组。
DB2_HADR_BUF_SIZE
-
操作系统:所有操作系统
-
缺省值:2*logbufsz
-
此变量指定备用日志接收缓冲区大小(以日志页为单位)。如果未设置此变量,那么 DB2 将主要 logbufsz 配置参数值的两倍大小用作备用接收缓冲区大小。可以指定的最大大小是 4 GB。应该在备用实例中设置此变量。主数据库会将其忽略。
如果 HADR 同步方式(hadr_syncmode 数据库配置参数)设置为 ASYNC,那么在对等状态下,低速的备用数据库可能会导致主数据库上的发送操作延迟,并因此而阻塞主数据库上的事务处理。可以在备用数据库上配置大于缺省日志接收缓冲区的缓冲区用来保存更多未处理的日志数据。这可使得在很短的时间内主数据库生成日志数据的速度比备用数据库使用这些数据的速度更快,而且不会阻塞主数据库上的事务处理。
注: 较大的日志接收缓冲区有助于承担主数据库上的峰值事务负载,但是如果备用数据库上的平均重放速度小于主数据库上的记录速度,那么该缓冲区仍将装满。
DB2_HADR_NO_IP_CHECK
-
操作系统:所有操作系统
-
缺省值:OFF,值:ON |OFF
-
指定是否对 HADR 连接绕过 IP 检查
-
此变量主要用于在网络地址转换 (NAT) 环境中对 HADR 连接绕过 IP 交叉检查。建议不要在其他环境中使用此变量,因为它会削弱 HADR 配置的健全检查。缺省情况下,会在建立 HADR 连接时检查本地主机参数和远程主机参数的配置是否一致。主机名称会映射到 IP 地址以进行交叉检查。将执行两项检查:
-
HADR_LOCAL_HOST parameter on primary = HADR_REMOTE_HOST parameter on standby
-
HADR_REMOTE_HOST parameter on primary = HADR_LOCAL_HOST parameter on standby
如果检查失败,连接将关闭。
当此参数打开时,将不执行 IP 检查。
DB2_HADR_PEER_WAIT_ LIMIT
DB2_HADR_ROS
-
操作系统:所有操作系统
-
缺省值:OFF,值:OFF 或 ON
-
此变量启用对备用功能部件进行 HADR 读取。对 HADR 备用数据库启用了 DB2_HADR_ROS 时,此备用数据库将接受客户机连接并允许对它运行只读查询。DB2_HADR_ROS 是静态注册表变量,因此它要求重新启动 DB2 实例以使已更改的设置生效。
DB2_HADR_SORCVBUF
-
操作系统:所有操作系统
-
缺省值:操作系统 TCP 套接字接收缓冲区大小,值:1024 至 4294967295
-
此变量指定 HADR 连接的操作系统 (OS) TCP 套接字接收缓冲区大小,这允许用户定制有别于其他连接的 HADR TCP/IP 行为。某些操作系统会自动对用户指定的值进行取整,或者以静默方式限制用户指定的值的大小。用于 HADR 连接的实际缓冲区大小将记录在 db2diag 日志文件中。请参阅操作系统网络调整指南以根据网络流量对此参数进行最佳设置。应将此变量与 DB2_HADR_SOSNDBUF 结合使用。
DB2_HADR_SOSNDBUF
-
操作系统:所有操作系统
-
缺省值:操作系统 TCP 套接字发送缓冲区大小,值:1024 至 4294967295
-
此变量指定 HADR 连接的操作系统 (OS) TCP 套接字发送缓冲区大小,这允许用户定制有别于其他连接的 HADR TCP/IP 行为。某些操作系统会自动对用户指定的值进行取整,或者以静默方式限制用户指定的值的大小。用于 HADR 连接的实际缓冲区大小将记录在 db2diag 日志文件中。请参阅操作系统网络调整指南以根据网络流量对此参数进行最佳设置。应将此变量与 DB2_HADR_SORCVBUF 结合使用。
DB2_HISTORY_FILTER
-
操作系统:所有操作系统
-
缺省值:NULL,值:NULL、G、L、Q、T 或 U
-
此变量指定不会修改历史记录文件的操作。可使用
DB2_HISTORY_FILTER 注册表变量来减少对历史记录文件的潜在争用(通过过滤掉操作)。使用逗号分隔列表(值之间没有空格)来指定不会修改历史记录文件的操作:
db2set DB2_HISTORY_FILTER=T,L
DB2_HISTORY_FILTER 的可能值包括:
-
G:重组操作
-
L:装入操作
-
Q:停顿操作
-
T:改变表空间操作
-
U:卸载操作
DB2LDAP_BASEDN
在 db2dsdriver.cfg 文件中可以指定的等效关键字为 BaseDN。
DB2LDAP_CLIENT_PROVIDER
-
操作系统:Windows
-
缺省值:NULL(如果 Microsoft 可用,那么使用此操作系统;否则使用 IBM。)值:IBM 或 Microsoft
-
当在 Windows 环境中运行时,DB2 软件支持使用 Microsoft LDAP 客户机或 IBM LDAP 客户机来访问 LDAP 目录。此注册表变量用来显式地选择 DB2 软件要使用的 LDAP 客户机。
注: 要显示此注册表变量的当前值,可使用
db2set 命令:
db2set DB2LDAP_CLIENT_PROVIDER
在 db2dsdriver.cfg 文件中可以指定的等效关键字为 ClientProvider。
DB2LDAPHOST
-
操作系统:所有操作系统
-
缺省值:Null,值:base_domain_name[:port_number] 或者 base_domain_name:SSL:636(当使用支持 SSL 的 LDAP 主机时)
-
指定 LDAP 目录所在位置的主机名和可选的端口号,其中 base_domain_name 是 TCP/IP 主机名,[:port_number] 是端口号。
在 db2dsdriver.cfg 文件中可以指定的等效关键字为 LDAPServerHost。
DB2LDAP_SEARCH_SCOPE
-
操作系统:所有操作系统
-
缺省值:DOMAIN,值:LOCAL、DOMAIN 或 GLOBAL
-
指定在轻量级目录访问协议 (LDAP) 中搜索数据库分区信息或域信息的范围。LOCAL 禁止在 LDAP 目录中进行搜索。DOMAIN 仅在当前目录分区的 LDAP 中进行搜索。GLOBAL 在所有目录分区的 LDAP 中进行搜索,直到找到对象为止。
DB2_LOAD_COPY_NO_OVERRIDE
-
操作系统:所有操作系统
-
缺省值:NONRECOVERABLE,值:COPY YES 或 NONRECOVERABLE
-
此变量将把任何 LOAD COPY NO 转换为 LOAD COPY YES 或 NONRECOVERABLE,这取决于该变量的值。此变量适用于 HADR 主数据库以及标准(非 HADR)数据库;HADR 备用数据库将忽略此变量。在 HADR 主数据库上,如果未设置此变量,那么 LOAD COPY NO 将转换为LOAD NONRECOVERABLE。此变量的值指定不可恢复的装入或复制目标,它使用与 COPY YES 子句相同的语法。
DB2LOADREC
-
操作系统:所有操作系统
-
缺省值:NULL
-
用于在前滚期间替换装入副本的位置。如果用户更改了装入副本的物理位置,那么必须在发出前滚之前设置 DB2LOADREC。
DB2LOCK_TO_RB
-
操作系统:所有操作系统
-
缺省值:NULL,值:STATEMENT
-
指定锁定超时是导致回滚整个事务还是仅回滚当前语句。如果将 DB2LOCK_TO_RB 设置为 STATEMENT,那么锁定超时只会导致回滚当前语句。任何其他设置都导致事务回滚。
DB2_MAP_XML_AS_CLOB_FOR_ DLC
注: 建议您不要使用 DB2_MAP_XML_AS_CLOB_FOR_DLC,将来的发行版中会将其除去。由于大多数访问 XML 值的现有 DB2 应用程序以这种方式对待支持 XML 的客户机,所以不再需要此变量。
DB2_MAX_LOB_BLOCK_SIZE
-
操作系统:所有操作系统
-
缺省值:0(没有限制),值:0 至 21487483647
-
设置在一个块中返回的最大 LOB 或 XML 数据量。这不是硬最大值;如果数据检索期间在服务器上达到此最大值,服务器将完成写当前行的操作,然后再对客户机返回命令(例如 FETCH)应答。
DB2_MIN_IDLE_RESOURCES
-
操作系统:Linux
-
缺省值:OFF,值:OFF 或 ON
-
此变量指定已激活的数据库在空闲时将使用最少的处理资源。这可能在某些虚拟 Linux 环境(例如,zVM)中很有用。在这些环境中,节省少量的资源有助于主机虚拟机监视器在它的所有虚拟机之间更有效地调度其 CPU 和内存资源。
DB2NOEXITLIST
-
操作系统:所有操作系统
-
缺省值:OFF,值:ON 或 OFF
-
此变量指示无论 注册表变量的设置为多少,DB2 都不应该装入出口列表处理程序,并且它不应在应用程序退出时执行落实。
当 DB2NOEXITLIST 关闭并且 DB2_COMMIT_ON_EXIT 打开时,将自动落实嵌入式 SQL 应用程序的任何未完成事务。建议在应用程序退出时显式添加 COMMIT 或 ROLLBACK 语句。
调用 DB2 出口处理程序时,动态装入和卸装 DB2 库的应用程序可能会在终止前崩溃。这种崩溃可能是因为应用程序尝试调用内存中不存在的函数而产生的。要避免这种情况,请设置 DB2NOEXITLIST 注册表变量。
DB2_NUM_CKPW_DAEMONS
-
操作系统:Linux 和 UNIX
-
缺省值:3,值:1[:FORK] 到 100[:FORK]
-
可以使用 DB2_NUM_CKPW_DAEMONS 注册表变量来启动可配置数目的检查密码守护程序。这些守护程序是在 db2start 执行期间创建的,在使用缺省的 IBMOSauthserver 安全插件时,它们用于处理检查密码请求。增大 DB2_NUM_CKPW_DAEMONS 的设置可以缩短建立数据库连接所需要的时间,但是此操作仅在下列情况下有效:同时建立了许多连接,并且进行认证需要的成本较高。
可以将 DB2_NUM_CKPW_DAEMONS 设置为介于 1 与 100 之间的值。数据库管理器所创建的守护程序的数目由DB2_NUM_CKPW_DAEMONS 指定。每个守护程序都可以直接处理检查密码请求。
您可以添加可选的 FORK 参数,以使检查密码守护程序能够显式地衍生外部检查密码程序 (db2ckpw) 以处理检查密码请求。这与前发行版中将 DB2_NUM_CKPW_DAEMONS 设置为 0 相似。在 FORK 方式下,每个检查密码守护程序都将为每个请求衍生检查密码程序以检查密码。在 FORK 方式下,守护程序将作为实例所有者启动。
如果 DB2_NUM_CKPW_DAEMONS 设置为零,那么有效值将设置为 3:FORK,即,以 FORK 方式启动 3 个检查密码守护程序。
DB2_OPTSTATS_LOG
-
操作系统:所有操作系统
-
缺省值:未设置(请参阅下面的详细信息),值:OFF 或 ON {NUM | SIZE | NAME | DIR}
-
DB2_OPTSTATS_LOG 指定统计事件日志记录文件的属性,这些文件用于监视和分析与统计信息收集相关的活动。DB2_OPTSTATS_LOG 未设置或设置为 ON 时,将启用统计事件日志记录,从而允许您监视系统性能并保留历史记录以便更好地确定问题。日志记录将写入第一个日志文件中,直到该文件已满为止。后续记录将写入下一个可用的日志文件。如果达到文件的最大数目,那么将用新记录覆盖存在时间最长的日志文件。如果您非常担心系统资源消耗,请通过将此注册表变量设置为 OFF 来将其禁用。
显式启用统计信息事件日志记录时(设置为
ON),您可以修改一些选项:
-
NUM:轮换日志文件的最大数目。缺省值:5,值:1 - 15
-
SIZE:轮换日志文件的最大大小。(每个旋转文件的大小为 SIZE/NUM。)缺省值 = 15 Mb,值 1 Mb - 4096 Mb
-
NAME:轮换日志文件的基本名称。缺省值:db2optstats.number.log,例如 db2optstats.0.log 和 db2optstats.1.log 等等。
-
DIR:轮换日志文件的基本目录。缺省值:diagpath/events
可以为任意多个这些选项指定值,但要启用统计信息日志记录时,应确保
ON 是第一个值。例如,要启用最大日志文件数为 6、最大文件大小为 25 Mb、基本文件名为
mystatslog 且目录为
mystats 的统计信息日志记录,请发出以下命令:
db2set DB2_OPTSTATS_LOG=ON,NUM=6,SIZE=25,NAME=mystatslog,DIR=mystats
DB2REMOTEPREG
-
操作系统:Windows
-
缺省值:NULL,值:任何有效 Windows 机器名
-
指定包含 DB2 实例概要文件和 DB2 实例的 Win32 注册表列表的远程机器名。DB2REMOTEPREG 的值只应在安装 DB2 之后设置一次,且不应该修改。使用此变量要格外小心。
DB2_RESOLVE_CALL_ CONFLICT
-
操作系统:AIX、HP-UX、Solaris、Linux 和 Windows
-
缺省值:YES,值:YES 或 NO
-
当触发器调用的例程尝试访问已由触发器主体中的其他语句和例程修复的表时,这会中断嵌套的 SQL 语句规则。设置DB2_RESOLVE_CALL_CONFLICT 以在执行 CALL 语句之前根据触发器的 SQL 标准规则强制完成对表的所有修改。
在重置 DB2_RESOLVE_CALL_CONFLICT 之前,必须停止实例,然后将其重新启动。然后重新绑定导致调用触发器的任何程序包。要重新绑定 SQL 过程,使用:CALL SYSPROC.REBIND_ROUTINE_PACKAGE ('P','procedureschema.procedurename','CONSERVATIVE');
您需要了解,DB2_RESOLVE_CALL_CONFLICT 会对性能产生影响。将 DB2_RESOLVE_CALL_CONFLICT 设置为 YES 会导致 DB2 数据库管理器通过在需要时插入临时表来解决所有潜在读/写冲突。通常,这样做的影响很小,因为最多插入一个临时表。这将在 OLTP 环境中产生很小影响,因为只有一(或少量)行被触发语句修改。通常,当遵循一般建议将 SMS(系统管理的空间)用作临时表空间时,认为设置DB2_RESOLVE_CALL_CONFLICT 所产生的性能影响很小。
DB2ROUTINE_DEBUG
-
操作系统:AIX 和 Windows
-
缺省值:OFF,值:ON 或 OFF
-
指定是否对 Java? 存储过程启用调试功能。如果不调试 Java 存储过程,那么使用缺省值 OFF。启用调试对性能有影响。
注: 建议您不要使用 DB2ROUTINE_DEBUG,将来的发行版中会将其除去。此存储过程调试器已替换为统一调试器。
DB2_SAS_SETTINGS
-
操作系统:所有操作系统
-
缺省值:未设置。值:ENABLE_SAS_EP、LIBRARY_PATH、COMM_BUFFER_SZ、COMM_TIMEOUT、RESTART_RETRIES、DIAGPATH或 DIAGLEVEL
-
此变量是带 SAS 嵌入式进程 (EP) 的数据库内分析的配置的主要点。除 ENABLE_SAS_EP 以外的所有设置都可在线配置。
-
ENABLE_SAS_EP(缺省值:FALSE)。如果设置为 TRUE,那么 SAS EP 将在 db2start 时自动启动。
-
LIBRARY_PATH。下次 SAS EP 进程启动时从中装入 SAS EP 库的标准路径。如果未指定路径,那么 DB2 数据库管理器会在sqllib/function/sas 目录下查找 SAS EP 库。为安全起见,SAS EP 库应安装在未授权用户无法修改或替换该文件的位置。选择下列其中一个选项:
-
请确保库路径和 SAS EP 库文件由实例所有者拥有并且只能由实例所有者写入。
-
请将该文件放在设置了粘性位的目录(例如,sqllib/function)中。
请注意,只有具有 SYSADM 权限的用户才能使用 db2set 配置库路径。
-
COMM_BUFFER_SZ。指定要用于 DB2 数据服务器与 SAS EP 之间的通信会话的共享内存缓冲区的整数值(以 4 KB 页计)。此参数的有效值范围为 1 到 32767。如果未指定值,那么缺省值为 15。通信缓冲区是从 FMP 通信堆分配的。有关更多信息,请参阅。
-
COMM_TIMEOUT(缺省值:300 秒)。超时值,DB2 数据库管理器在交换控制消息时用它来确定是否应将 SAS EP 视为无法响应。如果达到此值,那么数据库管理器会终止 SAS EP 以便可再次衍生 SAS EP。
-
RESTART_RETRIES(缺省值:10)。整数值,用于指定检测到 SAS EP 异常终止后 DB2 数据库管理器应尝试重新衍生 SAS EP 的次数。此参数的有效值范围为 0 到 100。达到重试计数后,数据库管理器会等待 15 分钟,然后再次重试该操作。
-
DIAGPATH。标准路径,用于指定 SAS EP 的诊断日志的位置。如果未指定值,那么缺省值为 diagpath 数据库管理器配置参数的值。
-
DIAGLEVEL。整数值,用于指定 SAS 诊断日志中捕获的消息的最低严重性级别。此参数的有效值范围为 1 到 4(严重、错误、警告和参考)。如果未指定值,那么缺省值为 diaglevel 数据库管理器配置参数的值。
-
MEMSIZE。整数值,用于指定 SAS EP 在给定主机上可使用的最大内存量(以 4 KB 页计)。此参数的有效值范围为 1 到 4294967295。如果有多个逻辑分区,那么应用于每个分区的值将除以对应主机上的逻辑分区数。如果未指定值,那么缺省值为instance_memory 数据库管理器配置参数值的 20%。如果 instance_memory 参数设置为固定值,请确保此值会将 SAS EP 的额外内存需求考虑在内。
示例:
db2set DB2_SAS_SETTINGS="ENABLE_SAS_EP:TRUE;
LIBRARY_PATH:/home/instowner/sqllib/function/sas"
DB2SATELLITEID
-
操作系统:所有操作系统
-
缺省值:NULL,值:在卫星控制数据库中声明的有效卫星标识
-
指定在卫星进行同步时被传递至卫星控制服务器的卫星标识。如果没有为此变量指定值,那么将登录标识用作卫星标识。
DB2_SERVER_CONTIMEOUT
-
操作系统:所有操作系统
-
缺省值:180,值:0 到 32767 秒
-
此注册表变量和 注册表变量都配置在连接期间处理新客户机的方式。DB2_SERVER_CONTIMEOUT 允许您调整代理程序等待客户机的连接请求直至终止连接的时间,该时间以秒计。在大多数情况下,您无需调整此注册表变量,但如果在连接时 DB2 客户机常常被服务器作超时处理,您可以将 DB2_SERVER_CONTIMEOUT 设置为更高的值以延长超时时间。如果设置了无效值,那么将使用缺省值。此注册表变量不是动态的。
DB2_SERVER_ENCALG
-
操作系统:所有操作系统
-
缺省值:NULL,值:AES_CMP 或 AES_ONLY
-
注: 在V9.7 中,建议不要使用 DB2_SERVER_ENCALG,将来的发行版中可能会将它除去。
如果将实例升级到 DB2 V9.7 时设置了 DB2_SERVER_ENCALG 注册表变量,那么 alternate_auth_enc 配置参数将根据DB2_SERVER_ENCALG 的设置来设置为 AES_ONLY 或 AES_CMP。因此,要指定用于对用户标识和密码进行加密的加密算法,请更新alternate_auth_enc 配置参数。如果设置了 alternate_auth_enc 配置参数,那么它的值将优先于 DB2_SERVER_ENCALG 注册表变量值。
DB2SORT
-
操作系统:所有操作系统,仅适用于服务器
-
缺省值:NULL
-
此变量指定 LOAD 实用程序在运行时要装入的库的位置。该库包含在对索引数据排序时使用的函数的入口点。使用 DB2SORT 来利用供应商提供的排序产品,以便在生产表索引时与 LOAD 实用程序一起使用。提供的路径必须是相对于数据库服务器的路径。
DB2_STANDBY_ISO
-
操作系统:所有操作系统
-
缺省值:NULL,值:UR 或 OFF
-
此变量将正在活动 HADR 备用数据库上运行的应用程序和语句所请求的隔离级别强制设置为“未落实的读 (UR)”。当 DB2_STANDBY_ISO 设置为 UR 时,高于 UR 的隔离级别会被强制设置为 UR,并且不会返回警告。如果此 HADR 备用数据库转变为 HADR 主数据库,那么此变量将不起作用。
DB2STMM
-
操作系统:UNIX
-
此注册表变量从 V9.7 FP5 开始提供,用于控制一组参数,这些参数允许您修改自调整内存管理器 (STMM) 的某些特征。
-
参数:
GLOBAL_BENEFIT_SEGMENT_COMPATIBLE
-
缺省值:未设置,值:YES 或 NO
-
仅当数据库的 database_memory 配置参数设置为 AUTOMATIC 时,GLOBAL_BENEFIT_SEGMENT_COMPATIBLE 参数才会起作用。
此参数将影响 STMM 共享内存段的许可权设置。仅在具有多个实例且其中某些实例是下级实例的系统上才应该将此参数设置为YES,并且将 database_memory 设置为 AUTOMATIC,以减轻下级实例兼容性问题,这些问题会影响调整数据库的整体数据库内存使用量。属于下列任何 DB2 发行版和修订包级别的实例都是下级实例:所有修订包级别的 DB2 V9.1、DB2 V9.5 FP7 和更低版本以及 DB2 V9.7 FP4 和更低版本。
对于非 root 用户安装的 DB2 中的实例,仅当您希望系统上的所有实例都使用相同的 STMM 共享内存段时,才应该设置此变量。不设置此变量或将其设置为 NO 将导致非 root 用户实例使用其自己的特定于实例的 STMM 共享内存段,这可能会影响任何将database_memory 设置为 AUTOMATIC 的数据库调整整体数据库内存使用量。
此注册表变量在 DB2 实例启动期间读取一次。注意,您需要在所有已升级的实例(即,非下级实例)上设置此参数,并且在设置此参数后,需要重新启动所有已升级的实例。
GLOBAL_BENEFIT_SEGMENT_UNIQUE
-
缺省值:未设置,值:YES 或 NO
-
仅当数据库的 database_memory 配置参数设置为 AUTOMATIC 时,GLOBAL_BENEFIT_SEGMENT_UNIQUE 参数才会起作用。
此参数指定每个已升级的实例(即,非下级实例)将使用其自己的特定于实例的 STMM 共享内存段。这意味着每个实例将调整属于它的任何数据库的整体数据库内存使用量,而与调整系统上属于其他实例的数据库的整体数据库内存使用量无关。
对于系统上的所有实例,仅当 instance_memory 配置参数未设置为 AUTOMATIC 时,才应该考虑将此参数设置为 YES。
此注册表变量在 DB2 实例启动期间读取一次。注意,需要在所有已升级的实例上设置此参数,并且在设置此参数后,需要重新启动所有已升级的实例。
DB2_TRUNCATE_ REUSESTORAGE
-
操作系统:所有操作系统
-
缺省值:NULL(未设置),值:IMPORT 或 import
-
可以使用此变量来解决带有 REPLACE 命令的 IMPORT 与 BACKUP ... ONLINE 命令之间的锁定争用情况。在某些情况下,联机备份和截断操作无法同时执行。发生这种情况时,可以将 DB2_TRUNCATE_REUSESTORAGE 设置为 IMPORT 或 import,这将跳过对象(包括数据、索引、长字段、大对象和块映射(对于多维集群表))的物理截断,而是只执行逻辑截断。即,带有 REPLACE 命令的 IMPORT 将清空该表,从而导致该对象的逻辑大小减小,但仍分配磁盘存储器。
此注册表变量是动态的:可以设置或取消设置它,而不必停止并启动实例。可以在联机备份启动前设置 DB2_TRUNCATE_REUSESTORAGE,然后在联机备份完成后将其取消设置。对于多分区环境来说,此注册表变量只在设置了此变量的节点上处于活动状态。DB2_TRUNCATE_REUSESTORAGE 只对 DMS 永久对象有效。
在 SAP 环境中,当设置了 =SAP 时,此注册表变量的缺省值为 IMPORT。
DB2_USE_DB2JCCT2_ JROUTINE
-
操作系统:所有操作系统
-
缺省值:未设置,值:ON/YES/1/TRUE 或 OFF/NO/0/FALSE
-
用于 Java 存储过程和用户定义的函数的缺省驱动程序是 IBM Data Server Driver for JDBC and SQLJ。如果要使用不推荐使用的 DB2 JDBC 2 类驱动程序 Linux 版、UNIX 版和 Windows 版来处理 Java 例程的 SQL 请求,请将 DB2_USE_DB2JCCT2_JROUTINE 设置为 OFF、NO、0或 FALSE 中的任意一个。
注: 在 V9.7 中,不推荐使用 DB2_USE_DB2JCCT2_JROUTINE,将来的发行版中可能会将其除去。
DB2_UTIL_MSGPATH
-
操作系统:所有操作系统
-
缺省值:instanceName/tmp 目录
-
DB2_UTIL_MSGPATH 注册表变量与 SYSPROC.ADMIN_CMD 过程、SYSPROC.ADMIN_REMOVE_MSGS 过程和 SYSPROC.ADMIN_GET_MSGS UDF 配合使用。它应用于实例级。可以设置 DB2_UTIL_MSGPATH 来指示受防护用户标识在服务器上可以读写和删除文件的目录路径。必须能从所有协调程序分区访问此目录,而且该目录必须有足够的空间来容纳实用程序消息文件。
如果未设置此路径,那么使用 instanceName/tmp 目录作为缺省目录(请注意,卸载 DB2 时,将清除 instanceName/tmp)。
如果运行 ALTOBJ 过程时未设置此路径,那么将在 ~sqllib/tmp 目录中创建一个临时消息文件。
更改此路径时,不会自动移动或删除先前设置所指向目录中的现有文件。如果要检索在旧路径下创建的消息内容,那么必须手动将这些消息(它们带有实用程序名前缀和用户标识后缀)移到 DB2_UTIL_MSGPATH 指向的新目录。以后,将在新位置创建、读取和清除实用程序消息文件。
DB2_UTIL_MSGPATH 目录下的文件都是特定于实用程序的,而与事务无关。它们不是备份映像的一部分。DB2_UTIL_MSGPATH 目录下的文件由用户管理;这意味着用户可使用 SYSPROC.ADMIN_REMOVE_MSGS 过程来删除消息文件。卸载 DB2 时不会清除这些文件。
DB2_VENDOR_INI
-
操作系统:AIX、HP-UX、Solaris 和 Windows
-
缺省值:NULL,值:任何有效路径和文件。
-
指向包含所有特定于供应商的环境设置的文件。当数据库管理器启动时读取该值。
注: 在 V9.5 中,不推荐使用 DB2_VENDOR_INI,将来的发行版中可能会将它除去。但是,可以将它包含的环境变量设置放入由 DB2_DJ_INI 变量指定的文件中。
DB2_XBSA_LIBRARY
-
操作系统:AIX、HP-UX、Solaris 和 Windows
-
缺省值:NULL,值:任何有效路径和文件。
-
指向供应商提供的 XBSA 库。在 AIX 上,如果共享对象未命名为 shr.o,设置必须包括该共享对象。HP-UX、Solaris 和 Windows 不需要共享对象名。例如,要对 DB2 使用 Legato 的 NetWorker Business Suite Module,必须按如下所示设置注册表变量:
db2set DB2_XSBA_LIBRARY="/usr/lib/libxdb2.a(bsashr10.o)"
通过 BACKUP DATABASE 或 RESTORE DATABASE 命令可以调用 XBSA 接口。例如:
db2 backup db sample use XBSA
db2 restore db sample use XBSA