Oracle 工艺结构
Oracle工艺结构
这个过程是动态创建,完毕任务后就消亡;而程序是静态的实体,程序是能够复制、编辑的。进程强调的是运行过程,而程序不过指令的有序集合;进程在内存中,程序在外存中。
ORACLE分为用户进程和ORACLE进程。
l 用户进程
当用户执行一个基于ORACLE数据库的应用程序时,client就会创建一个ORACLE的用户进程(如执行的sqlplus、OEM都叫用户进程)。
用户进程通过连接登录到ORACLEserver,ORACLEserver上就产生一个相应的server进程(Oracleserver的“外交部”);该server进程代表执行在client的用户进程与server通信。
l ORACLE进程
Oracle进程能够分为server进程和后台进程server进程。
² server进程
主要是服务于client的用户进程。server进程又能够分为:专用server进程(仅仅为一个用户进程提供服务)和共享server进程(能够为多个用户进程提供服务)。
² server进程的任务:
A. 解析并运行用户所提交的SQL语句;
B. 搜索SGA区的数据库缓存,决定是否读取数据文件。
假设数据块不在SGA区的数据库缓存中,就将其从数据文件里读入;
C. 将查询运行的结构数据返回给用户。
² 后台进程(BackgroundProcess)
server进程是由后台进程提供支持的。后台进程主要完毕的任务是:
A. 在内存和外存之间进行I/O操作;
B. 监视各个进程的状态;
C. 协调各个进程的任务。
D. 维护系统的性能;
E. 保证系统的可靠性;
可使用下面查询来检查数据库中启动的后台进程个数及其名称
SQL> SELECT * FROM V$BGPROCESS
经常使用的后台进程:
n SMON(SystemMonitor) 系统监视进程:
ü 启动条件:随ORACLE数据库系统启动;执行期间ORACLE能够唤醒SMON进程,以检查是否须要执行它所负责的工作;假设其它不论什么进程须要使用SMON进程的功能时,将随时唤醒SMON进程。
ü 作用:
A、在例程启动时负责对数据库进行恢复。
假设是非正常关闭数据库,则当下次启动例程时。SMON进程会自己主动读取重做日志文件。对数据库进行恢复(即运行将已提交的事务写入数据文件里、回退未提交的事务等操作)。
B、清除已经分配但不再使用的表空间中的暂时段(假设表空间中有大量的盘区。则清除就会花费大量时间,就会影响数据库启动时的性能)
。
C、合并基于数据字典管理的各个表空间中位置相邻的空暇盘区。使之更easy分配。
ü 备注说明:假设某个表空间的存储參数 PCTINCREASE
,则SMON进程就不会对该表空间中的空暇盘区进行合并操作。
n PMON(Process Monitor) 进程监视进程。
ü 启动条件:
A、 须要启动、清除中断或失败的用户进程时(即对ORACLE数据库的连接发生崩溃、挂起或其它非正常终止等);清除操作还包含非正常中断的用户进程留下的孤儿会话。回退未提交的事务。释放会话所占用的锁、SGA区、PGA区的资源。
B、 执行期间ORACLE能够唤醒PMON进程,以检查是否须要执行它所负责的工作;假设其它不论什么进程须要使用PMON进程的功能时,将随时唤醒PMON进程。
C、PMON是在单独的数据库中启动的。而分布式数据库中是RECO
恢复进程来完毕PMON进程的任务的。
ü 作用:
A、 恢复中断或失败的用户进程、server进程;
B、 清除非正常中断的进程留下的孤儿会话;
C、回退未提交的事务。重置活动事务的状态。从系统活动进程中删除用户进程标识号(ID)
;
D、释放进程所占用的各种资源,并通过自己主动回退事务来解决死锁,释放用户所拥有的表和行上的锁;
E、 定期检查server进程和调度进程。假设它们因失败而被异常挂起。则自己主动又一次启动它们。
n DBWn(Database Writer)
数据库写进程。
ü 启动条件
A、当DIRTY列表中的脏缓存块达到一定数量(即初始化參数db_block_write_batch指定值的一半),DBWn进程将脏缓存块写入数据文件(同一时候ORACLE将对控制文件和数据文件的头部的同步序号SCN进行改动,记录下当前数据库的结构和状态,以保证数据库中物理文件之间的同步);
B、当在LRU列表中找到一定数量(即初始化參数db_block_max_scan指定的值)的空暇缓存块,但还不够时,为获得很多其它的空暇缓存块,DBWn进程将脏缓存块写入数据文件;
C、当出现检查点LGWR进程通知DBWn进程进行写操作。
D、一个表空间被置于备份模式、脱机或仅仅读状态时;
秒未启动时。
ü 作用:
A、管理快速缓冲区,保证server进程总能找到空暇缓存块,以便保存从数据文件里读取的数据块;
B、将DIRTY列表中的脏缓存块写入到数据文件里。获取很多其它的空暇缓存块;
C、使用LRU算法将近期正在使用的缓存块即命中块,继续保留在LRU列表中。不必又一次读取数据文件;
D、DBRn进程通过延迟写入来优化磁盘I/O操作,而server进程仅仅在数据快速缓存区中做改动。
ü 备注说明:
个DBWn进程;
B、ORACLE默认启动一个DBWn进程,启动受初始化參数(DB_WRITER_PROCESS)的限制。能够设置初始化參数
DB_BLOCK_CHECKPOINT_BATCH来设置每当出现检查点时。DBWn进程写入的脏缓存块的最大数量。增大该值,能够延长启动DBWn进程的时间间隔。
n LGWR(Log Writer) 日志写进程;
ü 启动条件:
A、用户进程通过COMMIT语句提交当前事务;
B、重做日志快速缓存被写满1/3时,或含有1MB的重做信息时;
C、DBWn进程须要为检查点清除脏缓存块,即将脏缓存块写入数据文件时;
秒为启动LGWR进程时。
ü 作用:
A、负责管理重做日志快速缓冲区,即将重做日志记录从快速缓存区写入到重做日志文件;
B、假设例程没有启动CKPT检查点进程,则LGWR进程就来完毕检查点运行任务。
ü 备注说明:
A、 每一个例程仅仅有一个LGWR进程;
B、 LGWR进程先于DBWn进程启动。
n CKPT (CheckPoint)
检查点进程
ü 启动条件:
A、 关闭数据库时;
B、 一个重做日志文件被写满而产生日志切换时;
C、满足參数 LOG_CHECKPOINT_TIMEOUT(指定检查点之间的时间间隔(以秒为单位));
D、參数 LOG_CHECKPOINT_INTERVAL(指定当一定数量的操作系统数据块(非ORACLE数据块)被写入重做日志文件时,将触发一个检查点)
ü 作用:
A、 触发DBWn进程。使其将自上一个检查点之后的所有已经改动的数据块(脏缓存块)写入数据文件里。
B、 保持数据库快速缓冲区与数据文件之间数据同步(用最新的检查点信息更新控制文件和数据库文件的文件头);
C、检查点信息会在恢复数据库期间使用。当SMON进程恢复数据库时,SMON会决定最后在数据文件里的检查点。(必须将数据文件的文件头和控制文件里最后记录的检查点之后的联机重做日志文件里的事务编号又一次提交到数据文件里。)
ü 备注说明:
A、不要设置不必要的检查点,或迫使不须要的检查点发生。
B、缩短检查点运行的间隔,能够缩短数据库恢复时所需的时间。
C、假设检查点运行的间隔短。将会产生过多的I/O操作;
D、应该使LOG_CHECKPOINT_INTERVAL
设置的操作系统块数与重做日志文件的大小相匹配。
ü ORACLE在不同的时刻运行不同级别的检查点。故检查点有可分为 4
种:
A、 数据库检查点:每一次重做日志文件切换时都运行数据库检查点。使用NORMAL\TRANSACTIONAL\IMMEDIATE选项关闭数据库时,会运行一个检查点;此时DBWn进程将数据快速缓存区中的全部脏缓存块都写入数据文件里。
B、 表空间检查点:将一个表空间设置为脱机状态或备注为BACKUP模式,会运行一个表空间检查点。此时DBWn仅仅会将快速缓存区中的与该表空间相关的脏缓存块写入数据文件里。
C、手动检查点:使用 ALTER SYSTEM CHECKPOINT
语句来手动设置一个检查点。
D、时间检查点:即每隔多久运行一次检查点。能够通过调整(LOG_CHECKPOINT_TIMEOUT和LOG_CHECKPOINT_INTERVAL)參数来改变检查点实行的间隔。
n ARCn(Archiver)
归档进程。
ü 启动条件:
发生重做日志切换时(必须是归档模式下,而且初始化參数 LOG_ARCHIVE_START
为 TRUE
,假设在归档模式下该參数是FALSE当重做日志文件所有写满,数据库将会被挂起。
)
ü 作用:避免数据库崩溃无法恢复。
ü 备注说明:
A、一个例程默认仅仅会启动一个归档进程ARCn,当ARCn正在归档一个重做日志文件时,不论什么其它进程都不能訪问这个重做日志文件。
个ARCn。
C、初始化參数 LOG_ARCHIVE_DEST
指定了归档日志文件所在的位置;LOG_ARCHIVE_FORMAT指定了归档日志文件的命名格式规则。
n RECO(Recoverer)
恢复进程
n LCKn(Lock)
锁进程
n RVWR(Recovery Writer)
闪回恢复进程
n CTWR(Change Tracking Writer)
闪回变化跟踪写进程
n CJQn(Job Queue Monitor)
作业队列监视进程
n Jnnn(Job Queue)
作业队列进程
n Dnnn(Dispatcher)
调度进程
n Snnn(Shared Server) 共享server进程
² 综合案例
案例:查询后台进程的编号。名称和描写叙述。
col spid format a10;
col name format a10;
col description formata30;
select p.spid, b.name,b.description from v$bgprocess b, v$process p where p.addr=b.paddr;
案例:查询
col spid format a10;
col username formata10;
col terminalformat a10;
col program format a10;
select spid, username,terminal, program from v$process;
案例:查看用户进程情况。
Username表示username,process记录操作系统进程号。
1) 执行cmd,输入sqlplus/nolog。输入conn / as sysdba;建立连接1。
2) 在sqlplus中运行以下命令:
col username formata10;
col process format a10;
col machine format a10;
col program format a10;
select username,process, machine, program from v$session where username is not null;
3) 执行cmd,输入sqlplus/nolog。输入conn scott/tiger as sysdba。建立连接2。
4) 在第一步建立的连接1中再运行以下的命令:
select username,process, machine, program from v$session where username is not null;
5) 控制以上两个查询的结果。
Oracle 工艺结构的更多相关文章
- oracle表结构和表内容差异比对
oracle表结构和表内容差异比对 oracle中有三种集合操作,他们会把左边和右边的select 结果集进行集合操作. union 并集 intersect 交集 minus 差集 假设有如下两张表 ...
- Oracle目录结构及创建新数据库
oracle目录结构 当需要创建新的数据仓库时我可以用 Database Configuration Assistant(数据库配置助手) admin 存放创建的不同数据库 cfgtoollogs c ...
- Oracle数据库基础入门《二》Oracle内存结构
Oracle数据库基础入门<二>Oracle内存结构 Oracle 的内存由系统全局区(System Global Area,简称 SGA)和程序全局区(Program Global Ar ...
- MySql/Oracle树形结构查询
Oracle树形结构递归查询 在Oracle中,对于树形查询可以使用start with ... connect by select * from treeTable start with id='1 ...
- oracle表结构和表内容差异比对【原】
oracle表结构和表内容差异比对 oracle中有三种集合操作,他们会把左边和右边的select 结果集进行集合操作. union 并集 intersect 交集 minus 差集 假设有如下两张表 ...
- Oracle 服务器结构
[学习目标] 作为一个数据库管理员(DBA),经常会遇到各种没有见过的问题.除了宝贵的经验外, 通过理论基础去对问题进行判断.解决是至关重要的.因此,Oracle 服务器的结构和组成 是学习Oracl ...
- oracle 内存结构具体解释
Oracle 内存结构 与 Oracle 实例关联的基本内存结构包含: 系统全局区 (SGA):由全部server和后台进程共享.SGA 中存储的数据演示样例包含快速缓存的数据块和共享 SQL 区域. ...
- Oracle 导出表结构
Oracle导出表结构 select A.Table_Name 表名 , -- A.column_name 字段名 A.column_name 字段名, A.data_type 数据类型, A.dat ...
- Oracle 表结构、索引以及分区信息查询
Oracle 表结构.索引以及分区信息查询 /* 获取表:*/ select table_name from user_tables; --当前用户的表 select table_name from ...
随机推荐
- Visual Assist X 10.8.2052的Crack破解补丁. 2014.11.05 (General release.)
VA小组立即更新频率似有些放缓几乎,版本号都是2个月才更新一次,而这次的更新幅度也还是比較大的,新增了6个特性,而且修正和20余处大大小小的问题,而且也是正式发行版,推荐更新. 对于破解补丁还是老规矩 ...
- Linux段管理,BSS段,data段,.rodata段,text段
近期在解决一个编译问题时,一直在考虑一个问题,那就是Linux下可执行程序执行时内存是什么状态,是依照什么方式分配内存并执行的.查看了一下资料.就此总结一下,众所周知.linux下内存管理是通过虚存管 ...
- CentOS 7单用户模式修改root密码
CentOS 7的单用户模式和6.5稍有不同 把ro改成 "rw init=/sysroot/bin/sh". 完成之后按 "Ctrl+x" chroot /s ...
- POJ 2151 Check the difficulty of problems (动态规划-可能DP)
Check the difficulty of problems Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 4522 ...
- HTML5 CSS3专题 纯CSS打造相冊效果
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/30993277 今天偶然发现电脑里面还有这种一个样例.感觉效果还不错,不记得啥时候 ...
- Bootstrap之表格
基本实例 为随意<table>标签加入.table类能够为其赋予主要的样式-少量的内补(padding)和水平方向的分隔线. <table class="table&quo ...
- POJ 1184 聪明的打字员
简直难到没朋友. 双向bfs + 剪枝. 剪枝策略: 对于2--5位置上的数,仅仅有当光标在相应位置时通过swap ,up.down来改变.那么当当前位置没有达到目标状态时,left和right无意义 ...
- mongodb常用操作语句
mongodb常用操作语句 A:创建数据表 db.createCollection(name, {capped: <Boolean>, autoIndexId: <Boolean&g ...
- HGE引擎 - 绘制,声音,碰撞处理
原帖地址:http://blog.csdn.net/i_dovelemon/article/details/8818037 另外,年代久远,该引擎官网早已上不去了!!! 1.库的安装和下载 从官网上h ...
- WEB-INF文件夹的位置和作用
WEB-INF简介 TomCat 服务器下的WEB-INF文件夹是一个非常安全的文件,在页面中不能直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问. WEB-INF文件 ...