文章目录
- 一、开篇
- 二、Oracle客户端简介
- 三、连接过程解析
一、开篇
Oracle数据库以其卓越的性能和稳定性赢得了众多企业的信赖。作为开发者或数据库管理员,理解Oracle客户端如何与数据库建立连接,是确保系统正常运行的关键。
二、Oracle客户端简介
首先,我们要了解什么是Oracle客户端。简单来说,它是用户与Oracle数据库交互的接口,提供了一系列工具和库,使用户能够轻松地连接到数据库,并执行各种操作。
重客户端模式:PLSQL、DEVELOPER、TOAD、以及非服务器本地的SQLPLUS。
轻客户端模式:JDBC、ODBC这种连接驱动去连接数据库。
本地客户端(服务端的本地客户端): SQLPLUS
三、连接过程解析
在 Oracle 数据库中,LREG(Listener Registration)进程是一个后台进程,负责向监听器注册数据库实例信息。当数据库实例启动时,它会通过LREG 进程将自己的信息注入(或者注册)到监听器中,以使客户端能够连接到它。
下面是大致的注入过程:
-
数据库实例启动: 数据库实例启动后会创建 LREG 进程,该进程负责与监听器进行通信。
-
LREG 进程与监听器建立连接:LREG 进程通过网络连接与监听器建立通信渠道。
-
注册数据库实例信息:LREG 进程将数据库实例的相关信息(如服务名、主机名、端口号等)发送给监听器。
-
监听器接收实例信息:监听器接收到 LREG 进程发送的数据库实例信息。
-
监听器更新信息:监听器将接收到的数据库实例信息更新到自己的注册表中,以便将来的连接请求能够正确路由到相应的数据库实例。
Oracle客户端连接数据库过程:
1.客户端输入ORACLE的连接串,产生连接请求
客户端将提供的连接串进行解析并提取连接信息,包括主机名、端口号、服务名等。
2.监听器将收到的客户端请求发送给会话区监听器内部会将客户端发送的请求传递到会话区
3.会话区验证请求是否合法
验证客户端连接请求的合法性,包括检查客户端的IP地址、端口号,并进行连接权限的验证。
4.建立连接(SERVERPROCESS)
会话区验证请求成功,将与前台进程(SERVERPROCESS)建立通信。
5.SERVERPROCESS将验证结果传递给监听器
6.监听器返回验证结果给客户端
7.客户端与SERVERPROCESS生成会话信息
SERVERPROCESS前台进程与客户端之间建立会话。
扩展:
1.ORACLE产生会话用的是什么连接协议:IPC协议(TCP/IP协议精简后的协议)
2.栈区:程序生成区或变量操作区。
SELECT * FROM TAB WHERE COL1=&a;
&a代表绑定变量。所有的变量都在这个区中进行赋值或更改。
3.会话区(会话全局区)
会话信息缓存区(会话记录区):这里记录当前连接会话的信息
4.私有 SQL 区
私有 SQL 区是指每个会话(Session)在内存中分配的用于执行 SQL 语句的空间
5.运行区: 持久区产生的执行计划将在这个区域中进行运行