应用连接 Oracle 数据库的是长连接,怎么在数据库服务器上断开所有访问 tcp 1525 端口的长连接?

2018-09-06 14:23:45 +08:00
 symb0l

背景是工程要切库,在 DNS 服务器修改 A 记录的 IP 地址,然而切库,但应用连接 Oracle 数据库的是长连接,怎么在数据库服务器上断开所有访问 tcp 1525 端口的长连接?让应用连接上解析的新库 IP。 试了在原来的数据库上加防火墙 iptables -A INPUT -p tcp --dport 1525 -j REJECT 但是不能断开已经是建立连接的 TCP 连接,怎么破=。=

3407 次点击
所在节点    Linux
8 条回复
opengps
2018-09-06 14:35:01 +08:00
直接加防火墙仅仅是禁止新的连接进来,确实不能断开已有连接,我曾经借助这个特点,远程 3389 端口连接了全公司的我的爬虫机器
话说能否去客户端重连呢?或者直接关闭已停止接入新连接的数据库
symb0l
2018-09-06 14:44:28 +08:00
@opengps 客户端太多了 200 多个应用,动作太大。 关闭数据库也不好=。=有事务在进行的话,直接关会不会有问题....
wtks1
2018-09-06 15:01:28 +08:00
试试查询客户端对应的 pid,然后直接 kill 掉对应进程?
symb0l
2018-09-06 15:11:50 +08:00
@wtks1 这么暴力的么...这样其实也可以,但是刚好在往数据库写数据,会不会有问题.......
wackyjazz1
2018-09-06 15:26:29 +08:00
同 wtks1 查詢 v$session 表分析要 kill 哪個
winglight2016
2018-09-06 19:26:00 +08:00
想保留数据,那就要求大家都退出客户端吧,实在没法通知,半夜两点起床干活
raysonx
2018-09-06 23:53:19 +08:00
其实防火墙是可以阻断已建立的连接的,你没加对位置而已。
INPUT chain 中那条类似于-m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT 的规则就是放行已连接的数据包。你的拒绝规则肯定没加对或者在这条规则之下。
LGA1150
2018-09-07 04:35:40 +08:00
iptables -I INPUT -p tcp --dport 1525 -j REJECT --reject-with tcp-reset

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/486735

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX