网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>数据库技术>>Oracle技术>>Oracle开发>查看文档  
  由浅入深讲解oracle数据库进程的相关概念 (1)     
  文章作者:未知  文章来源:赛迪网技术社区  
  查看:77次  录入:管理员--2008-04-23  
 

【赛迪网-it技术报道】oracle数据库进程概述:

database buffer cache主要用于存储数据文件中的数据块

数据库高速缓存的数据块是高速缓存与数据文件进行信息交换的基本单位。在oracle数据库8i以前,数据块大小只有一种,而oracle数据库9i以后支持2k,4k,8kb,16kb及32kb五种。

用命令sql>show parameter db可以显示当前数据库的buffer cache

数据库缓存和特点如下:

<1>.根据最近最少使用lru.

<2>. 由db_block_size来指定大小.

<3>.oracle使用时是以块大小为单位进行数据存取的.

还包含以下一些独立的子缓存:

<1>.db_cache_size.

<2>.db_keep_cache_size.

<3>.db_recycle_cache_size.

注:可以用alter system set db_cache_advice=on;设置成根据系统的建议来指定大小。

redo log file主要是用于重做日志

用命令sql>show parameter log_buffer。

sql>alter system set log_buffer_size=60m。

用来显示或修改重做日志缓冲区的一些信息。

命令sql>achive log list 可以查看数据库当前的归档模式。

large pool:

与java pool一样,都是作为系统可选的内存结构,由sga来配置。

java pool:

当安装或使用java时才用到.

oracle内存进程包括两个,一个是sga,一个是pga.

(1).sga在oracle实例启动时分配,是oracle实例的一个基本组件.

(2).pga是在当服务器进程启动时分配的.

进程结构:

<1>.user process.用于用户与oracle server交互的进程.

user process必须与oracle建立连接后才可使用,不可与oracle server交互.

<2>.server process.

server process在用户与服务之间建立连接后,为执行用户命令的一个进程.

<3>.background process.

后台进程:database writer (dbwn)用来把data buffer cache中的脏数据写回到数据库中.

(注:脏数据是被改变的数据.)

在以下情况下它会写数据库:

<1>.在发生checkpoint同步.

<2>.脏数据达到阀值.

<3>.database buffer cache 自由空间太少了.

<4>.timeout (3秒钟.)

<5>.rac ping request.

<6>.tablespace offline.

<7>.tablespace readonly.

<8>.table drop or table truncate (表数据清空或表结构删除).

<9>.tablespace begin backup.

由sga (包含database buffer cache,background process)-----> [ dbwn ]----> {data files,

control files, redo log file} ---->由此过程改变数据库中的数据.

log writer (lgwr) 日志写进程

在oracle环境中

<1>.当commit的时候.

<2>.当三分之一空间满时.

<3>.当日志有1mb需要重做时.

<4>.每3秒

<5>.before dbwn writes.(写数据前先写日志).

redo log buffer----->lgwr--->dbwn

|--------------------------------------> redo log files

system monitor (smon)系统监控进程

主要任务:

(1).启动过程(假定database重启时)如果需要recovery,则此进程会负责打开数据库,及回滚没有

提交的事务;以及rolls forward changes in the redo logs..这些统称为:instance recovery.

(2).对每3秒就对系统自由空间的整理.(coalesces free space ever 3 sec.)

(3).清空临时段空间(deallocates temporary segments).

这个过程也是在系统启动过程中完成的.

process monitor (pmon) 进程监控进程

主要用于回滚异常终止的或被用户强制终止的事务.

<1>.rolling back the transaction.

<2>.releasing locks.释放锁.

<3>.releasing other resources.

<4>.restarts dead dispatchers.重启死掉的调度器.(在共享服务器中用).

pmon (:include in sga)----------------------->pga

checkpoint (ckpt) 检查点进程

用来在数据库里实现同步,实现之前会强制将脏数据从内在里写到物理文件里.

<1>.会启动dbwn来写脏数据(signalling dbwn at ckpt.)

<2>.完后会更新datafile的header和控制文件的header.而header中有同步所需要的信息,即

checkpoint的信息.

<3>.在oracle中,正常情况下,所有文件必须同期性地同步;靠checkpoint来完成.

ckpt(作为后台进程包含在实例中)------------------database 
(data files,control files,redo log files.)
                           |   |______dbwn                         
                           |________lgwr

archive process (arcn) :归档进程(可选进程),当设置归档模式后,可用来自动备份在线日志,(归档日志是重做日志的备份.)

<1>.automatically archives online redo logs when archiverlog mode is set.

(设置归档模式后,将自动备份在线日志)

在处理sql语句时,注意以下过程:

<1>.用以下进程连接到实例.

------------------用户进程(user process).

------------------服务器进程(server process).

<2>.oracle服务器进程组件的使用依赖于sql语句的种类.

[1].查询语句会返回行.

[2].dml语句会记录这种改变.

[3].commit保证了事务的recovery.

<3>.并不是所有的sql语句中所有的后台进程都会参与.

结论:

oracle server. oracle服务器进程包含一些文件,进程和内存,在执行一条sql语句时,并非所有这些都会用上,有些进程用于提高数据库的性能;一些用于当发生软件或硬件异常时恢复数据库;或应用于完成其他一些维护数据库的任务.oracle服务器包含oracle实例和oracle数据库.

oracle instance: oracle实例是用于联系后台进程和内在之间的活动,对数据库进行数据存取前必须先启动实例,每当实例启动时,sga就被分配给它并启动了一些后台进程.后台进程执行10秒操作并监控有些进程以提供更好的性能.和可靠性.

oracle database: 数据库包含了系统文件,也称数据库文件,其提供了用以存储数据库信息的实际物理存储区域,用数据文件保证了数据一致性,并在当实例发生失败时恢复数据库。

 
 
上一篇: 如何获取指定表中指定字段内的可用编号    下一篇: 拨云见日 正确认识password file的作用 (1)
  相关文档
Oracle中利用哈希函数提高查询速度 04-11
oracle数据库等待事件说明及处理方法 (1) 04-16
如何使用ref cursor处理oracle的结果集 03-26
实例解析:数据库应用程序利用外部文件 09-01
教你快速理解oracle归档模式的命令及参数 11-15
轻松解决oracle xdb的8080端口冲突问题 03-03
启动或关闭数据库的归档(archivelog)模式 08-06
入门级的oracle数据库备份与数据库还原 09-24
深入分析"oracle"并行处理的技术原理 (1) 02-01
oracle数据库维护常用sql语句集合(2) 07-02
在aix平台上监视cpu并实时获得sql语句 03-06
深入探讨如何解决数据库中的死锁问题 04-08
解读oracle11g在商业银行的三大应用亮点 10-14
机器异常关闭重起后出现ora-19809错误 04-09
细化解析如何共享Oracle数据库身份空间 09-01
oracle数据库的热备份与完整恢复测试 (1) 04-07
讲解oracle数据库的全文索引设置步骤 (1) 03-27
如何判断一个字符串的内容是否是数值 04-03
oracle-decode()函数和case语句有哪些不同 04-15
在Oracle 10gR2中设定指定的恢复点实现轻松闪回 08-05
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息