zch920506
2021-07-22 19:54
采纳率: 0%
浏览 200

db2崩溃后怎么恢复处理

最近客户这边的数据库出了点问题,有几个存储过程运行的很慢,基本确定是由于某一个表最近数据量过大,以前只有几万条数据的几个表最近变成了千万条数据,而且每天都会有3个存储过程会用到这个表,由于会对表数据进行匹配核对再进行插入删除操作,消耗时间很长,所以我就想备份一下这个表到另一个表然后reorg table,试试能不能优化一下,没想到备份的时候直接卡死了,然后只能db2stop force,但是之后却不能db2start,会报SQL6036N START or STOP DATABASE MANAGER command is already in progress.之后也试了db2_kill还是不能重启,最后无奈试了试重启linux服务器,然后start以后不能连接数据库,连接会报SQL1015N The database is in an inconsistent state. SQLSTATE=55025。查看db2diag.log文件发现crash recovery失败(失败原因应该是bufferpool页数太少),我基本确定只有备份的那一个表有问题,不连接数据库的话我也不会修改bufferpool,也不能drop那个表,现在应该怎么处理最好~

  • 点赞
  • 收藏

3条回答 默认 最新

  • 有问必答小助手 2021-07-23 11:05

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答

    本次提问扣除的有问必答次数,已经为您补发到账户,我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。

    点赞 打赏 评论
  • Jason Ho 2021-07-24 14:14

    数据库在进行大量的运算和数据处理的过程中,IO、CPU等资源消耗非常高的时候,强制停止数据库。db2stop force

    结果数据库命令迟迟没有响应。这个时候对数据库进行其他操作均无响应,执行启动命令,返回SQL6036N。此时说明数据库已经hung了。

    或 调试存储过程,导致数据库hung,想要通过控制中心重启下db2,结果长时间没有任何反应,再想重新连接时报错,如下

    SQL6036N START 或 STOP DATABASE MANAGER 命令已在处理之中。

    db2stop 命令同样会报相同的错

    解决办法:

    删除/home/username/sqllib/ctrl/db2strst.lck文件,默认这个文件是空的。

    执行db2_kill,会提示:Application ipclean:Removing DB2 engine and client IPC resources for db2name.

    重新启动db2start,查看数据库的活动状态:db2 list active databases 会显示当前活动库,这时候说明数据库已经恢复正常了。

    点赞 打赏 评论
  • 王大师王文峰 2021-07-27 15:38

    采纳一下,可以通过执行数据库的命令解决

    点赞 打赏 评论

相关推荐 更多相似问题