• 关于DB2启动及停止实例


    启动实例

    启动实例这里就不多赘述了,命令如下

    db2start
    
    • 1

    关闭实例

    关闭实例的命令也很简单,命令如下

    db2stop
    
    • 1

    但是,在使用db2stop时,往往会有下面的一句提示

    SQL1025N  The database manager was not stopped because databases are still active.
    
    • 1

    从报错的信息来看,是因为当前实例下,有一个数据库是活动的,所以没有办法停止实例。

    那么问题来了,怎么解决?

    解决思路

    上面的报错不是数据库是活动的吗,那么我们把数据库变成不活动的不就好了?

    嗯,我们太机智了,给自己点个赞!

    怎么把数据库变成不活动的呢?首先我们至少得知道哪个数据库是活动的吧?然后把活动的数据库变成不活动的

    第一步 查看当前活动的数据库

    众所周知,一个实例用户下可以有多个数据库,那么现在的问题就变成了,我们首先要查看哪些数据库是活动的,可以通过下面的命令进行查看

    db2 list active databases
    
    • 1

    通过执行上面的命令,我们就可以知道当前是哪些数据库是活动的,然后把它们变成不活动的就可以了

    第二步 把活动的数据库变成不活动的

    关于这个问题,要分两种情况来讨论

    第一种是,数据库被显示激活,变成活动状态,即通过下面的命令使指定的数据库变成活动状态

    db2 activate database 数据库名
    
    • 1

    第二种是,数据库被隐式激活,变成活动状态,即有应用连接到数据库,比如执行了下面的命令

    db2 connect to 数据库名 
    
    • 1

    问题来了,我咋知道他是显式激活还是隐式激活,别担心,会有办法解决的

    我不管你是隐式激活,还是隐式激活,我先看现在有没有数据库连接,执行下面的命令

    db2 list applications
    
    • 1

    没有连接,执行db2stop,还报上面的错误,那就是显式连接,怎么解决呢?执行下面命令即可

    db2 deactivate database 数据库名
    
    • 1

    然后执行命令db2 list active databases,确保没有活动的数据库了,再执行db2stop就可以了。

    但是

    有连接呢?简单呀,把连接断开就行啰

    1)通过命令db2 connect reset,断开连接
    2)但有时候,有些连接用上面的连接断不了怎么办吗,那就强行断开所有连接db2 force application all

    通过命令db2 list applications检查,是否所有连接都断开了。所有命令都断开了,再执行db2stop命令,如果还报错,就是显示激活,重复上面的步骤即可。

    又来了但是

    我就想停个实例,你罗里吧嗦的说了这么大一堆,我还不一定听懂,有没有简单粗暴的方法?

    有!强制停止实例的命令如下

    db2stop force
    
    • 1

    不建议使用,为啥呢?因为你强行停止,会有某些意想不到影响,具体是啥?原谅我才疏学浅,不太清楚。 当然,你非要用,也是可以的,毕竟我也不能把你打一顿,不让你用是吧~

  • 相关阅读:
    为 Pod 和容器管理资源
    缓存案例-架构真题(二十二)
    php+微信小程序大学跳蚤市场的微信小程序设计与实现毕业设计源码261620
    VFP技巧
    【深入了解系统性能优化】「实战技术专题」全方面带你透彻探索服务优化技术方案(系统服务调优)
    反射、代理模式、注解
    SLAM程序Linux版第一节
    【Ajax-异步刷新技术】什么是Ajax之续章 !
    架构,平台,框架的区别和联系
    Windows10 电脑上配置 Docker 环境
  • 原文地址:https://blog.csdn.net/qq_43569111/article/details/126071945