ITPub博客

首页 > 数据库 > 数据库开发技术 > 监控数据库连接遇到的一个小问题

监控数据库连接遇到的一个小问题

原创 数据库开发技术 作者:zchbaby2000 时间:2020-03-28 11:28:50 0 删除 编辑

最近遇到一个数据库方面的问题,数据库所在的文件系统处于read-only状态以后,DB2实例虽然已经启动,这时连接数据库,会hung在那里,很久没有反应,并且db2diag日志里面有大量的错误信息抛出。

这篇短文并不是讨论这个问题怎么解决,因为解决起来很简单。有时候遇到一个问题以后,会突然反思之前的一些设计,联想到之前工作中的不妥之处。

我想到我多年之前写的一个关于监控DB2状态的的脚本,其中有一个监控是连接数据库,看是否能够获得数据库连接,当时是采用的方式是:

  • rtnValue=`db2 connect to ${dbName}`

然后判断rtnValue是否为0


从最近遇到的这个问题来看,这个方式是存在问题的,如果很久得不到连接,这个脚本的执行就会hung在这里,不能及时的返回监控结果。

那么怎么解决这个问题那?可以借助 timeout

  • timeout 30s db2 "connect to ${dbName}"
    rtnValue=$?

通过timeout的方式,这个命令会在30秒内返回。如果发生了上面的这个问题,rtnValue会是 124,否则就是这个命令 db2 "connect to ${dbName}"的返回值。


关于timeout的详细信息可以看

timeout --help

...

If the command times out, and --preserve-status is not set, then exit with status 124.  Otherwise, exit with the status of COMMAND.



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/725820/viewspace-2683047/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: RDBMS VS XML VS NoSQL
请登录后发表评论 登录
全部评论
喜欢各种数据库相关的开发,架构设计,运维和性能优化
  • 博文量
    260
  • 访问量
    122447