如何在db2中从diaglog获取特定的错误日志

如何在db2中从diaglog获取特定的错误日志,db2,sqlcode,Db2,Sqlcode,我正在尝试使用db2diag命令获取在diaglog中捕获的所有日志,这些日志包含一个特定的SQLCODE。有人能帮我使用这个命令吗?使用db2diag命令,并在数据段中过滤“sqlcode”,然后是特定的代码: db2diag-g'data:=sqlcode:-1063'将搜索sqlcode-1063(错误SQL1063N) 您可能已经有了完整的文档。然后,您可以格式化输出,并仅提取所需的部分日志记录。Henrik下面的回答正好符合要求。出于好奇,你打算如何处理这些数据?如果为了进行根本原因分

我正在尝试使用db2diag命令获取在diaglog中捕获的所有日志,这些日志包含一个特定的SQLCODE。有人能帮我使用这个命令吗?

使用
db2diag
命令,并在数据段中过滤“sqlcode”,然后是特定的代码:

db2diag-g'data:=sqlcode:-1063'
将搜索sqlcode-1063(错误SQL1063N)


您可能已经有了完整的文档。然后,您可以格式化输出,并仅提取所需的部分日志记录。

Henrik下面的回答正好符合要求。出于好奇,你打算如何处理这些数据?如果为了进行根本原因分析而保留此文件,最好保存或检查整个db2diag.log。有时问题在产生SQL代码之前就开始了,前面的诊断消息可能非常重要。问题是我的数据库崩溃了,说数据库堆内存中没有可用的存储。根据IBM的说法,这是10.1中的一个错误,他们在10.5中修复了它。为了避免将来数据库崩溃,我计划使用一个脚本来监视我的diaglog,当它看到任何类似这样的错误被捕获时,它会提醒我。但问题是每个人都发现了这个错误,我无法找到任何通用的方法来概括这个命令。这就是我要找的。用于监视此错误的通用命令。如果返回代码总是相同的(例如SQLO_NOMEM或类似的东西),您也可以使用
db2diag
或simple
grep
执行简单的字符串搜索。感谢pavel_sustr,此grep选项对我有效。我还有一个问题。我的数据库中存在数据库堆内存已满问题,因此,一旦数据库崩溃,一旦备份也失败。捕获的错误显示数据库堆内存中没有可用的存储。但是所有错误的细节都是不同的,我需要一个通用的命令来获取所有严重级别的错误,并说明数据库堆内存中没有可用的存储,这样我就可以监视我的diaglog,避免将来数据库崩溃。你能帮我一个忙吗?问一个新问题,并提供你到目前为止所做尝试的细节。我尝试了以下命令:db2diag-g-rc:ret_code level=severy n=000;但是它没有返回任何东西db2diag-g-msg:=SQL9001N level=severy n=000;但是它没有返回任何东西。我试着搜索一个特定的单词,我想这是唯一的选择。