Oracle TCP/IP 连接的基本原理

Oracle TCP/IP 连接的基本原理

 

     这里分析网络上最常见的一种情形:在TCP/IP连接上建议一个基于网络的连接请求。在这种情况下,客户在一台机器上,而服务器在另一台机器上,这两台机器通过一个TCP/IP 网络连接。客户率先行动,使用Oracle客户软件(Oracle 提供的一组的引用程序接口或API)建立一个请求,力图连接数据库。例如,客户可以发出如下命令:

 $sqlplus scott/tiger@orcl.

 

    这里客户是程序SQL*Plus ,scott/tiger为用户名和密码,orcl是一个TNS服务名。TNS代表透明网络底层(Transparent Network Substrate),这是Oracle客户中处理远程连接的“基础”软件,有了它才有可能建立对等通信。TNS连接串告诉Oracle软件如何与远程数据库连接。一般你的机器上运行的客户软件会读取一个tnsnames.ora文件。这是一个纯文本的配置文件,通常放在$ORACLE_HOME/network/admin目录下($ORACLE_HOME 表示Oracle安装目录的完整路径)。如果有如下配置:

ORCL  =

         (DESCRIPTION =

             (ADDRESS =

                  (PROTOCOL = TCP)

                  (HOST = somehost.somewhere .com)

                  (POST = 1521)

              )

           

              (CONNECT_DATA =

                 (SERVER = DEDICATED)

                 (SERVER_HOME = orcl)

              ) 

           )

 

     根据这个配置信息,Oracle客户软件可以把我们使用的TNS连接orcl映射到某些有用的信息,也就是主机名,该主机上“监视器”进程接受(监听)连接的端口,该主机上所连接数据库的服务名等等。每个数据库实例可以向监听器注册,表示要提供多个服务。所以,服务就映射到物理的数据库实例。

   

     既然客户软件知道要连接到那里,它会与主机名为somehost.somewhere .com的服务器在端口1521上打开一条TCP/IP 连接,如果服务器DBA安装了Oracle Net,并且有一个监听器在端口1521监听连接请求,就会受到这个请求。在网络环境中我们会在服务器上运行一个称为TNS静听器进程。就是这个监听器让我们与数据库物理连接。当它收到入站连接请求时,它会使用自己的配置文件检查这个请求,可能会拒绝请求(例如:因为没有这样的数据库,或者可能我们的IP受到限制,不允许连接这个主机),也可能会接受这个请求,并建立真正连接。    

 

猜你喜欢

转载自turandot.iteye.com/blog/1693911
今日推荐