可见网络服务名这架马车,在Oracle网络连接中就好像其起到一个马夫手中皮鞭的作用,指挥着这辆马车的前进方向。但是,这架马车比较娇贵,动不动就会出现问题。
如当某个客户端非正常关机后,重新启动。可能会发现无法正常连接到客户端,提示网络服务器名错误而无法正常连接到客户端。再如有时候会因为无法解析全局数据库名字而客户端无法连接到数据库。为了防止网络服务名出现错误,笔者有以下几个建议。
一是网络服务名的信息通常情况下是保存在TNSNAMES.ORA这个文件中。如果意外关机等情况,这个文件中的信息可能会丢失。为此最好对这个文件进行独立的备份。在遇到因为网络服务名错误而无法连接到数据库的时候,可以先利用这个文件进行恢复。通常情况下,都可以解决问题。
二是最好不要手工更改这个文件。虽然这个文件看起来比较简单,但是修改起来比较麻烦。除非你是这方面的专家,否则的话最好不要手工更改这文件。通常情况下,最好采用Oracle数据库自带的工具来配置。笔者建议的作法是,先利用TNS工具把原先的配置文件删除,然后再重新建立一个。这是一个不错的选择。
三是当客户端与Oracle数据库服务器进行连接的时候,如果出现提示网络服务器的错误提示时(监听程序无法找到适用于客户机连接的例程),有部分原因是无法解析数据库全局名所造成的。此时,管理员可以尝试着修改这个文件中的全局数据库名。即把全局数据库名修改为数据库服务器对应的IP地址。如果幸运的话,这么修改后就可以解决客户端的连接问题了。
另外需要注意,有时候系统提示网络服务名错误无法连接到数据库时,有可能不是网络服务名错误所造成。有可能使其他的原因。如有时候如果存在防火墙,系统也会提示这个错误信息。如一次用户在Linux系统上安装Oralce数据库。而默认情况下,Linux系统的防火墙是开启的。在事后没有个防火墙关闭,导致Oralce无法正常连接。Oracle数据库并不是不能够通过防火墙,而是需要在防火墙上进行额外的设置。故如果是出于学习的需要,笔者建议可以先把Linux等操作系统的防火墙服务暂时关闭掉。
第三架马车:监听程序。
监听程序是运行在服务器端的一个单独的服务进程。他的作用就是通过监听端口,监听网络上的客户机对服务器的连接请求,并管理客户机与服务器之间的网络通信量。如果做一个形象的比喻,监听程序就好像是宾馆前面的保安。看到有客人来了,就开门来其进去。如果客人没付钱就走人,保安就会拦住客户不让其走。监听程序其的作用就是跟这个保安的作用非常类似。每次客户端请求连接服务器时,监听程序就会第一时间接收到这个请求。然后监听程序会把这个请求汇报给服务器。另外,监听程序还会对用户的合法性做出辨别。如果客户端提供的连接信息与监听程序保存在配置文件中的信息(如协议、端口、数据库等等信息)匹配的话,则监听程序就授权客户机连接到服务器。否则的话,就会拒绝客户机的连接请求。可见,监听程序这架马车,在数据库连接中起着举足轻重的作用。
当服务器端的监听程序没有正常启动时,客户端将无法通过网络连接到数据库服务器。
文章来源于领测软件测试网 https://www.ltesting.net/