ITPub博客

首页 > Linux操作系统 > Linux操作系统 > itpub oracle 10g dba培训课程笔记(三)

itpub oracle 10g dba培训课程笔记(三)

原创 Linux操作系统 作者:zhanglei_itput 时间:2009-03-24 11:42:31 0 删除 编辑

第四章 基本的网络体系架构

    当客户端发出一条conn hr/hr@sid命令的时候,其实是一个比较复杂的过程,清楚了这个连接过程以后,当发现连接异常的时候,就可以很准确的定位问题的原因了。
客户端配置:sqlnet.ora, tnsnames.ora
服务器端配置:listener.ora(四要素:IP+TCP/IP+PORT+SID)
连接过程:
1. 读取 SQLNET.ORA 选择解析方法
当客户端发出conn命令时,查找客户端的sqlnet.ora 文件
E:\oracle\product\10.2.0\client_1\NETWORK\ADMIN\sqlnet.ora NAMES.DIRECTORY_PATH= (TNSNAMES)
通过客户端的sqlnet.ora来选择解析的方法(主机命名、本地命名、目录命名、外部命名、ORACLE NAMES、easy connect(10g))。

2. 若是本地命名,读取TNSNAMES.ORA寻找三要素
如果选择的是TNSNAMES本地命名,那么到
E:\oracle\product\10.2.0\client_1\NETWORK\ADMIN\tnsnames.ora下去解析服务名
    DEVDB2 = /*服务名*/
     (DESCRIPTION =
                                   (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.230.69)(PORT = 1521)) /*监听地址:协议+IP+PORT*/
                                   (CONNECT_DATA = (SERVER = DEDICATED)
                                   (SERVICE_NAME = devdb)))/*SID*/

3. 建立到Server端 LISTENER 的连接
根据IP+PROT+TCP/IP建立与监听程序的连接,并向该监听程序发送一个CONNECT数据包 (见图中符号1)

4. Server端的 LISTENER 检查有效性
当Server端接到请求以后,检查是否有已经注册的SID与client端发出的请求有匹配的SID, 如果有,LISTENER分派一个新的SERVER PROCESS进程来处理该连接,此时会在LISTENER程序和 SERVER PROCESS之间建立一个继承连接,以传送初始化信息,传送完毕后,LISTENER程序和SERVER PROCESS之间的连接关闭,剩下的连接就是SERVER PROCESS和client端的连接了,这也就是为什么关闭 LISTENER只会影响新请求的client端,不会影响已经连接上的session的原因了。(见图中符号2)

5. SERVER PROCESS将RESEND数据包发送回客户机。见图中符号3)

6. CLIENT 继续向 SERVER PROCESS 发送新的CONNECT 数据包。(见图中符号4)

7. 该专用服务器进程接受传入的连接,处理完成后,将ACCEPT 消息转发回client端。见图中符号5)

备注:A. listener.ora特点
                1. 对已经连接的SESSION 无用
                2. 单个LISTENER可以对多个database连接请求
                3. 支持多个监听可以连接一个database
                4. 支持网络连接协议
                5. LISTENER.ORA名称一定唯一,不可以重名
            B. listener注册类型
                1. 静态注册
                    8i及8i以前,均采用静态注册。
                    把注册的信息提前写到listener.ora里面。
                    oem和其他服务是必须的。
                2. 动态注册
                    Oracle9i 或Oracle8i 例程使用动态服务注册
                    不需要配置listener.ora文件
                    动态注册由PMON进程执行 在初始化参数中必须配置
                    SERVICE_NAMES、INSTANCE_NAME这两个参数,才可以进行动态
                    注册
                    缺省情况下,PMON 向TCP/IP 的缺省本地地址— 端口1521— 处的服务
                    器上的本地监听程序进行注册
                    非缺省监听程序注册(e.g.prot=1522),定义LOCAL_LISTENER 初始化参数(可以通过tnsnames.ora 等命名方法将非缺省listener_alias解析,也可以直接把address字符串添加到LOCAL_LISTENER中)
alter system set local_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.230.68)(PORT = 1521))'

listener.JPG

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9252210/viewspace-578120/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-02-10

  • 博文量
    400
  • 访问量
    1114695