Oracle 专用模式与共享模式的学习与思考


说明

Oracle数据库中的专用模式和共享模式是两种不同的数据库运行模式,它们在应用场景和权限管理上有所不同。

专用模式(Dedicated Mode):专用模式是指一个Oracle数据库实例中的每个用户连接都拥有独立的进程来处理请求。
每个用户连接都有自己的私有内存和资源,彼此之间是独立的。这种模式适用于需要高度隔离的环境,
例如每个用户的数据和会话都需要保持独立,以确保高安全性和稳定性。 共享模式(Shared Mode):共享模式是指多个用户连接共享一个进程来处理请求。
这些用户连接共享数据库实例的内存和资源,它们之间需要共享这些资源。
这种模式适用于较多用户、负载较轻的环境,可以通过共享资源来提高数据库的整体性能和效率。 区别与作用: 区别:专用模式和共享模式的区别在于每个用户连接的资源隔离与共享程度。
专用模式提供更高的隔离度,确保每个用户连接独立运行;而共享模式则通过共享资源来节约系统资源和提高数据库的整体利用率。
作用:专用模式适用于需要保障数据隔离和安全性的场景,每个用户连接独享资源,不会被其他用户连接的操作影响。
共享模式适用于较多用户的场景,多个用户连接共享数据库实例的资源,提高资源利用率和响应速度。 选择合适的模式有助于优化数据库性能并满足不同的业务需求。

专用模式下session里面Active与InActive的关系

sqlplus 登录Oracle数据库后,立即就处于 Inactive的状态. 

JDBC连接进来的如果没有正在执行的SQL也是处于Inactive的状态. 

这两种工具, 只有有正在执行的SQL时才处于Active的装填,
我认为可以理解为: JDBC过来的连接, 并且处于Active状态的就是在执行SQL的. 但是Navicat或者是 Dbeaver等工具连接上来都是Active状态的,
因为他们要跟数据库做很多交互, 所以Oracle默认他们是Active状态的. 所以此时Active的状态可能要排除掉非JDBC得连接.
需要注意的是JDBC的连接的process 都是 1234的进程号. 也可以根据他来进行一下简要的分析.

关于v$session里面1234进程号的问题

先说一个 process 1234 的问题:
Note: The JDBC driver cannot correctly retrieve the values of some V$SESSION properties on its own.
Specifically, the driver exhibits the following behavior: •When querying the TERMINAL field of the V$SESSION table using the JDBC Thin driver,
the value returned is "unknown".
•When querying the PROCESS field of the V$SESSION table using the JDBC Thin driver,
the value returned is "1234".
The driver returns the process ID as "1234" by default, since obtaining a process ID is not possible using the JDBC Thin driver.
Therefore, for an appropriate terminal name or process ID to be returned to the JDBC Thin driver,
these properties need to be populated using the method described below.

关于专用模式下Oracle的TCP连接与Session的关系

使用Navicat连接Oracle数据库.
然后过滤一下数据库相关监听方面的信息 lsof -i:1521 |grep 172.17.61.82
oracle_12 12198 oracle 20u IPv4 4141084745 0t0 TCP ojndev32-vip:ncube-lm->172.17.61.82:63783 (ESTABLISHED)
oracle_20 20687 oracle 20u IPv4 4144337125 0t0 TCP ojndev32-vip:ncube-lm->172.17.61.82:50953 (ESTABLISHED)
oracle_29 29524 oracle 20u IPv4 4140330855 0t0 TCP ojndev32-vip:ncube-lm->172.17.61.82:63001 (ESTABLISHED) 然后将某一个navicat的连接 kill 掉:
alter system kill session '5097,32145' ; Navicat 再连接时发现会报错如下:
ORA-01012: not logged on
Process ID: 29524
Session ID: 5097 Serial number: 32145 同时发现,如果不关闭navicat的窗口, 这个TCP连接一直处于建立状态, 并且Oracle的进程是一直存在的.
关闭navicat的窗口后. tcp的 连接瞬间就释放掉了. [root@ojndev32 ~]# lsof -i:1521 |grep 172.17.61.82
oracle_12 12198 oracle 20u IPv4 4141084745 0t0 TCP ojndev32-vip:ncube-lm->172.17.61.82:63783 (ESTABLISHED)
oracle_20 20687 oracle 20u IPv4 4144337125 0t0 TCP ojndev32-vip:ncube-lm->172.17.61.82:50953 (ESTABLISHED) 同样的 我退出一个sqlplus的窗口. 连接立马关闭.
同样需要注意的一点是. Oracle rac环境需要使用 gv$session 的视图去查询, 不要使用v$session, v$session视图 仅能够查询到一半的session信息.

