Oracle网络原理及配置

本文详细介绍了Oracle网络的基本概念,包括监听器的工作原理、客户端连接过程、动态与静态注册的区别,以及如何使用netca配置监听器。重点讨论了监听的三大文件:listener.ora、tnsnames.ora和sqlnet.ora的作用。此外,还提到了service_name的重要性,以及如何更改服务名以适应不同的数据库环境。
摘要由CSDN通过智能技术生成

概念

概念:Oracle网络服务在服务端是通过监听器的进程来实现的,在oracle中,最常见的连接方式是专用连接
服务器进程与用户进程为一一对应的关系,一旦用户进程中断,其对应的服务器进程也被终止。

监听:用户连接监听,监听知道数据库在什么位置,他们之间没有长连接,监听和数据库之间没有必然联系,但是相互之间可以找到,他们之间没有长连接,监听只做一件事情就是在建立连接的时候起作用,负责转发。

建立连接的大致过程

在这里插入图片描述

1、客户端发起连接:通过在客户端提供用户名、密码、以及连接字符串等信息,建立与监听器的连接。连接字符串位于客户端的文件里面,文件名字是tnsnames.ora,根据安装的客户端不同,放置在不同的目录里面。
监听把用户的连接请求转发给instance,实例会为这个连接启动一个Server Process, 同时会把Server Process的地址告诉监听,监听告诉客户端,然后客户端直接发起对Server Process的请求,同时把用户名和密码给Server Process,Server Process会验证,Server Process通过客户端输入的连接字符串,去到tnsnames.ora 里去找到host和端口,判断输入的端口和ip是否正确,如果正确则和监听建立连接。

2、客户端一旦与监听器建立连接,则在客户端生成用户进程,同时监听器会判断客户端所请求的服务名是否是自己所管理的服务名。

判断SERVICE_NAME是否正确:监听知道数据库在什么位置,监听会根据客户端输入的连接字符串信息找到tnsnames.ora文件里的SERVICE_NAME,检查SERVICE_NAME是否根自己所管理的服务名匹配(show parameter service),一旦匹配。建立成功连接,此时和监听没有任何关系。

例:如果客户端传过来的连接字符串不包含服务名,报错
如果请求的服务名不是自己管理的,报错并中断
如果请求的服务名是自己管理的,监听器就在数据库服务器上创建服务器进程

3、监听器在创建服务器进程以后,会将用户进程与服务器进程建立连接,之后,监听器退出与客户端的连接

4、服务器进程根据用户进程提供的用户名和密码到数据字典里判断是否正确

5、如果用户名和密码不匹配,报错,如果匹配,则分配PGA,并生成session

netca配置监听

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

动态注册与静态注册

我们前面在配置listener的时候,并没有涉及到服务名的问题,客户端将服务名传给监听器以后,监听器的服务名来自何处?

1、动态注册
数据库实例里的PMON进程,将当前实例的服务名注册到同一台服务器上的,默认的,并在1521端口上监听的监听器(就是名为LISTENER的监听器),当前实例的服务名由初始化参数service_name决定。

SQL> show parameter service

NAME				     TYPE
------------------------------------ --------------------------------
VALUE
------------------------------
service_names			     string
jfdb

手工启用动态注册:

show parameter local_listener;

SQL> show parameter servrice_name;
SQL> show parameter service

NAME				     TYPE
------------------------------------ --------------------------------
VALUE
--
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值