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

背景是工程要切库,在 DNS 服务器修改 A 记录的 IP 地址,然而切库,但应用连接 Oracle 数据库的是长连接,怎么在数据库服务器上断开所有访问 tcp 1525 端口的长连接?让应用连接上解析的新库 IP。 试了在原来的数据库上加防火墙 iptables -A INPUT -p tcp --dport 1525 -j REJECT 但是不能断开已经是建立连接的 TCP 连接,怎么破=。=
1 opengps Sep 6, 2018 直接加防火墙仅仅是禁止新的连接进来,确实不能断开已有连接,我曾经借助这个特点,远程 3389 端口连接了全公司的我的爬虫机器 话说能否去客户端重连呢?或者直接关闭已停止接入新连接的数据库 |
3 wtks1 Sep 6, 2018 via Android 试试查询客户端对应的 pid,然后直接 kill 掉对应进程? |
5 wackyjazz1 Sep 6, 2018 同 wtks1 查 v$session 表分析要 kill 哪 |
6 winglight2016 Sep 6, 2018 想保留数据,那就要求大家都退出客户端吧,实在没法通知,半夜两点起床干活 |
7 raysonx Sep 6, 2018 其实防火墙是可以阻断已建立的连接的,你没加对位置而已。 INPUT chain 中那条类似于-m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT 的规则就是放行已连接的数据包。你的拒绝规则肯定没加对或者在这条规则之下。 |
8 LGA1150 Sep 7, 2018 iptables -I INPUT -p tcp --dport 1525 -j REJECT --reject-with tcp-reset |