haoweishow Blog

ESB/Java

Db2stop Force 失败

背景

系统使用DB2数据库,日常操作没有遇到问题. 但是最近出现两次操作错误,引起一些问题,有必要记录一下.

现象1

  • 执行db2move esbdb load的时候,数据库名称写错,直接Ctrl+C终止,但是shell并未终止.
  • 再次执行db2stop force,仍然未停止,CPU占用在0~50%之间
  • 尝试发现DB2在做什么?无果,db2diag的日志在不停的刷
  • 经过一些毁灭性的操作之后,请来db2专家搞定(过程不表,反正是一身冷汗)

现象2

  • 手动执行存储过程,由于未指定时间,导致SQL执行长时间未停止
  • 强制停止该存储过程,也是没有停掉
  • 执行db2stop force仍然未停止数据库
  • 有了第一次的经历,不敢再进行更进一步的动作,希望DB2能够自己处理完之后能够停下来
  • 等到第二天(大约过了15个小时),依然CPU很高,没有停止的迹象

解决

这个解决是在现象2之后执行的. * ps -ef|grep db2stop * kill <pid> #kill掉'db2stop force'对应的进程 * 再次执行ps -ef|grep db2stop,没有对应的信息,数据已经停止 * 重启数据库db2start