Oracle 专用模式与共享模式的学习与思考的更多相关文章

  1. Oracle Dedicated server 和 Shared server(专用模式 和 共享模式) 说明(转)

    一.  官网说明 在DBCA 建库的时候,有提示让我们选择连接类型,这里有两种类型:专用服务器模式和共享服务器模式.默认使用专用模式.如下图: Oracle 官方文档对这两种文档的说明如下: Abou ...

  2. Delphi TFileStream 打开模式与共享模式

    { TFileStream create mode } fmCreate = $FF00; { Create a file with the given name. If a file with th ...

  3. 3.从AbstractQueuedSynchronizer(AQS)说起(2)——共享模式的锁获取与释放

    在上节中解析了AbstractQueuedSynchronizer(AQS)中独占模式对同步状态获取和释放的实现过程.本节将会对共享模式的同步状态获取和释放过程做一个解析.上一节提到了独占模式和共享模 ...

  4. Java并发系列[3]----AbstractQueuedSynchronizer源码分析之共享模式

    通过上一篇的分析,我们知道了独占模式获取锁有三种方式,分别是不响应线程中断获取,响应线程中断获取,设置超时时间获取.在共享模式下获取锁的方式也是这三种,而且基本上都是大同小异,我们搞清楚了一种就能很快 ...

  5. Oracle 专用模式(DEDICATED) 和 共享模式(SHARE) (转)

    Oracle 是一门博大精深的技术.玩了2年的oracle,依旧还有很多知识点不清楚. 昨天群里的朋友提到了 DEDICATED 和 SHARE 两种模式. 不清楚,默默的做点功课了.从网上搜了点知识 ...

  6. Oracle 专用模式(DEDICATED) 和 共享模式(SHARE)

    Oracle 是一门博大精深的技术.玩了2年的oracle,依旧还有很多知识点不清楚. 昨天群里的朋友提到了 DEDICATED 和 SHARE 两种模式. 不清楚,默默的做点功课了.从网上搜了点知识 ...

  7. 并发编程学习笔记(9)----AQS的共享模式源码分析及CountDownLatch使用及原理

    1. AQS共享模式 前面已经说过了AQS的原理及独享模式的源码分析,今天就来学习共享模式下的AQS的几个接口的源码. 首先还是从顶级接口acquireShared()方法入手: public fin ...

  8. 再谈AbstractQueuedSynchronizer:共享模式与基于Condition的等待/通知机制实现

    共享模式acquire实现流程 上文我们讲解了AbstractQueuedSynchronizer独占模式的acquire实现流程,本文趁热打铁继续看一下AbstractQueuedSynchroni ...

  9. AbstractQueuedSynchronizer 原理分析 - 独占/共享模式

    1.简介 AbstractQueuedSynchronizer (抽象队列同步器,以下简称 AQS)出现在 JDK 1.5 中,由大师 Doug Lea 所创作.AQS 是很多同步器的基础框架,比如 ...

  10. 再谈AbstractQueuedSynchronizer2:共享模式与基于Condition的等待/通知机制实现

    共享模式acquire实现流程 上文我们讲解了AbstractQueuedSynchronizer独占模式的acquire实现流程,本文趁热打铁继续看一下AbstractQueuedSynchroni ...

随机推荐

  1. PySimpleGUI 使用浅谈

    1. 背景 PySimpleGUI是一个简单易用的Python GUI库,它提供了一种直观且快速创建图形用户界面的方式. 2. 安装 pip install PySimpleGUI 3. PySimp ...

  2. JavaFx之ScrollPane滚动板面、CheckBox复选框(二十四)

    JavaFx之ScrollPane滚动板面.CheckBox复选框(二十四) 多个复选框时可能会超出屏幕,需要使用滚动版面. 布局方式:ScrollPane包括VBox.VBox 包括多个 Check ...

  3. Visual Studio使用Web Deploy发布.NET Web应用到指定服务器的IIS中

    前言 今天要讲的是在Window 2008 R2版本的服务器下如何配置Web Deploy,和Visual Studio使用Web Deploy发布.NET Web应用到指定服务器的IIS中. 因为历 ...

  4. 全量通过,华为云GaussDB首批完成信通院全密态数据库评测

    摘要:100%全量通过!基于全栈创新计算架构的全密态数据库华为云GaussDB,完成了中国信通院组织的首批"全密态数据库"产品能力评测. 本文分享自华为云社区<全量通过!华为 ...

  5. 云图说|数据仓库服务 GaussDB(DWS) 的“千里眼、顺风耳”—数据库智能运维

    摘要:数据库智能运维(DMS)是GaussDB(DWS) 为客户数据库快速.稳定运行提供保驾护航的能力,对业务数据库所使用磁盘.网络.OS指标数据,集群运行关键性能指标进行收集.监控.分析.通过综合收 ...

  6. 综合指南|如何为平台工程选择关键 KPI

    平台工程是一种新兴的技术方法,可以加速应用程序的交付和产生商业价值的速度.通过提供具有自动化基础设施操作的自助服务能力,改善开发者的体验与生产力,同时降低操作的复杂性.在企业采用了平台工程之后,需要对 ...

  7. Hudi Bucket Index 在字节跳动的设计与实践

    由字节跳动数据湖团队贡献的 RFC-29 Bucket Index 在近期合入 Hudi 主分支,本文详细介绍 Hudi Bucket Index 产生的背景与实践经验.字节跳动数据湖团队持续招人中, ...

  8. Jenkins Pipeline 流水线 - withCredentials 使用

    添加凭证 Pipeline script pipeline { agent any stages { stage('withCredentials 使用凭证') { steps { withCrede ...

  9. 记一次 .NET某MES自动化桌面程序 卡死分析

    一:背景 1. 讲故事 前些天有位朋友在微信上找到我,说他们的客户端程序卡死了,让我帮忙看下是什么原因导致的?dump也拿到了手,既然有了dump就开始正式分析吧. 二:WinDbg 分析 1. 什么 ...

  10. 【flask】flask请求上下文分析 threading.local对象 偏函数 flask1.1.4生命执行流程 wtforms

    目录 上节回顾 今日内容 1 请求上下文分析(源码:request原理) 1.1 导出项目的依赖 1.2 函数和方法 1.3 threading.local对象 1.4 偏函数 1.5 flask 整 ...