配置 Optim High Performance Unload

使用 cfg 目录中的 db2hpu.cfg 文件配置 Optim™ High Performance Unload. db2hpu.cfg 中的设置允许您覆盖内置默认值, Optim High Performance Unload 并根据您的需要更改。

以下示例中显示了典型的 db2hpu.cfg 文件:
# HPU default configuration
bufsize=2097152
db2dbdft=SAMPLE
db2instance=db2inst2
netservice=db2hpudm42
doubledelim=binary
 
以井号 (#) 开头的行是注释。 每个参数都定义在一行上,格式如下:
keyword=value
配置文件中也支持空格,因此可以在等号 (=) 周围包含空格。
对于支持值列表的配置文件参数,不同平台的语法不同。 在 UNIX™ 和 Linux™ 系统上,格式为
keyword=value:subvalue, value:subvalue
在 Windows™ 系统中,格式为
keyword=value;subvalue, value;subvalue

配置文件参数

请使用以下参数为您的 Optim High Performance Unload 安装:
allow_unlimited_memory
如果您希望允许 Optim High Performance Unload 忽略限制关联外壳内存消耗的 ulimit 值,请将此参数设置为 yes。 如果卸载由于内存限制而失败,那么可以使用此参数。 缺省值为 noallow_unlimited_memory 是通过将 memory_limit 设置为 no来有效忽略内存限制的先决条件。
限制: 此参数仅适用于 Linux 和 UNIX 平台,只能在主 db2hpu.cfg 文件中指定,而不能在任何用户指定的配置文件中指定。
blu_parallelism
使用此参数可确定要并行处理的按列组织的表的列数。 缺省情况下,卸载按列组织的表的多个列时,会在其处理过程中发生并行性,并且会自动确定以并行方式处理的列数。 此参数允许您将其选择的值设置为此数字。 分配给它的值必须是数字值。 以下是其设置的示例:
...
blu_parallelism=10
...
请参阅 卸载按列组织的表时的性能注意事项 以获取更多信息。
bufsize
使用此参数可定义当 Optim High Performance Unload 生成输出文件时使用的默认缓冲区大小。 该值是用于此缓冲区的实际字节数。 最小可接受值为 262144 (256 千字节) ,最大可接受值为 2097152 (2 MB)。 较小的值将在处理期间使用较少的内存,但将降低 I/O 效率。 最大值限制为 2 MB 的原因是,大于 2 MB 的值将使用更多内存,但可能不会显着提高 I/O 效率。 如果输出文件与文件 Optim High Performance Unload 将要读取的文件(容器或备份)位于同一物理磁盘上,那么增大该值可能会提高 Optim High Performance Unload
例如,如果您有4个可用处理器,并且想要卸载 TABLE1、 TABLE2 和 TABLE3 ,并选择 bufsize=262144Optim High Performance Unload 以4个处理线程和每个256 KB的写入缓冲区依次处理每个表。
compression_minsize
如果需要压缩的数据量较小,压缩数据的效率可能会大大降低。 在这种情况下,最好不要压缩它。 如果启用了压缩通过网络发送的数据的功能,则可以通过在 db2hpu.cfg 配置文件中设置此参数,选择压缩此数据时考虑的最小大小。 赋值必须是一个数值,介于0到10之间,单位是Kb。 其默认值为 4Kb。 当此参数设置为给定值时,如果传输的数据量小于此限制,则在发送前不会对其进行压缩。
以下是该参数设置的示例,其值对应于 8Kb 的最小值:
...
compression_minsize=8
...
db2api_monitoring
仅适用于 Linux 和 UNIX 平台。 使用 Optim High Performance Unload FLUSH BUFFERPOOLS和LOCK选项需要调用 Db2® API,以获取 Db2 锁。 配置变量可用于设置时间限制,超过该限制,则 db2api_monitoring 配置变量可用于设置一个时间限制, Optim High Performance Unload 将生成信息消息,指示其处理正在等待 Db2 锁,然后才能继续。 使用这些 Optim High Performance Unload 选项所购买的锁不遵守任何锁监控条件。 通过将 db2hpu.cfg 文件的 db2api_monitoring 参数的值设置为秒数来进行此监视配置。 此参数缺省值为 0。 如果未配置监视,或者参数值设置为 0 ,那么将禁用 Db2 API 上用于锁定和清空缓冲池操作的监视机制。 以下是使用参数的示例:
...
db2api_monitoring=120
...
当每次达到监视值时启用该机制时,将发送一条参考消息,用于指定发生监视的操作。 这些操作由下列其中一个字符串标识:
  • 锁定:此操作在数据卸载之前执行,以阻止在 Optim High Performance Unload 过程中(当锁定选项设置为“是”时)。
  • LOCK RESET: 此操作在数据卸载后执行,以释放表的锁定 (当设置了 LOCK YES 选项时)。
  • 清空缓冲池: 在数据卸载之前执行此操作,以在磁盘上注册和清空缓冲池中的数据 (当设置了 FLUSH BUFFERPOOLS YES 选项时)。
  • FLUSH BUFFERPOOLS RESET: 此操作在数据卸载之后执行,以落实数据在缓冲池中的注册 (当设置了 FLUSH BUFFERPOOLS YES 选项时)。
例如 :这份 Optim High Performance Unload 执行报告,说明了执行锁定操作时达到监控时间的情况:

INZM031I Optim High Performance Unload for Db2 06.01.00.001(120531) 
         64 bits 06/04/2012 (Linux lat194 x86_64)
INZI473I Memory limitations: 'unlimited' for virtual memory and 'unlimited' for data segment
       ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+
000001 GLOBAL CONNECT TO SAMPLE; 
000002 UNLOAD TABLESPACE 
000003 PART(ALL) 
000004 SELECT * FROM "EMPLOYEE"; 
000005 OUTFILE("outfile") 
000006 ; 

INZU462I HPU control step start: 16:13:09.580.
INZU463I HPU control step end : 16:13:09.591. 
INZU464I HPU run step start : 16:13:09.603.
 INZU595I The 'LOCK' Db2 API call is still in progress (partition 0 of 'I910.EMPLOYEE' table)
INZU595I The 'LOCK' Db2 API call is still in progress (partition 0 of 'I910.EMPLOYEE' table)
INZU595I The 'LOCK' Db2 API call is still in progress (partition 0 of 'I910.EMPLOYEE' table) 
INZU410I HPU utility has unloaded 42 rows on lat194 host for I910.EMPLOYEE in outfile. 
INZU465I HPU run step end : 16:13:21.699. 
INZI441I HPU successfully ended: Real time -> 0m12.118807s 
User time -> 0m3.214510s : Parent -> 0m0.032994s, Children -> 0m3.181516s 
Syst time -> 0m3.529462s : Parent -> 0m0.013997s, Children -> 0m3.515465s
在此报告中,执行锁定操作时达到了三次监视值。 根据设置的监视值,您可以得出以下结论: 此值选择不当 (在此操作的持续时间内设置为太小的值) ,或者在此操作的持续时间内发生了意外情况。 执行已成功完成,已卸载数据。 如果锁操作根本没有完成,信息提示将继续生成,直到 Optim High Performance Unload 锁操作完全结束,信息提示将继续生成,直到 Optim High Performance Unload 手动终止,或者 Db2 释放阻止 Optim High Performance Unload 继续前进。
db2api_timeout
仅适用于 Linux 和 UNIX 平台。 参数来终止执行。 db2api_monitoring 参数来终止正在运行的 Optim High Performance Unload 操作,该操作在 db2api_monitoring 参数的计时值时,终止仍在进行的操作。 db2api_timeout 参数的可能值为 yes 或 no。 缺省值为 no。 如果没有为 db2api_monitoring 参数设置值,那么将忽略 db2api_timeout 参数设置为 yes。 以下是使用参数的示例:
...
db2api_monitoring=120
...
db2api_timeout=yes
...
终止执行时,将发送错误消息。 此消息指定发生超时的操作。 受监视操作的列表在 db2api_monitoring 参数的描述中。
例如 :这份 Optim High Performance Unload 执行报告说明了在执行锁定操作时达到监控时间,导致执行超时的情况:

INZM031I Optim High Performance Unload for Db2 06.01.00.001(130412) 
         64 bits 04/16/2013 (Linux lat186 3.1.0-1.2-desktop (187dde0) x86_64)
INZI473I Memory limitations: 'unlimited' for virtual memory and 'unlimited' for data segment
       ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+
000001 GLOBAL CONNECT TO SAMPLE;
000002 UNLOAD TABLESPACE
000003 LOCK YES
000004 FLUSH BUFFERPOOLS NO
000005 SELECT * FROM EMPLOYEE;
000006 OUTFILE("outfile")
000007 ;

INZU462I HPU control step start: 15:29:59.597.
INZU463I HPU control step end  : 15:29:59.912.
INZU464I HPU run step start    : 15:30:00.027.
 INZU624E A time out occurred for 'LOCK' Db2 API call (partition 0 of 'I958.EMPLOYEE' table).
INZU465I HPU run step end      : 15:30:02.364.
INZU366I HPU return code 8 (reason code 0x123a016)
 
在此报告中,执行锁定操作时达到了监视值。 执行被终止,并以错误告终。 Optim High Performance Unload 执行被终止,并以错误告终。
db2compr_api
使用此参数来指定从压缩备份映像卸载时要装入的缺省压缩库名称。
db2dbdft
此参数对应于数据库名称,当 Optim High Performance Unload 当没有指定数据库名称时(命令行选项 –d )。
db2instance
使用此参数指定实例名称,用于 Optim High Performance Unload 在没有指定实例名称时使用的实例名称(命令行选项 –i )。
db2promote
使用此参数来指定是否应该为具有 Db2 权限从表中选择,但无权对该表执行 QUIESCE SHARE 的用户授予运行卸载的权限。

需要 QUIESCE 才能以一致状态卸载数据。 如果 db2promote 设置为 no ,那么 LOCK 参数的缺省值设置为 NO。 此缺省值改为设置为 YES。 有权同时使用 SELECT 和 QUIESCE 的用户将不受 db2promote 选项的影响。

db2variables
使用此参数可指定使用文件来设置 Db2 变量的值。 它必须与包含 Db2 变量名称及其值的列表的文件的绝对路径一起指定。
以下是其设置的示例:
...
db2variables=/home/i1111/mydb2vars.txt
...
dir_cfg
当多个机器参与一个 Db2 实例,且 Optim High Performance Unload ,则可使用此参数共享相同的 Optim High Performance Unload 配置文件。 可共享的配置文件包括: Optim High Performance Unload 可共享的配置文件包括:
  • db2hpu.cfg
  • db2hpu.locale
  • db2hpu.map
  • db2hpu.debug
  • db2hpu.trace
  • remote.locale
为了共享这些文件:
-在共享位置复制一台机器的所有配置文件。
-通过删除所有内容并在其中仅添加 dir_cfg 参数,更新每台机器的 cfg 目录中的 db2hpu.cfg 配置文件。
-将参数设置为所有共享配置文件所在目录的绝对路径。
注: 对于每台机器,如果 db2hpu.cfg 配置文件仅包含具有共享位置的 dir_cfg 参数,那么将使用共享配置。 如果 dir_cfg参数不是唯一的参数,或者不存在 dir_cfg参数 ,则共享配置将被忽略, Optim High Performance Unload 本机上的配置文件将被使用。
重要信息: 必须将参数值指定为共享配置文件所在目录的绝对路径。 例如,如果 /sharedfs 是共享配置文件位置,那么必须在每个本地配置文件中指定 dir_cfg=/sharedfs
doubledelim
使用此参数为控制文件中的 DOUBLE DELIM 选项指定缺省值。 此参数仅适用于 DEL 或定界输出格式。 如果设置为 ON ,那么将扫描字符类型列和二进制类型列以查找出现的定界符,并且每个发现的出现都将加倍。 如果设置为 BINARY ,那么将仅扫描具有 FOR BIT DATA 和二进制列的字符列。 如果设置为 OFF ,那么不会进行扫描。 缺省设置为 BINARY。

您可以通过尽可能少地执行扫描来实现最佳性能。 您可能可以通过选择要用作已卸载数据中未使用的定界符的字符来避免扫描字符列。 如果不能使用未在卸载数据中使用的字符,请在必要时在控制文件中将 DOUBLE DELIM 选项设置为 ON。 如果您预期用户不会在需要时将 DOUBLE DELIM 选项设置为 ON ,那么可以在配置文件中进行设置。 用户可以在其单独的控制文件中覆盖此处所做的任何设置。

graphic_even_padding
此参数允许在 ASC 输出文件中处理大小为奇数的 GRAPHIC , VARGRAPHIC , LONG VARGRAPHIC 和 DBCLOB 列的值的方式。 缺省情况下,使用空字节填充这些值,以便输出文件中的关联区域具有偶数大小。 如果不想应用此类行为,那么可以通过将此参数设置为 no 来禁用这些值的偶数大小的填充。 缺省值为“是”。
以下是其设置的示例:
...
graphic_even_padding=no
...
hidden
要指定要在卸载中包含隐藏列,请将此选项设置为 yes。 缺省值为 no
ignore_load_error
此参数允许在自动迁移表时忽略执行 Db2 Load 实用程序期间将发生的错误。
要覆盖特定任务的此设置,可以在控制文件中使用 IGNORE_LOAD_ERROR 子句指定不同的设置。 更多信息,请参阅 IGNORE_LOAD_ERROR
当执行 Optim High Performance Unload 将表自动迁移到 Db2 环境时,它会在后台调用 Db2 Load实用程序,将数据加载到目标表中。 缺省情况下,如果在 Db2 Load 执行期间发生错误,那么自动迁移将停止并因错误而终止。 如果要在同一执行中迁移多个表,那么在迂到失败的数据装入步骤后将停止处理。 因此,将完全不处理尚未启动迁移的其余表。
对于这种情况,需要处理一组表,为了处理剩余的表,即使迁移一个表至少会因任何原因在 Db2 加载级别失败,可以配置 Optim High Performance Unload ,使其忽略 Db2 Load工具遇到的任何错误。 将处理要考虑的所有表的迁移,即使由于 Db2 装入级别的错误而无法迁移至少一个表也是如此。 在处理结束时,必须弄清楚是否存在由于 Db2 Load 实用程序迂到错误而导致迁移失败的表,以便处理它们的特定情况。 如果真的迂到这样的错误,有消息显示在执行报告中,也有消息提到这个错误被忽略。 但是,其余表按预期进行处理。
将此参数设置为 "yes" 将使您能够忽略 Db2 Load 实用程序执行期间发生的错误。 可能的值为 "yes" 或 "no"。 其缺省值为 "no"。
以下是其设置的示例:
...
ignore_load_error=yes
...
ignore_nonexistent_table
此参数允许通过将 db2hpu.cfg 配置文件中的表名设置为 "yes" 来忽略不存在的表名所导致的错误。
可能的值为 "yes" 或 "no"。 其缺省值为 "no"。
在同一执行期间执行多个表的卸载时,如果同时指定了 仅表 子句或 表除外 子句或 输入表 子句或 表修饰符 子句,那么缺省情况下,如果在此子句中指定的名称与现有表不符,那么将发送错误,并且将停止处理。 因此,将不会卸载尚未处理的其余表。
这种情况对于容易确定无法处理的表格来说可能是痛苦的。 为了在这种情况下简化操作,可以启动 Optim High Performance Unload ,这样它就不会理会不存在表导致的任何错误。 将处理要考虑的所有表的卸载,即使至少一个名称与任何表都不对应也是如此。 在处理的最后,人们必须弄清楚是否会有被忽略的名字,以照顾他们的特殊情况。 如果真的迂到这样的情况,有一条消息显示一个名字是执行报告中未知的,也有一条消息提到这个错误被忽略了。 但是,其余表按预期进行处理。
要覆盖特定任务的此设置,可以使用控制文件中的 IGNORE_NONEXISTENT_TABLE 子句指定其他设置。 更多信息,请参阅 IGNORE_NONEXISTENT_TABLE
以下是其设置的示例:
...
ignore_nonexistent_table=yes
...
instances_krb_keytab
如果将LOCK或FLUSH BUFFERPOOLS选项设置为YES,则使用此参数启用 Kerberos 认证机制 Optim High Performance Unload ,前提是锁存或缓冲池刷新选项设置为“是”。 该机制要求在连接 Db2 数据库前,先获取有效的 Kerberos 票证。 该参数允许指定一个 Kerberos keytab文件,用于获取有效的 Kerberos 票证。 必须根据以下模板,以数值列表的形式进行说明:
instance1:/path/keytab1,instance2:/path/keytab2,...
有了这样的列表,必要时可以指定多个 Db2 实例用户密钥表文件。
Optim High Performance Unload 在后台执行“kinit”命令时,将使用设置为此参数的 Kerberos 密钥表文件。 当指定了 instances_krb_principal 参数时,该参数为必填项。 为此参数设置的键表文件必须仅限于与其关联的 Db2 实例用户有权限访问。
...
instances_krb_keytab=db2inst:/home/db2inst/INSTANCE_KEYTAB.keytab
...
限制 :此参数只能在 Optim High Performance Unload 全局配置文件中。
instances_krb_principal
如果将LOCK或FLUSH BUFFERPOOLS选项设置为YES,则使用此参数启用 Kerberos 认证机制 Optim High Performance Unload ,前提是锁存或缓冲池刷新选项设置为“是”。 该机制要求在连接 Db2 数据库前,先获取有效的 Kerberos 票证。 此参数允许指定一个 Kerberos 主体,用于获取有效的 Kerberos 票证。 必须根据以下模板,以数值列表的形式进行说明:
instance1:PRINCIPAL1,instance2:PRINCIPAL2,...
有了这样的列表,必要时可以指定多个 Db2 实例用户主体。
Optim High Performance Unload 在后台执行“kinit”命令时,将使用设置为此参数的 Kerberos 主体。 当指定了 instances_krb_keytab 参数时,该参数为必填项。
...
instances_krb_principal=db2inst:INSTANCE_PRINCIPAL
...
限制 :此参数只能在 Optim High Performance Unload 全局配置文件中。
ixftrunc
卸载 IXF 格式的 VARCHAR 或 VARGRAPHIC 数据时,请使用此参数来节省空间。 仅考虑这两种类型的列,其大小大于为此参数给定的值。 使用此参数,为这些类型的列卸载的每个值将具有根据数据中实际字符数的大小,而不是为该列设置最大大小。 缺省值为 20。
keepalive_time
用于网络通信的 Optim High Performance Unload 用于网络通信的插槽可能会长时间处于非活动状态。 特别是,在自动数据迁移期间创建的套接字可能会发生此情况。
在自动数据迁移期间,在表数据的目标装入期间,套接字处于不活动状态。 它可能长时间保持不活动状态,具体取决于 "装入" 步骤可能需要的时间。
某些系统配置为使保持不活动状态过长的套接字由系统本身自动断开连接。 例如,当网络配置中涉及防火墙时,可能会迂到这样的情况。 由于一个插槽意外断开,一项 Optim High Performance Unload 任务无法成功完成。
为了避免这种情况, Optim High Performance Unload 可以创建其特定保持活动状态的插座。 以此方式创建套接字时,会定期通过 TPC/IP 层本身发送空包,以确保其伪活动。 空数据包之间的插槽时间间隔可以独立于任何通用操作系统的插槽设置进行调节。 Optim High Performance Unload 空数据包之间的空闲时间间隔可以独立于任何通用操作系统套接字设置进行调节。
此参数启用 Optim High Performance Unload 保持连接机制。
可以通过三种方式设置此参数:
  • -1 :禁用保持连接的调优,这样 Optim High Performance Unload 创建的套接字无法人为保持活动状态。
  • 0 (默认值):启用保持连接调整,以便 Optim High Performance Unload 创建的套接字能够人为地保持活动状态。 激活包之间的时间间隔将遵循在操作系统级别设置的值。
  • 数值为正:启用 Optim High Performance Unload 套接字。 激活包之间的时间间隔设置为配置的值 (以分钟计)。
例如,以下设置将每 10 分钟启用一次套接字激活包:
...
keepalive_time=10
...
keystore_file
Optim High Performance Unload 在独立模式下与加密备份文件进行对比时,使用此参数指定要考虑的 Db2 密钥库文件的绝对路径。 根据密钥库类型 (PKCS#12, KMIP 或 PKCS#11) ,所讨论的文件是包含要使用的加密主密钥的 PKCS#12 文件,或包含关联 KMIP 服务器配置的文本文件,或包含关联 PKCS#11 配置的文本文件。 此参数在 Optim High Performance Unload 独立运行时,该参数是必填项,因为在这种情况下,备份中包含的密钥库信息可能对运行 Optim High Performance Unload 执行的机器无效。
keystore_lock
Optim High Performance Unload 在基于本地 PKCS#12 密钥库的加密环境下运行时,它会隐藏运行 IBM GSKit工具,以便从该密钥库中获取信息。 根据 IBM GSKit 版本,无法多次并行执行此工具以访问同一 PKCS#12 密钥库。 因此, Optim High Performance Unload 多个任务同时运行,需要从同一个 PKCS#12 密钥库中获取信息,这可能会导致因执行 IBM GSKit工具而导致的间歇性故障。 设置此参数以避免出现这种情况,并启用对 PKCS#12 密钥库的受保护访问。 分配给它的值必须是绝对文件名,并且相应的文件必须存在。 当设置此参数时, Optim High Performance Unload 在调用 IBM GSKit工具之前,仅锁定已配置的文件。 当 IBM GSKit 工具返回时,将释放此锁定。
注: 请参阅 IBM GSKit 文档以确定 IBM GSKit 版本是否受影响。
以下是其设置的示例:
...
keystore_lock=/home/i1111/kst.lck
...
keystore_type
Optim High Performance Unload 在独立模式下与加密备份文件进行对比时,使用此参数指定要考虑的 Db2 密钥库文件的类型。 根据密钥库类型 (PKCS#12, KMIP 或 PKCS#11) ,可以使用值 "pkcs12" , "kmip" 或 "pkcs11" 进行设置。 此参数在 Optim High Performance Unload 独立运行时,该参数是必填项,因为在这种情况下,备份中包含的密钥库信息可能对运行 Optim High Performance Unload 执行的机器无效。
krb_keytab
Kerberos 使用此参数可在 Optim High Performance Unload 启动的用户。 该机制要求在连接 Db2 数据库前,先获取有效的 Kerberos 票证。 该参数允许指定一个 Kerberos keytab文件,用于获取有效的 Kerberos 票证。 当 Optim High Performance Unload 在后台执行“kinit”命令时,将使用设置为此参数的 Kerberos 密钥表文件。 当指定了 krb_principal 参数时,此参数为必填项。 设置为该参数的键表文件必须仅限于启动该文件的 Optim High Performance Unload
...
krb_keytab=/home/user/USER_KEYTAB.keytab
...
限制 :此参数只能在 Optim High Performance Unload 用户特定的配置文件中。
krb_principal
Kerberos 使用此参数可在 Optim High Performance Unload 启动的用户。 该机制要求在连接 Db2 数据库前,先获取有效的 Kerberos 票证。 此参数允许指定一个 Kerberos 主体,用于获取有效的 Kerberos 票证。 当 Optim High Performance Unload 在后台执行“kinit”命令时,将使用设置为此参数的 Kerberos 主体。 当指定了 krb_keytab 参数时,此参数为必填项。
...
krb_principal=USER_PRINCIPAL
...
限制 :此参数只能在 Optim High Performance Unload 用户特定的配置文件中。
lobinlinesize
此参数允许设置应用于内联 LOB 数据的截断大小。 该参数必须以数字值设置,并且单位是千字节。
重要提示:Optim High Performance Unload 启动任务时涉及IXF输出格式,则忽略此截断大小的任何设置。 在这种情况下,将保留缺省值 32700 字节以截断 LOB 数据。
限制: 对直接插入的 LOB 数据截断大小指定的值不能设置为小于 32Kb或大于 1024Kb的值。
以下是此参数设置的示例,其值对应于 64Kb 截断大小:
...
lobinlinesize=64
...
maxmemory
使用此参数指定系统内存的上限(以字节为单位), Optim High Performance Unload 可以使用。 如果指定的值太低,无法继续卸载,则 Optim High Performance Unload 将使用最低要求。
maxselects
从备份映像卸载时,此参数允许限制并行卸载的表数。 缺省情况下,将并行处理同一 UNLOAD 块中指定的所有表。 当有很多表关注时,这会导致内存耗尽。 限制并行处理的表数将减少内存消耗,但将增加卸载所需的时间,因为每个卸载的表集至少读取一次相关备份映像。 因此,此参数的最佳值是可以并行处理而不耗尽可用内存量的最大表数。
maxthreads
使用此参数指定 Optim High Performance Unload 使用的最大处理线程数。 您可以指定此参数以限制涉及小型表的卸载的处理使用情况。 降低该参数的值将允许 Optim High Performance Unload 使用更少的处理线程同时卸载多个表。 此参数的最小值为 1 ,最大值等于处理器数。
例如,如果您有4个可用的处理器,并且想要卸载 TABLE1、 TABLE2 和 TABLE3 ,并选择 maxthreads=1Optim High Performance Unload 同时处理三个表,每个表使用一个处理线程。
maxunstaging
此配置参数允许限制为取消登台步骤并行处理的表数。 当执行 Optim High Performance Unload 从备份中卸载数据时,在从备份中读取数据的过程中会执行一个暂存步骤。 当此登台步骤终止时,缺省情况下,将启动与要卸载的表一样多的线程,以取消与这些表关联的数据的登台。 如果要处理的表数量很大,那么这可能会导致为整体处理分配的资源大幅增加。
为了限制此增加,可以指定可以并行取消登台的最大表数。 因此,可以控制为取消登台步骤并行启动的线程数。 达到此最大数目时,当此步骤针对另一个表终止时,将自动启动新表的取消登台步骤。
以下是其设置的示例:
...
maxunstaging=100
...
memory_limit
要指定 Optim High Performance Unload 可以使用尽可能多的内存来完成给定的任务,请将 memory_limit 设置为 no。 仅当已将 allow_unlimited_memory 配置文件参数设置为 yes时,才能设置 memory_limit
您可以在主配置文件级别,用户指定的配置文件中或命令行级别指定 memory_limit 参数。
mig_pipe_timeout
使用此参数来指定自动迁移的读取组件打开管道时要考虑的超时值。 分配给它的值必须是数字值,对应于秒数。 它必须被设置到位于机器上的配置文件中, Optim High Performance Unload 以执行数据迁移。
自动迁移有两个内部组件共同协作: 一个用于读取要迁移的数据,另一个用于将此数据装入所考虑的目标。 迁移的数据通过使用流 (可以是文件或管道) 在两个组件之间进行通信: 读取组件将数据写入这些流中,这些流由装入组件读取。 如果使用管道,那么只要装入未打开所讨论的管道,就无法由读取组件打开这些管道。 在装入组件打开要使用的流之前,可能会在装入组件开始时发生等待时间,尤其是在向 Db2 目标执行迁移时,装入组件将调用覆盖下的 Db2 Load 实用程序。 读取组件打开管道时会应用超时限制,默认超时时间为 30 秒。 如果在装入组件开始时等待时间超过此值,那么读取组件将放弃打开管道,然后停止其处理,并且自动迁移不会成功。 在这种情况下,可能需要为此超时配置一个方便的值。
例如,以下设置将允许将自动迁移中打开的管道的超时值配置为 180 秒:
...
mig_pipe_timeout=180
...
min_extent_per_thread
使用此参数来指定用于启动另一个处理线程的最小数据页扩展数据块数 (与表的已用页数相链接)。 仅当 use_stats 参数设置为 yes时,才会使用此参数。 缺省值为 6。
monitor
请将此参数设置为 yes ,以便启用任何 Optim High Performance Unload 执行。 缺省值为 no
nbcpu
使用此参数可限制已启动的工作单元数。 这个值会影响内存使用量和并行度, Optim High Performance UnloadOptim High Performance Unload 将此值作为并行处理的上限。 此参数的最大值是系统上的处理器数,这是缺省设置。 最小值为 1。
例如,如果您有4个可用处理器,并且想要卸载 TABLE1、 TABLE2 和 TABLE3 ,并选择 nbcpu=2Optim High Performance Unload 以2个处理线程连续处理每个表。
netservice
使用此参数指定与服务系统文件中的网络功能关联的服务名称 Optim High Performance Unload 服务系统文件中的网络功能。 安装程序会自动设置该参数。 Optim High Performance Unload 安装程序会自动设置该参数。
nettohosts
注意: 现在不推荐使用此参数。 创建一个 db2hpu.mapOptim High Performance Unload 安装目录的 cfg 子目录中的配置文件来指定网络名和主机名关联。
如果在 db2nodes.cfg 文件的第二列中指定了网络名 (而不是主机名) ,请使用此参数。 Optim High Performance Unload 只能识别主机名。 db2nodes.cfg 文件的第二列用于确定数据库分区是本地分区还是远程分区。 Optim High Performance Unload 使用此参数确定给定网络名称与哪个主机名相关。 此参数的格式化规则遵循列表的格式化规则。 如果定义此参数,那么格式为: nettohosts=host1sw:host1, host2sw:host2...
network_compression
根据特定任务中相关机器之间的距离或网络吞吐量,可能会出现与通过网络传输的数据量相关的性能问题。 在这种情况下,通过压缩发送数据,并在另一端从网络接收时解压,从而减少传输的数据量,可能会很有趣。 这可能会减少处理执行任务的总时间。
通过在 db2hpu.cfg 配置文件中设置此参数,可以启用压缩通过网络发送的数据的功能。 为了使用ZLib压缩,其值可以 zlib ,前提是交换要压缩的数据的机器上可用ZLib库。 如果ZLib库名称无法自动识别,可能还需要设置 zlib_api 配置参数。
以下是此参数设置的示例:
...
network_compression=zlib
...
odpp_path
odpp_version
当使用 Optim High Performance Unload 进行ODPP屏蔽处理时,如果在关联的控制文件中省略了DATAMASKING子句的PATH和VERSION选项,则 Optim High Performance Unload 会尝试从 db2hpu.cfg 配置文件中获取所需的ODPP路径和版本。 它们的设置可以通过使用两个专用参数在此位置进行:
  • odpp_path (代替DATA掩码控制文件子句中的 PATH 选项)。
  • odpp_version (代替DATA掩码控制文件子句中的 VERSION 选项)。
它们的规范示例:
...
odpp_path=/opt/odpp
odpp_version=9.1
...
与使用以下四个参数进行设置相比,设置这两个参数是在配置文件级别指定数据屏蔽方法的首选方法。
欲了解更多信息,请访问 DATAMASKING
odpp_api_loader
odpp_api_parser
odpp_api_adapter
odpp_api_provider
当使用 Optim High Performance Unload 进行ODPP掩蔽处理时,如果在相关控制文件中省略了DATAMASKING子句的LOAD选项,则 Optim High Performance Unload 会尝试从 db2hpu.cfg 配置文件中获取预期的库名称。 它们的设置可以通过使用四个专用参数在此位置进行:
  • odpp_api_loader (代替DATA掩码控制文件子句中的 LOAD 选项的 LOADER 库)。
  • odpp_api_parser (代替DATA掩码控制文件子句中的 LOAD 选项的 PARSER 库)。
  • odpp_api_adapter (代替DATA掩码控制文件子句中的 LOAD 选项的 ADAPTER 库)。
  • odpp_api_provider (代替DATA掩码控制文件子句中的 LOAD 选项的 PROVIDER 库)。
它们的规范示例:
...
odpp_api_loader=/opt/odpp/bin/libODPPLoader.so.9.1
odpp_api_parser=/opt/odpp/bin/libODPPParser.so.9.1
odpp_api_adapter=/opt/odpp/bin/libODPPAdapter.so.9.1
odpp_api_provider=/opt/odpp/bin/libODPPProvider.so.9.1
...

这些参数的值必须是相对于相关O民进党库的绝对文件名。 必须在配置文件级别或控制文件级别设置所需的每个O民进党库。 设置O民进党库时,必须指定现有O民进党库的名称,以便按预期装入这些库。 为每个呈现的参数设置的O民进党库名必须是适当的名称,以便查找搜索的相应O民进党 API。

更多信息 DATAMASKING
openssl_api_crypto
如果无法自动识别 OpenSSL 加密库,请使用此参数来指定该库的名称。
openssl_api_ssl
当无法自动识别 OpenSSL SSL 库时,请使用此参数来指定该库的名称。
openssl_crypto_usage
使用此参数可启用或禁用 OpenSSL 用于数据解密和数据散列。 可能的值为“是”或“否”。 缺省值为“是”。 如果安装的 OpenSSL 版本不支持内置 CPU 硬件加速,那么可能需要禁用此用法。
progress_monitoring
如果您想启用监控任务执行进度的功能,请使用此参数 Optim High Performance Unload 任务执行进度。 为此,必须将此参数设置为大于 0 的数字值。 其值是对应于监视超时的秒数。 其缺省值为 0。 当对其设置的值大于 0 时,每次达到设置的监视超时时,将在执行报告中发送包含对当前时间的引用的 INZM092I 参考消息。
以下是此参数设置的示例:
...
progress_monitoring=600
...
当运行一项 Optim High Performance Unload 持续时间较长的任务时,因为可能无法从最终报告中衡量其执行进度。 实际上,除了标记控制和处理步骤的开始和结束的通常消息外,该报告不包含包含时间概念的消息。 使用此参数允许您克服此类情况,并生成常规参考消息以标记此类执行的进度。
shared_datapart_processing
可能的值是 yes 和 no。 缺省值为 no。 此参数的设置将应用于任何 Optim High Performance Unload 任务。 要覆盖特定任务的此设置,可以使用控制文件中的 SHARED_DATAPART_PROCESSING 子句指定其他设置。 更多信息,请参阅共享数据处理
将此参数用于 DPF 实例中的数据分区表,以启用不同数据库分区的并行处理并提高性能。 这对于在由存储管理器管理的备份上运行的任务尤其有用,以便允许并行读取各种数据库分区备份。 缺省行为是序列化处理,当使用存储管理器进行相关备份时,可能会导致性能低下。 要指定此参数,格式为:
...
shared_datapart_processing=yes
...
有关数据分区处理的更多信息配置
stacksize
使用此参数可调整与进程相关的堆栈的最大大小 Optim High Performance Unload 进程。 分配给它的值必须是数字值,该单位是 Kb。 可能有必要增加堆栈的大小,以便 Optim High Performance Unload 执行时,尤其是当默认堆栈大小不足以成功执行基于深度递归SQL语句的任务时,可能需要增大堆栈大小。 例如, SQL 语句在其 WHERE 子句中包含一堆 ORed 谓词。 如果未设置此参数,那么将通过其与堆栈大小相关联的 "ulimit" 值从环境继承堆栈大小。 改变这个环境值,可以改变执行堆栈大小 Optim High Performance Unload 执行,但它会对从更新后的环境中启动的任何命令产生影响。 使用此参数可以增加堆栈大小,但仅适用于 Optim High Performance Unload 任务,而不会影响任何单独的应用程序。
例如,以下设置可将任务堆栈大小设置为 Optim High Performance Unload 任务堆栈大小为 256Mb:
...
stacksize=262144
...
注意:stacksize 参数仅在 Linux 和 Unix 平台上可用。
stagedir
使用此参数指定目录,以便 Optim High Performance Unload 从备份镜像中卸载数据时生成临时文件的目录。 缺省情况下,将使用系统的临时目录。
stage_per_part
使用此参数为备份登台定义多个位置,每个数据库分区一个位置。 如果没有此选项,那么将在唯一目录中创建所有登台文件,从而在唯一文件系统上创建所有登台文件。 您可以使用此选项来确保有足够的空间可用,并且空间不限于登台区域的一个目录和一个文件系统。 此参数值可以是 yes 或 no ,缺省值为 no。

当此参数在 db2hpu.cfg 文件中设置为 yes 时,登台文件将按以下指定位置的数据库分区分布: DBPARTnnn ,其中 nnn 是与关联数据库分区号匹配的 3 位数字。 这些目录的根位置是定义为登台区域的目录: 通过 stagedir 配置参数定义的目录或缺省情况下的 /tmp 目录。 这些位置必须存在; 如果未显示错误消息。

启用每个数据库分区登台功能后,会系统地将其应用于与在运行阶段处理包含数据的数据库分区备份相关的登台空间。 如果从目录数据库分区备份中检索控制阶段期间处理的目录,那么仅当指定了 USING BACKUP CATALOG 子句的 CATN 选项时,才会应用此功能。 在这种情况下,将在与 CATN 选项指定的数据库分区号对应的子位置中创建目录的潜在登台文件。 如果未指定此选项,那么将直接在登台根目录中创建目录的潜在登台文件。
注意: 要扩大登台空间,必须创建每个数据库分区位置作为指向在不同文件系统上登录的物理路径的符号链接。 如果将这些位置创建为同一根位置中的物理目录,那么将不会增加登台空间。

例如 : 假定您具有以下配置,用于从具有三个数据库分区 #1, #2和 #3的 Db2 实例的备份卸载操作:

...

stagedir=/staging

stage_per_part=yes

...

在这种情况下,必须先创建以下路径,然后才能启动任何卸载操作:

/staging/DBPART001

/staging/DBPART002

/staging/DBPART003

如果其中一条路径不存在,那么需要创建登台文件的卸装操作将失败,并且将显示错误消息。

storeprocedure_report
使用此参数指定执行报告所在的文件,该报告 Optim High Performance Unload 通过调用 Optim High Performance Unload 存储过程执行的 存储过程执行时,与基础 Optim High Performance Unload 存储过程被执行时,与底层执行相关的报告 Optim High Performance Unload 执行的报告将通过名为STDERR的存储过程输出参数进行处理。 此参数为 CLOB 数据类型, Db2 CLP 将其显示限制为 8192 字节。 因此,如果执行报告大于此限制,那么会将其显示为截断,以便无法获取执行结果的证据。
该参数用于配置 Optim High Performance Unload ,以便存储过程执行时能将整个报表写入文件,而不是通过输出参数显示。 必须使用绝对文件名规范进行设置。
syncsize
使用此参数可启用与磁盘的输出文件同步。 当操作系统配置为使磁盘高速缓存可能使用大量内存时,生成大型输出文件可能会导致重要的内存消耗,从而影响单独应用程序对机器的可用性。 为了限制执行卸载任务时磁盘高速缓存所消耗的内存量,此参数允许启用定期将输出文件同步到磁盘的能力。
分配给此参数的值必须是数字值,其单位为 Kb。 设置此参数时,每次输出文件的大小随着配置的数据量而增大时,该文件将同步到磁盘。
以下是其设置的示例:
...
syncsize=10000
...
tsm_api
使用此参数可指定从存储在 Tivoli® Storage Manager中的备份映像卸载数据时要动态装入的 API 库名称。
umask
使用此参数可覆盖远程系统上的 umask 并生成具有相应许可权的文件。 缺省情况下,远程卸载的 umask 值是 xinetd (或 inetd) 守护程序入门模板的 umask 值。 然后,根 umask 会限制生成的文件许可权。 执行自动系统迁移时,此限制可能会有问题,因为 Db2 Load 需要数据文件可供目标数据库的实例用户读取。 在某些情况下 (取决于系统配置) ,应用的 umask 限制过多,并且生成的文件对于目标数据库实例用户不可见。 您可以设置 Optim High Performance Unload umask选项,允许程序覆盖此限制性umask。
umask 功能部件定义基于 UNIX umask 定义: 使用三个八进制数字来定义用户/组/其他掩码的许可权。 umask 值可以采用介于 000 到 777 之间的八进制值。 建议的umask值为 Optim High Performance Unload 是022。 将生成具有相应许可权的输出文件以执行手动或自动迁移。
限制:
  • umask 参数仅适用于远程生成的文件。
  • 中的umask定义不允许您生成具有各种访问权限的数据文件。 Optim High Performance Unload 不允许您生成具有各种访问权限的数据文件。 Optim High Performance Unload 将始终以644访问权限(rw-r--r--)查询数据文件生成。如果umask限制更严格,访问权限将降低。 如果 umask 限制较少,那么访问权将保持 rw-r -- r --。
use_netname
使用此参数可在相关 Db2 实例的 db2nodes.cfg 文件中使用网络名时启用或禁用网络名。 此类网络名通常对应于专用和高速网络接口。 您可以选择是否 Optim High Performance Unload 网络通信,也可以选择不通过这些接口。 缺省情况下,此参数值在内部设置为 yes,然后缺省情况下会启用网络名的用法。
use_stats
使用此参数指定是否 Optim High Performance Unload 考虑目录中的表格统计信息。 这些信息有助于 Optim High Performance Unload 确定在卸载表格时使用的最佳处理线程数。

此参数的可能值为 yesno。 如果您指定 yesOptim High Performance Unload 通过并行卸载较大的表格,可以优化处理过程。 仅当表中的统计信息是最新统计信息时,此选项才能生效。

注意: 在某些情况下,使用 yes 选项会显著降低 Optim High Performance Unload 性能。 例如,如果某个表有过时的统计信息,显示该表的数据很少或根本没有数据,即使该表已经更新,包含了几百万行数据, Optim High Performance Unload 仍会认为该表较小,并仅使用一个处理线程来卸载它。

缺省值为 no

xbsa_api
使用此参数来指定从备份卸载数据时要动态装入的 API 库名称。 仅当从备份映像卸载时指定 USE XBSA 选项时,才会考虑此参数。 USE XBSA 选项表示备份映像由类似 XBSA 的存储工具管理。
zlib_api
当无法自动识别 ZLib 库时,使用此参数来指定该库的名称。