oracle instant client,tnsping,tnsnames.ora和ORACLE_HOME
前段时间要远程连接oracle数据库,但是又不想在自己电脑上完整安装oracle客户端,于是到oracle官网下载了轻量级客户端instant client。这玩意没有图形界面,全靠sqlplus远程连接服务器,所以不占地方,正好满足我这种追求“简单就好”的强迫症患者需求。
但是呢,可能是服务器那边没开监听端口,我在自己的机子上尝试了各种配置,包括tnsnames.ora,sqlnet.ora等,远程连接均告失败。为了排查问题,我先ping了一下服务器的外网地址,发现没问题。网上说,光ping还是不够的,还要再tnsping一下。
tnsping,只看名字的话,似乎也是ping的一种。但是,这个工具只包含于完整的oracle客户端里,如果你安装的是instant client,就无法使用tnsping。我恰好用的就是instant client,是不是很悲剧?不过,当我到OTN Community逛了一圈之后,我发现tnsping也并非那么神秘。OTN Community上面有个帖子把tnsping讲得很透彻,我打算转述于此。原帖在https://community.oracle.com/thread/2434899?start=0&tstart=0,有兴趣的可以看下。
tnsping所能做的,就是从TNS连接字符串中读取HOST和PORT参数,打开一个套接字连接,然后向监听发送一个ping,监听则以一个pong来响应。tnsping不能让TNS连接字符串中的其他参数生效,不能确定数据库实例和数据库服务的可用性,也不能确定诸如SID, SERVICE_NAME或INSTANCE_NAME等参数是否有效。可见,tnsping从来都不是多么高端的工具,很多人用它测试TNS连接字符串,它只是被用烂了而已。
instant client没有tnsping工具?不要紧,因为你可以用telnet
前面一直在说tnsping读取HOST和PORT参数,问题来了:这些参数在哪?要解决这个问
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
