大家好,
我想写这个博客很长一段时间,但当时不知道很多事情在这方面。正如他们所说,一半的知识是危险的,大数据课程,所以经过大量的研究和学习,我可以总结如下:
我写这个博客的目的是更多地关注在DB2数据库系统(主要是生产)上运行的SAP中发生的日志满的情况,并对其进行故障排除。
所以,让我们开始…
关于DB2中的日志文件:
类似于Oracle中的归档日志,我们将日志作为主日志文件和辅助日志文件写入DB2中。
一旦数据库处于活动状态,这些文件就会被分配。或者您可以说文件空间是作为数据库启动/活动进程的一部分分配的。
一次分配给定大小的文件数。
LOGPRIMARY:是一个参数,它告诉在数据库启动时创建的主日志文件数。
这些文件类似于主日志文件,但数据库不会注意立即分配它们,而不是在需要时按要求分配。
对我来说,辅助日志的概念是在sap系统中出现日志已满的情况时提供一个出路,因为您可以动态地增加/减少计数(如RZ11参数)。
LOGSECOND:告诉数据库在需要时可以分配的辅助日志文件总数的参数。
其他重要参数:
您可以通过db2user执行以下命令来找到这些参数值:
$db2 get db cfg |grep-i log
-–Or-–
通过ST04从SAP级别查看这些参数–>配置(从右侧窗格)–>数据库
有关疑难解答的信息:
您可以从ST04–>性能–>日志选项卡–>在辅助日志头中,字段名称当前分配的日志
编号将告诉您当前分配了多少辅助日志。
如果您在这种情况下找到任何数字,开始云,请在tcode的同一屏幕中记下具有最旧事务值的应用程序(如上所述的ST04)。此字段将为我们提供使用辅助日志的数据库代理id。
现在如何找到使用这些日志的工作进程?
复制您为具有最旧事务的应用程序(ST04)找到的值,然后从右侧窗格双击应用程序并在Appl列中搜索值。把手。确保值的格式保持不变,因为它可能是逗号分隔的,双击显示详细信息
其中
应用头信息
PID:为SAP工作流程
状态:工作流程当前状态
客户端信息头信息
用户ID:在用户ID下运行的工作流程
工作站:SAP应用程序/实例名称
应用程序:工作类型进程
您还可以通过使用DB2用户执行以下命令集从OS/DB2级别查找值,全国大数据中心,如下所述
$DB2 get db cfg for| grep-i Secondary
$DB2 get snapshot for database on| grep-i'allocated currently'
$DB2 get snapshot for database on| grep-i oldest
$db2 get snapshot for application agentid xxxx | grep-i'Process ID';xxxx是您从上述命令
获得的值,现在您可以终止进程,将sec log count恢复为0(以防sec log count达到分配的日志文件计数)。通常我们在达到sec log file值LOGSECOND的80%时执行此操作。
因为终止进程将尝试回滚执行的活动,这将再次消耗辅助日志。此操作是为了避免您的系统处于静止状态。
其他解决方法:
您可以设置NUM\u LOG\u SPAN参数来自动终止消耗秒日志的进程。
您可以将值设置为(LOGPRIMARY+LOGSECOND)的80%。
例如:LOGPRIMARY:50 LOGSECOND:50如果设置为80%,NUM\u LOG\u SPAN的值将为80
但是此参数将仅当代理是唯一使用阈值的代理时才终止该代理。(1个活动UOW的活动日志文件数)
如果sec日志消耗涉及多个代理,则需要找到所有代理并逐个终止它们,以避免日志已满/系统挂起的情况,要执行此操作,请使用下面的查询
$db2"选择A.SNAPSHOT\u TIMESTAMP TIMESTAMP,SUBSTR(CHAR(A.AGENT\u ID),1,5)APPL\u HDL,SUBSTR(CHAR(B.COORD\u AGENT\u PID),1,8)AGENT\u PID,SUBSTR(CHAR(B.CLIENT\u PID),大数据概念,1,8)APPL\u PID,SUBSTR(CHAR(A.UOW\u LOG\u SPACE\u USED),1,13)LOGSPACE\u Bytes,SUBSTR(CHAR(A.LOCKS\u hold),1,8)LOCKS,A.UOW\u COMP\u STATUS,B.APPL\u STATUS,INT(A.APPL\u IDLE\u TIME/60)IDEL\u TIME\u MIN,A.DBPARTITIONNUM,SUBSTR((RTRIM(LTRIM(C.STMT\u TEXT))),1200)STMT\u TEXT FROM系统IBMADM.SNAPAPPL一个,SYSIBMADM.SNAPAPPL\u信息B,B,系统IBMADM.SNAPSTMTC其中A.AGENT\u ID=B.AGENT\u ID和A.AGENT\u ID=C.AGENT\u ID和A.DBPARTITIONNUM=B.DBPARTITIONNUM和B.DBPARTITIONNUM=C.DBPARTITIONNUM和A.UOW\u LOG\u SPACE\u USED>0按A.UOW\u LOG\u SPACE\u USED DESC"
额外说明:
假设您决定增加/减少辅助日志,而不是每次终止进程不需要重启DB,就可以通过..
$db2 connect to
$db2 update DB cfg using logsecond XX immediate完成日志更新;XX是您希望为sec日志保留的编号。
重要提示:
主日志文件和辅助日志文件的数量必须符合以下要求:
几个重要的sap注释:
2141933–DB6:如何初始故障排除事务日志完整问题
495297–DB6:监视事务日志
希望此信息足够好让您使用处理日志已满问题。请评论/喜欢这个帖子,是的,请告诉我是否有遗漏或需要更正或添加的地方。谢谢。
大家好!!!!!!
问候,
Prithviraj.
嗨
有很好的SAP说明,可以包含在博客中,
2141933-DB6:如何初步解决故障事务日志完整问题
495297-DB6:监控事务日志
,全球云购