oracle进程

http://blog.csdn.net/leshami/article/details/5529239  Oracle实例和Oracle数据库(Oracle体系结构)

几类进程:用户进程,服务进程,后台进程,其它可选进程
用户进程
           在用户连接数据库产生,请求oracle服务器连接,必须要先建立一个连接,不会直接和oracle服务器连接
服务进程
           当连接实例并建立用户会话时产生,独立服务器或者提供共享服务器都能产生
后台进程
           维持物理和内存之间的联系,用来管理数据库的读写,恢复和监视等工作。
           Server Process主要是通过他和user process进行联系和沟通,并由他和user process进行数据的交换。
           在Unix机器上,Oracle后台进程相对于操作系统进程,也就是说,一个Oracle后台进程将启动一个操作系统进程。
           在Windows机器上,Oracle后台进程相对于操作系统线程,打开任务管理器,我们只能看到一个ORACLE.EXE的进程,但是通过另外的工具,就可以看到包含在这里进程中的线程。
用户进程(User Process)、服务进程(Server Process)、后台进程(Background Processes)的启动
           用户进程: 数据库用户请求Oralce server会话时被启动
           服务进程:当用户会话启动后,连接到Oracle实例时该进程被启动
           后台进程:当Oracle实例被启动时,启动相关的后台进程
Server Process(服务进程)
           分为专用服务进程(Dedicated Server Process)和共享服务进程(MultiTreaded Server Process)
           专用服务进程:一个服务进程对应多个用户进程,轮流为用户进程服务。
必须要有的后台进程
       DBWn       -->数据库写进程
       PMON       -->程序监控进程
       SMON       -->系统监控进程
       LGWr       -->日志写进程
       CKPT       -->检查点进程
可选进程:
       ARCN       归档进程
       RECO
       Snnn
       pnnn

DBWn(数据库写进程)
       负责将修改过的数据块从数据库缓冲区高速缓存写入磁盘上的数据文件中
       写入条件:
       发生检查点
       脏缓存达到限制
       没有自由的缓存
       超时发生
       表空间离线
       表空间只读
       表被删除或者截断
       开始备份表空间
           可以修改数据写进程的数量
           alter system set db_writer_processes=3 scope=spfile;

PMON(程序监控进程)
       清除失效的用户进程,释放用户进程所用的资源。
       如PMON将回滚未提交的工作,释放锁,释放分配给失败进程的SGA资源。
       清除失败的进程
       回滚事务
       释放锁
       释放其他资源

SMON(系统监控进程)
       检查数据库的一致性,当启动失败时完成灾难恢复等
       实难恢复时,前滚所有重做日志中的文件,打开数据库为了用户能访问,回滚未提交的事务,释放临时表空间
       清除临时空间,聚结空闲空间,从不可用的文件中恢复事务的活动,OPS中失败节点的实例恢复
       清除OBJ$表
       缩减回滚段
       使回滚段脱机

LGWr(日志写进程)
       将重做日志缓冲区中的更改写入在线重做日志文件
       条件:
       提交的时候(commit)
       redo log buffer达到1/3满
       每隔3秒
       有大于1MB 重做日志缓冲区未被写入磁盘
       DBWR需要写入的数据的SCN号大于LGWR 记录的SCN号,DBWR 触发LGWR写入
       超时
       在dbwr进程写之前写日志

CKPT(检查点进程)
       DBWR/LGWR的工作原理,造成了数据文件,日志文件,控制文件的不一致,CKPT进程负责同步数据文件,日志文件和控制文件
       CKPT会更新数据文件/控制文件的头信息
       条件:
       在日志切换的时候
       数据库用immediate ,transaction ,normal选项shutdown数据库的时候
       根据初始话文件LOG_CHECKPOINT_INTERVAL、LOG_CHECKPOINT_TIMEOUT、FAST_START_IO_TARGET 的设置的数值来确定
       用户触发

ARCN(归档进程)
       在每次日志切换时把已满的日志组进行备份或归档
       条件:
       数据库以归档方式运行的时候

RECO
       负责解决分布事物中的故障。Oracle可以连接远程的多个数据库,当由于网络问题,有些事物处于悬而未决的状态。
       RECO进程试图建立与远程服务器的通信,当故障消除后,RECO进程自动解决所有悬而未决的会话。

时间: 2024-11-02 20:00:00

oracle进程的相关文章

oracle进程结构简介

