热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Oraclev$PROCESS

v$sessionV$PROCESS视图简介(这篇博客是对别人博客的借鉴,加上自己的理解整理出来的)服务器进程概念:Or

v$session/V$PROCESS视图简介

(这篇博客是对别人博客的借鉴,加上自己的理解整理出来的)

 


服务器进程概念:

Oracle的服务器进程有Oracle实例自动创建,用来处理连接到实例的客户端进程发出的请求,用户必须通过连接到Oracle的服务器进程来获取数据库中的信息。
对于专用服务器模式(建库时默认),客户端进程和Oracle服务器进程是一一对应的,新增一个服务器进程,大约需要的内存是: AIX 5-10M  ;LINUX 3-5M内存--实测是1M多。
而在共享服务器模式下,一个Oracle服务器进程可能同时服务多个客户端进程。                  
服务器进程主要用来执行下列的任务:
 解析、执行客户端提交的SQL语句。
从磁盘数据文件中读取必须的数据块到SGA得数据缓存区。
以适当形式返回SQL语句执行结果。


user process用户进程概念

客户机使用SQLPLUS/PLSQL等工具通过tnsnames.ora中的服务名,连接到数据库服务器的服务器进程。要经过监听--服务器进程--PGA。
PROCESSES与SESSIONS数之间关系:   --
11g 官方默认值:sessiOns=1.5*processes + 22     文档:http://docs.oracle.com/cd/E11882_01/server.112/e40402/initparams234.htm#sthref696
10g 官方默认值:sessiOns=1.1*processes + 5       文档:http://docs.oracle.com/cd/B19306_01/server.102/b14237/initparams191.htm#REFRN10197

 

 


连接和会话的关系:

连接:
用户进程和 Oracle 实例间的通信通道communication pathway。
这个通信通道是通过进程间的通信机制interprocess communication mechanisms(在同一个计算机上运行用户进程和 Oracle 进程)或网络软件network software(当数据库应用程序与 Oracle 服务器运行在不同的计算机上时,就需要通过网络来通信)建立的。
会话 :  --在专有服务器模式下,一个连接对应一个会话。
主要指用户和数据库间的联系。
例如,当用户启动 SQL*Plus时必须提供有效的用户名和密码,之后 Oracle 为此用户建立一个会话。从用户开始连接到用户断开连接(或退出数据库应用程序)期间,会话一直持续。
例如:使用PLSQL连接数据库,就有一个连接,相应也有一个会话。在PLSQL中打开一个SQL窗口,就又是一个连接,相应也有一个会话。
在PLSQL里打开的SQL窗口查询:
select sid from v$mystat where rownum=1;
40
select  b.spid,a.sid,a.username,a.program,a.machine  from v$session a,v$process b where a.paddr=b.addr and a.type='USER';这条语句列出了session(会话)的pid以及该session对应操作系统级别的spid,因为是专有模式,一个会话对应oracle的一个进程,如果在操作系统层面杀死session的spid,即kill -9 spid,那该会话就被杀死,用户无法连接到数据库了。)


30152    51    BYS    plsqldev.exe    WORKGROUP\BYS  ---这一条是打开PLSQL软件连接到数据库的会话信息
30187    40    BYS    plsqldev.exe    WORKGROUP\BYS --这一条是当前PLSQL中的SQL窗口对应的会话信息

在运行数据库的LINUX系统上查询:  ---进程的PID与PLSQL中查询的可以对应。
[oracle@bys3 ~]$ ps -ef |grep LOCAL |grep -v grep
oracle   30152     1  1 21:01 ?        00:00:02 oraclebys3 (LOCAL=NO)      --对应PLSQL程序的会话
oracle   30187     1  0 21:02 ?        00:00:00 oraclebys3 (LOCAL=NO)      --对应PLSQL中的SQL窗口
#####################

如果在linux上面使用kill -9 30152,那么通过select  b.spid,a.sid,a.username,a.program,a.machine  from v$session a,v$process b where a.paddr=b.addr and a.type='USER';查找出来的这个session就被杀死,这个是通过操作系统层面的pid来杀死用户的会话,如果再去使用之前pid为30152的会话去查询数据库相关信息会出现下面错误:

SQL> select 2*3 from dual;

select 2*3 from dual

*

ERROR at line 1:

ORA-03135: connection lost contact

Process ID: 30152

Session ID: 42 Serial number: 199



使用SQLPLUS测试:  --实验环境,现在没有连接到数据库。
[oracle@bys3 ~]$ ps -ef |grep LOCAL |grep -v grep   ---查询无返回,当前系统中没有ORACLE的连接信息
然后另开一窗口2,SSH到数据库所在服务器,启动SQLPLUS登陆数据库。再查询:
[oracle@bys3 ~]$ ps -ef |grep LOCAL |grep -v grep
oracle   30305 30302  3 21:10 ?        00:00:00 oraclebys3 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq))) --这一条就是窗口2中新打开SQLPLUS连接的信息 LACAL=YES,表明不是通过监听连接的--本地IPC


V$MYSTAT--这个主要就是来查当前会话SID

SID 显示当前会话的SID
STATISTIC#  统计号
VALUE       统计的值
###############################################

 

 

v$process 视图

   作用: v$process视图包含当前系统oracle运行的所有进程信息。常被用于将oracle或服务进程的操作系统进程ID与数据库session之间建立联系。

表结构

SQL> desc v$process;

 Name    Null?    Type

 ADDR     RAW(8)

 PID     NUMBER

 SPID     VARCHAR2(24)

 PNAME     VARCHAR2(5)

 USERNAME     VARCHAR2(15)

..........................................................

 


V$PROCESS

ADDR    与v$session中PADDR对应
PID      Oracle进程标识符,ORACLE的后台进程及用户进程都在内。查select pid,pname from v$process;
SPID     ORACLE中进程ID--ps -ef |grep LOCAL    查出的进程号
PROGRAM     显示所用的程序--如oracle@bys3.bys.com (SMON)  后台进程 oracle@bys3.bys.com (TNS V1-V3) 服务器上直接连接  oracle@bys3.bys.com 通过监听连接的用户进程
BACKGROUND 值为1,是后台进程。NULL表示是普通用户进程
TRACEID     
TRACEFILE   11G中新增字段,显示了当前进程的TRACEFILE的具体位置。
LATCHWAIT   等待的锁的地址; NULL,没有锁
LATCHSPIN     Address of the latch the process is spinning on; NULL if none

 

 


推荐阅读
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • Unity3D引擎的体系结构和功能详解
    本文详细介绍了Unity3D引擎的体系结构和功能。Unity3D是一个屡获殊荣的工具,用于创建交互式3D应用程序。它由游戏引擎和编辑器组成,支持C#、Boo和JavaScript脚本编程。该引擎涵盖了声音、图形、物理和网络功能等主题。Unity编辑器具有多语言脚本编辑器和预制装配系统等特点。本文还介绍了Unity的许可证情况。Unity基本功能有限的免费,适用于PC、MAC和Web开发。其他平台或完整的功能集需要购买许可证。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • Oracle10g备份导入的方法及注意事项
    本文介绍了使用Oracle10g进行备份导入的方法及相关注意事项,同时还介绍了2019年独角兽企业重金招聘Python工程师的标准。内容包括导出exp命令、删用户、创建数据库、授权等操作,以及导入imp命令的使用。详细介绍了导入时的参数设置,如full、ignore、buffer、commit、feedback等。转载来源于https://my.oschina.net/u/1767754/blog/377593。 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
author-avatar
阿乀胜69
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有