• Usage and Configuration of the Oracle shared Server


    image

    image

    一个客户端连接到服务器时,服务器必须要有进程来对应连接,

    image

    1 对 1, 只要不断开 session

    image

    image

    image

    这个 进程不是 instance 的一部分,是随着client连接而创建,session结束而释放。

    当client发个请求时,做工作最多的就是这个 dedicated server process, 它可以与硬盘打交道, 因为它本身就是process。

    image

    image

    image

    在 shared server 中,进程是之前先创建好的,有两类 dispatcher, 和 shared process

    dispatcher 会将你的请求放在 SGA 中,然后 shared process 将该请求取出处理,处理完后,将该请求再放回 SGA, dispatcher 将处理的结果取出,那然跟client通信,类似银行,拿号,等待,dispatcher 就类似银行的保安, shared server 相当于柜台的柜员,拿号,就是等着,你的请求会在SGA中等待

    image

    应该先和 listener 连接吧,然后 listener 将该请求给 dispatcher, dispatcher 就是一个传话筒的作用。

    image

    request queue 就一个 ( 不需要知道任务从哪个 session来,工作就是将 request 放入内存的 Request Queue中)

    reponse queue 是一个 dispatcher 对应一个( 这个是必须的,因为它要知道这个处理完得任务,对应哪个 session )

    image

    image

    各有优缺点

    image

    image

    How a Request is Processed :

    1. A user sends a request to its dispatcher.

    2. The dispatcher places the request into the request queue in the SGA

    3. A shared server picks up the request from the request queue and processes the request.

    4. The shared server places the reponse on the calling dispatcher’s response queue.

    5. The response is handled off to the dispatcher.

    6. The dispatcher returns the reponse to the user.

    Request Queue

    • One request queue is shared by all dispatchers.
    • Shared servers monitor the request queue for new requests.
    • Requests are processed on a first-in, first-out( FIFO ) basis.
    • Shared servers place all completed requests on the calling dispatcher’s reponse queue.
    • Each dispatcher has its own reponse queue in the SGA.
    • Each dispatcher is reponsible for sending completed requests back to the appropriate user process.
    • Users are connected to teh same dispathcer for the duration of a session.

    image

    专有服务器 : PGA 是一块大内存,里边存了所有的 server process, 如上图

    image

    image

    dispatchers 是静态的,不会动态增长

    shared server 动态的

    image

    image

    image

    只要设置了 large_pool_size, UGA 的信息就会放在large pool 里( 用户信息 )

    image

    image

    如果配置了 shared server, 那么就会自动使用 shared server. 优先使用

    在客户端来讲,这个对 client 是透明的,也就是 client 不知道服务器时shared server 还是专用服务器

    也可以 client 端显示指定,例如上图 在 tnsname.ora 中设置

    image

    image

    shared 用的越来越少了,以前 client 非常流行,那个时候没有 3层结构,以前PB的 sysbase 非常强,所以 oracle 推出了 shared 方式

    3 层架构,企业做宝贵的是数据, 数据库直接管理数据,所以数据库最好不要直接暴漏给用户,而三层架构有个中间件,所以,3层架构已经占垄断地位了。

    image

  • 相关阅读:
    学习笔记1:性能问题在于你想不到的任何地方!
    React Native控件之PullToRefreshViewAndroid下拉刷新组件解说(20)
    CSDN-markdown编辑器之导入导出文档功能
    无名管道与有名管道通讯编程
    LeetCode Remove Nth Node From End of List
    libpcap出错信息调试函数pcap_geterr, pcap_perror
    工作流学习——Activiti流程实例、任务管理四步曲
    B
    oracle学习笔记 oracle软件安装和数据库的创建
    路由器逆向分析------MIPS系统网络的配置(QEMU)
  • 原文地址:https://www.cnblogs.com/moveofgod/p/2889657.html
Copyright © 2020-2023  润新知