客户端连接报错TNS:无法解析名字。
用管理页面看,监听很正常的在运行,用连接字串进行连接,也能正常登入和操作。打开tnsnames.ora,里面的“ORCL=”也没问题,使用Oracle的Net Manager工具,可以看到监听的配置listener.ora中和tnsnames.ora里ORCL条目的配置完全一致,主机名、端口号都无异常。
由于Oracle必须把主机名解析为一个IP,而主机名在双网卡跨网段的情况下是工作不正常的,因为一个名不可能被解析为2个地址,就造成了监听在双网卡情况下工作不正常。如果双网卡网段不同就会造成混乱,监听的名解析正好被绑定到了那个没有实际作用的IP上,从正常网卡进行的使用主机名的连接全部失败,而直接使用IP作为连接字段的连接却成功了。
将监听的配置使用IP地址,然后将tnsnames.ora中条目内的主机名也改为IP地址,测试终于OK。
地址配置为localhost或者127.0.0.1也会出现这种,但是没进一步的测试。