【问题标题】:how to get particular error logs from diaglog in db2如何从 db2 中的 diaglog 获取特定的错误日志
【发布时间】:2015-08-25 14:14:53
【问题描述】:

我正在尝试使用 db2diag 命令来获取在 diaglog 中捕获的所有日志,其中包含特定的 SQLCODE。任何人都可以帮助我执行命令吗?

【问题讨论】:

  • Henrik 在下面的回答是正确的。出于好奇,您打算如何处理这些数据?如果您想保留它以用于根本原因分析,最好保存或检查整个 db2diag.log。有时问题在产生 SQL 代码之前就开始了,前面的诊断消息可能非常重要。
  • 问题是我的数据库崩溃了,说数据库堆内存中没有可用的存储空间。根据 IBM 的说法,它在 10.1 中存在错误,他们在 10.5 中修复了 gvn。为了避免将来发生这种数据库崩溃,我计划使用一个脚本来监控我的诊断日志,因为它会看到任何这样的错误都已被捕获,它会提醒我。但问题是这个错误被捕获了,我无法找到任何常见的东西,我可以使用它来概括命令。这就是我要找的。用于监控此错误的通用命令。
  • 如果返回码始终相同(例如 SQLO_NOMEM 或类似的东西),您也可以使用db2diag 或简单的grep 进行简单的字符串搜索。
  • 感谢 pavel_sustr,这个 grep 选项对我有用。

标签: db2 sqlcode


【解决方案1】:

使用db2diag 命令并过滤DATA 部分的“sqlcode”,后跟特定代码:

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

您可能拥有db2diag tool 的完整文档。然后,您可以格式化输出并仅提取您需要的部分日志记录。

【讨论】:

  • 我还有一个问题。我的数据库中有一个数据库堆内存已满问题,因此一旦数据库崩溃并且备份也失败了。捕获的错误显示数据库堆内存中没有可用的存储空间。但是所有错误的细节都是不同的,我需要一个通用命令来获取所有严重级别的错误,并说数据库堆内存中没有可用的存储空间,这样我就可以监控我的诊断日志,并且可以避免数据库崩溃未来。你能帮帮我吗?
  • 提出一个新问题并提供您迄今为止尝试过的详细信息。并将其标记为完成。
  • 我试过这个命令:db2diag -g -rc:ret_code level=Severe n=000;但它没有返回任何东西
  • db2diag -g -msg:=SQL9001N 级别=严重 n=000;但它没有返回任何东西
  • 我尝试用 grepping 搜索一个特定的单词,我猜这是唯一的选择。
猜你喜欢
  • 2016-12-05
  • 1970-01-01
  • 2020-02-19
  • 1970-01-01
  • 2015-08-13
  • 1970-01-01
  • 2018-08-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多