添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
文武双全的圣诞树  ·  mysql count ...·  4 周前    · 
热心的移动电源  ·  [tool_crash] ...·  1 月前    · 
踏实的风衣  ·  Recherche·  3 月前    · 
小胡子的酱牛肉  ·  this.quill.getSelectio ...·  7 月前    · 

服务器进程概念:

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     显示所用的程序--如[email protected] (SMON)  后台进程 [email protected] (TNS V1-V3) 服务器上直接连接  [email protected] 通过监听连接的用户进程
BACKGROUND 值为1,是后台进程。NULL表示是普通用户进程
TRACEID
TRACEFILE   11G中新增字段,显示了当前进程的TRACEFILE的具体位置。
LATCHWAIT   等待的锁的地址; NULL,没有锁
LATCHSPIN     Address of the latch the process is spinning on; NULL if none

v$session/V$PROCESS视图简介(这篇博客是对别人博客的借鉴,加上自己的理解整理出来的) 服务器进程概念:Oracle的服务器进程有Oracle实例自动创建,用来处理连接到实例的客户端进程发出的请求,用户必须通过连接到Oracle的服务器进程来获取数据库中的信息。对于专用服务器模式(建库时默认),客户端进程和Oracle服务器进程是一一对应的,新增一个服务器进程,大约...
PGA              非共享内存                 Server Process 使用(排序,连接等操作也可能会用到)             排他访问,所以不需要latch保护 通常来说,包含私有SQL区,session信息等。(在可变PGA中) 一个私有SQL区在cursor打开时分配,当执行结束游标释放后关闭。 设置了PAG_AGGREGRATE_TAR
首先查看v$ process 都存在哪些列 SYS@ORCL>desc v$ process Name                                      Null?    Type  ----------------------------------------- -------- ----------------------------
参考:http://www.savedba.com/?p=591 OSWatcher Black Box, 简称OSW,是 oracle 提供的一个小但是非常有用的工具,它通过调用OS自己提供的命令来记录OS运行时的一些性能参数,比如CPU/Memory/Swap/Network IO/Disk IO相关的信息。 OSW工具的部署: 建议部署在root或者非 oracle 用户下