当前位置: 首页 > article >正文

【Oracle 客户端连接数据库过程解析】

文章目录

    • 一、开篇
    • 二、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.运行区: 持久区产生的执行计划将在这个区域中进行运行


http://www.kler.cn/a/133408.html

相关文章:

  • 深度学习在边缘检测中的应用及代码分析
  • 栈相关算法题1|通过栈判断链表是否对称|共享栈入栈出栈|括号匹配|多种括号配对|递归求序列最大值(C)
  • 蓝桥杯竞赛单片机组备赛【经验帖】
  • 【NLP】医学搜索Query相关性判断【阿里云:天池比赛】
  • 从python源码到可自动更新软件
  • 华为机试HJ41 称砝码
  • 云计算和跨境电商:数字化未来的基石
  • 科研小白成长记37——换档
  • 使用Pandas进行时间重采样,充分挖掘数据价值
  • 详细步骤记录:持续集成Jenkins自动化部署一个Maven项目
  • gittee启动器
  • 【网络奇遇记】那年我与计算机网络的浅相知
  • 数据结构及八种常用数据结构简介
  • 公共字段自动填充-@TableField的fill实现(2)
  • Qt/C++ 获取QProcess启动的第三方软件的窗体标题
  • 「Verilog学习笔记」根据状态转移表实现时序电路
  • Linux_安装docker
  • TS的函数如何定义类型
  • 【手写数据库toadb】SQL解析器的实现架构,create table/insert 多values语句的解析树生成流程和输出结构分析
  • 如何将vscode和Linux远程链接:
  • 节点导纳矩阵
  • redis命令记录
  • 【cpolar】Ubuntu本地快速搭建web小游戏网站,公网用户远程访问
  • 【开源】基于JAVA的大学兼职教师管理系统
  • 037、目标检测-SSD实现
  • Flume学习笔记(4)—— Flume数据流监控