我们经常说数据库实例,实例其实就是指的是数据库的内存结构和进程结构.我们安装数据库软件大量的是在安装其内存和进程组件结构.上篇节我们介绍了oracle内存结构,这节就介绍下oracle进程结构. 首先看下oracle进程的分类: 1)用户进程 是连接到Oracle DB 的应用程序或工具 2)数据库进程 服务器进程:连接到Oracle实例,在用户建立会话时启动 后台进程:在启动Oracle实例时启动 3) 守护程序/应用程序进程 网络监听程序 Gridinfrastructure 守护程序 从进

Oracle 进程结构

Oracle进程结构 进程是动态创建的,完成任务后就消亡:而程序是静态的实体,程序是可以复制.编辑的.进程强调的是执行过程,而程序仅仅是指令的有序集合:进程在内存中,程序在外存中. ORACLE分为用户进程和ORACLE进程. l 用户进程 当用户执行一个基于ORACLE数据库的应用程序时,客户端就会创建一个ORACLE的用户进程(如运行的sqlplus.OEM都叫用户进程). 用户进程通过连接登录到ORACLE服务器,ORACLE服务器上就产生一个对应的服务器进程(Oracle服务器的"外交部

足球与oracle系列(3):oracle进程排名,世界杯次回合即将战罢!

足球与oracle系列(3):oracle进程排名,世界杯次回合即将战罢! 声明:        这不是技术文档,既然学来几招oracle简单招式,就忍不了在人前卖弄几下.纯为茶余饭后与数朋库友的插科打诨,只为轻松中带有一丝的诙谐,IT技术也能用来调侃一番,还蛮耐人寻味.        同时近来数月oracle知识点忘记了不少,为了把知识点重现,点滴间偶出灵感乍现,以一种自由的形式将其发布,由于本人学艺不精,文中列举的例子或故事,其中必然会有与技术联系牵强之处,望大家海涵.只当是一部小菜鸟的杂记

用oradebug short_stack及strace -p分析oracle进程是否dead或出现故障

1,可以采用oradebug或者strace -p跟踪后台或前台进程是否dead或hang住2,如果进程出现故障,必会在对应的TRC文件写入最新信息,基于此可以获取非常重要的信息进一步分析与诊断   日志文件在background_dump_dest3,采用 ll -lhrt *lgwr*|tail -10f  获取最新的进程的TRC文件4,而且出现故障时,多半会在ALERT日志记录相关信息,此是排除故障重要且首要的方法及思路5,oradebug setospid ospid  oradebug

【Oracle脚本】Oracle进程相关的SQL脚本

1. 求当前会话的SID,SERIAL# select sid, serial# from v$session where audsid = sys_context('userenv', 'sessionid'); 2. 查询session的OS进程ID select p.spid "os thread", b.name "name-user", s.program, s.sid, s.serial#,s.osuser, s.machine from v$proce

查杀oracle进程

select * from v$sql where address in (select sql_address from v$session where sid in (select sid from v$session where paddr in( select addr from v$process where spid = 12831928) ) 根据Linux下的top命令查看spid 原文地址:https://www.cnblogs.com/archer-wen/p/1003595

oracle的进程管理

Oracle进程管理 Oracle进程--server processes + 后台进程              ----------------   --------                 PGA               SGA server processes--功能:负责SQL语句的执行,包括从LRU链表中查找需要的数据块,将修改的内容写入缓冲区.后台进程------功能:将缓冲区的内容写入磁盘:1.将log buffer中内容写入redo log文件, 2.将db buf

oracle学习入门系列之五 内存结构、数据库结构、进程

oracle学习入门系列之五 内存结构.数据库结构.进程 上篇蛤蟆简单描述了oracle公司的数据库产品.其他产品及oracle软件的一些特点.干货虽有但是真心是比较少的,这篇开始就是以干货为主,其中夹杂一些扯淡的事情了.蛤蟆一直也在想如何能生动的通过这干巴巴的文字来描述着世界级的软件,太理论大家都看不下去,太实践又缺乏深度.想想自己上大学那会,老师的讲课,无不枯燥乏味啊,满满的兴趣尽是消耗殆尽.所以不能仿效之,我们得走自己特色的路.以最易懂的形式.比喻等手段描述深奥的计算机知识.走起~ 开篇问

oracle杀死锁表的进程(转发+合并+自己实践)

之一: Oracle数据库操作中,我们有时会用到锁表查询以及解锁和kill进程等操作 (1)锁表查询的代码有以下的形式:select count(*) from v$locked_object;select * from v$locked_object;(2)查看哪个表被锁select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id =