DB2数据库上的NUM_LOG_SPAN用法(10.1)

时间:2016-11-01 15:50:47

标签: db2 db2-luw transaction-log

有没有办法查看流程(agent_id)当前跨越多少个事务日志?或列出它当前使用/跨越的交易日志?即是否可以检查是否即将到达NUM_LOG_SPAN

我们最近遇到了一个问题,即长时间运行的交易违反了NUM_LOG_SPAN。当我们有105个日志时,这被设置为70。我们现在增加了这个,但可能还是不够。我们可以将NUM_LOG_SPAN设置为0,但这是最后的手段......我们希望能够做的是至少监控情况(而不仅仅是等到它命中并导致问题) - 是能够运行一个命令来查看,例如,一个进程现在是否正在使用/ spanning,比如90个日志?然后我们可以决定是否取消它。

我们正在执行类似于以下语句的内容,您可以在其中查看事务日志使用的百分比:

select log_utilization_percent,dbpartitionnum from sysibmadm.log_utilization

- 监控流程是否有类似内容,以确保它们不会超过NUM_LOG_SPAN阈值?

注意:这是在SAP系统(NW7.3)中...也许在DBACOCKPIT中有什么东西可以查看它?

1 个答案:

答案 0 :(得分:1)

据我所知,您无法仅从监视器功能中计算出这一点,因为没有任何监视功能为工作单元公开Start LSN。

但是,您可以使用db2pd执行此操作。使用db2pd -db <dbname> -logs查找当前的LSN,并使用db2pd -db <dbname> -transactions查找特定工作单元的 Firstlsn

使用这两个数字,您可以使用公式

                      (currentLSN - firstLSN) 
Logs Files Spanned = -------------------------
                         logfilsiz * 4096 

(您应该将当前LSN的十六进制值和db2pd返回的firstLSN转换为十进制值)。