记一次危险的db2数据库重启

在做项目过程中,db2数据库一直以来运行平稳,导入数据采用的import方式,脚本运行稳定。
某一天在录入新下发的数据时,开始报错:
记一次危险的db2数据库重启
当数据库没有任何跑数进程时,使用db2top -d dbname使用l选项查看进程时,发现有一个活动进程存在,用db2 force application all之后db2 list applications 发现该进程依然存在。
而进程的ip为一个项目组未使用的ip,可能是搬运电脑时,导致之前的ip某个进程一直存在于数据库中,是一个假进程,无法杀掉,因此也就无法正常停库启动。只能db2stop force (注意这个命令不到万不得已不要使用,如果想停库,先force application all 再通过正常的db2stop 停库),过了半个小时发现db2stop force 进程还在进程中(数据库设置db2stop 10分钟后便hang挂起),只能通过db2_kill 停止实例。
之后db2start 正常启动,连接数据库较慢,通过db2 activate dbname 来**数据库。
总结:在搬运或者关机等操作进行前,一定要将该停的停掉,想重启数据库的话,要提前把链接断掉,
正常使用db2stop。db2stop force 和db2_kill不建议使用,尤其是生产环境,本次使用完全是因为运气足够好,
直到未断开的进程是假进程。如果那是一个真进程的话,极有可能停库之后导致数据库状态不一致。