关于停客户端应用 VS 屏蔽1521端口 效果是否一样

zgw06629 发布于 10/18 12:14
阅读 188
收藏 2

Oracle服务器默认连接数(150)不够用了 需要重启服务器 DBA要求应用得先停 然后再重启 否则的话 重启时间会很长

由于连Oracle服务的应用比较多 且分散在不同机器上 逐个关闭应用 然后等Oracle服务器重启好后 再逐个重启应用 工作量会很大

故我的建议是 直接在Oracle服务器机器上屏蔽1521端口 即可 这样的话 效果等同于关闭所有的应用 因为都是不再接收新连接了 但是DBA说 不一样

DBA说:

 停应用 已在处理的事务也会中止和回滚 但是屏蔽端口的话 就不会了 

我的经验是 若一个查询请求已经发到Oracle服务器 且已经正在处理了 即使关闭应用 甚至应用所在的服务器都宕机了

服务端也仍会继续处理啊 直到返回结果给客户端

即使Oracle服务器 显式配置了SQLNET.EXPIRE_TIME (Dead Connection Detection (DCD)) 不也是发TCP心跳包吗 

这种情况下 Oracle服务端屏蔽了1521 和 关闭应用的效果  应该也是一样啊 客户端都是响应不了心跳包了啊

 

加载中
1
Simmy
Simmy

直接关闭TCP端口与关闭应用效果当然是完全不一样的,但是ORACLE在运维方面是有考虑很多场景和需求的,如果不是特殊需求是没有必要先关应用服务再关数据库。稳妥的做法是执行SHUTDOWN TRANSACTIONAL。

关于ORACLE四种关闭方式和适用的情况,请查看官方文档: https://docs.oracle.com/cd/B28359_01/server.111/b28310/start003.htm

 

 

返回顶部
顶部