客户的备份软件备份某个数据库时报错。报错信息如下:
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-12001: could not open channel dev_3
RMAN-10008: could not create channel context
RMAN-10003: unable to connect to target database
ORA-12170: TNS:Connect timeout occurred
在数据库主机上尝试使用tnsping,telnet端口等方式并没有发现问题,网络层面可以确认畅通。
但是通过sqlplus尝试登录数据库,大致有一半左右的几率可以成功,失败的时候报错信息也是 ORA-12170: TNS:Connect timeout occurred
通过netstat -an查看1521端口是否被关闭时,找到了大量的TCP连接。灵光一闪,是不是TCP连接端口都已被占用?
netsh interface ipv4 show tcpstats
netsh int ipv4 show dynamicport tcp

查看TCP端口相关信息

尝试将开放的动态端口数量增加
netsh int ipv4 set dynamicport tcp start=1025 num=60000
不需要重启操作系统生效。
再次发起备份后成功。
诊断 ORA-12170: TNS:Connect timeout occurred, 出了网络层面的配置外,主机层面的TCP连接数量也有可能影响,增加了排查的思路
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8520577/viewspace-2965801/ ,如需转载,请注明出处,否则将追究法律责任。