oracle内核原理-客户连接解析

客户端SQL Plus请求连接,监听接受客户端的TCP连接,并获取客户端发过来的TNS数据包

监听进程打开用于与子进程通信的管道,同时fork一个子进程,称为“监听子进程1”的子进程,然后监听进程一直等待,直到这个“监听子进程1”结束。

监听子进程1 Fork出子进程2。

完成上面一步,子进程1马上退出并结束子进程1。

子进程2收集本进程所在的主机名、IP地址及进程号等信息,并把子进程2重名成server process(这里我们也把server process叫前台进程或叫服务器进程),申请占用一小块PGA内存。

前台进程把主机名、IP地址及进程号发送给监听进程。

监听进程收到前台进程的信息,并返回客户端的信息(比如用户密码环境变量等)给前台进程。

前台进程查询USER$、PROFILE$等数据字典,校验用户名密码是否合法,如果用户密码错误就报错用户名密码无效,否则就与客户端进行交互。

客户端收到前台进程的信息与之交互,整个连接创建完成。

客户端发起一个连接,服务器端的监听创建一个shadow process,并把这个影子进程指派给用户,后期用户所有的操作都提交给shadow,shadow会替用户完成数据库内的操作,并把结果返回给用户。(中间件有点不同)

客户端发起update语句,根据客户端环境字符集转换成对应的编码,传到服务器端,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值