关于DB2启动及停止实例

启动实例

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

db2start

关闭实例

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

db2stop

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

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

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

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

解决思路

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

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

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

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

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

db2 list active databases

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

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

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

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

db2 activate database 数据库名

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

db2 connect to 数据库名 

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

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

db2 list applications

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

db2 deactivate database 数据库名

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

但是

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

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

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

又来了但是

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

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

db2stop force
不建议使用,为啥呢?因为你强行停止,会有某些意想不到影响,具体是啥?原谅我才疏学浅,不太清楚。 当然,你非要用,也是可以的,毕竟我也不能把你打一顿,不让你用是吧~
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值