FLUSH BUFFERPOOLS

使用此选项可在卸载启动之前将 Db2® 缓冲池清空到磁盘。

FLUSH BUFFERPOOLS
注意:
  • 必须验证 db2hpu.cfg 参数 flush_bufferpools的设置。 如果未设置 db2hpu.cfg 文件参数 flush_bufferpools,那么此控制文件选项将缺省为 YES。 使用控制文件选项来覆盖 db2hpu.cfg 文件中的设置。
  • 在 UNLOAD 块中设置 FLUSH BUFFERPOOLS 将覆盖 GLOBAL 块中设置的值。
  • 如果您正在使用 FLUSH BUFFERPOOLS NO ,并且正在卸载的表位于 DMS 或自动存储器受管表空间中,请确保未发出 ALTER TABLESPACE 语句,而该语句会导致表空间的大小减小 (REDUCE , RESIZE , DROP 或其他选项)。
语法
清空缓冲池是 | 否
变量
无。
缺省值
使用 FLUSH BUFFERPOOLSLOCK 选项来控制在卸载期间如何获取锁定。 此部分中列出了每个组合生成的可能组合和结果。
清空缓冲池是锁定是
建议使用此选项,因为它可确保安全且一致的卸载。 Db2 将收到通知,指示正在进行卸载,对表及其依赖关系执行停顿共享锁定,并且该锁定将保留到卸载结束为止。 在启动卸载之前,会将相关缓冲池页面清空到磁盘,并且在卸载完成之前不允许对表进行任何修改。
清空缓冲池是锁定号
将执行停顿共享锁定,并向 Db2发送卸装通知。 将从缓冲池中清空所有相关页面。 与上例不同的是,卸载通知成功完成后,系统会立即通知 卸载已结束,并释放 quiesce 共享锁,即使卸载尚未开始、 Optim™ High Performance Unload 会立即通知 Db2 卸载已结束,并释放 quiesce 共享锁,即使卸载尚未开始。 但是,由于未保留任何锁定,因此在运行卸载时没有针对正在修改的数据的保护。 因此,仅当在卸载过程中存在另一个防止数据修改的机制时,才应使用此方法。
刷新缓冲池 无锁定 是
如果指定或缺省为 LOCK YES,那么 FLUSH BUFFERPOOLS 将强制为 YES。 因此,此组合将自动转换为 FLUSH BUFFERPOOLS YES LOCK YES
清空缓冲池无锁定号
Db2 未收到卸载通知,并且未指示正在进行卸载。 不会将 Db2 缓冲池页面清空到磁盘,并且不会获取 Db2 锁定。 虽然此组合具有最低的开销,但存在很大风险,即抽取的数据可能与事务不一致或表示卸载时的数据。 执行甚至可能导致不可预测和意外的行为,包括异常终止,特别是如果处理的对象上的更改严重影响其结构或布局 (连接或拆离数据分区,重组对象 ...)。 仅当您确定所有数据页面都已清空到磁盘并且当前未被另一个 Db2 应用程序修改时,才使用此组合。
如果考虑的 Db2 实例是 pureScale ,则有必要将这两个选项设置为 "否",因为在这种环境中不存在底层 Db2 功能。 将其中一个选项设置为 YES 会导致错误。 要在 pureScale 环境中执行以下操作前清除所有缓冲池中的脏页面 Optim High Performance Unload ,请使用 FLUSH BUFFERPOOLS Db2 语句。 有关该声明的更多详情,请参阅 Db2 文档。
注意: 在大多数产品故障情况下, Optim High Performance Unload 重置桌面空间上的静默。 但是,存在一些未发生此情况的罕见情况,并且表空间仍处于停顿方式。 要手动重置停顿方式,请参阅 重置停顿方式 部分。