设为首页 加入收藏

TOP

oracle概念和术语(三)
2014-11-24 02:33:12 来源: 作者: 【 】 浏览:11
Tags:oracle 概念 术语
ent)、区间(extent)及块的关系(seg_ext_block)
§2.6 Oracle数据库进程
一般情况,当数据库启动完成后(Instance 启动成功)就至少有六个后台进程在活动,这些进程根据数据库的需要而分工不同。他们分别是:
1)数据库写入器(DBWR)
数据库写入器(Database Writer)的任务是将修改后的(在内存)数据块写回数据库文件中。在某些操作系统中,Oracle可以有两个BDWR进程。
2)校验点(CKPT)
是一个可选进程。在系统运行中当出现查找数据请求时,系统从数据库中找出这些数据并存入内存区,这样用户就可以对这些内存区数据进行修改等。当需要对被修改的数据写回数据文件时就产生重做日志的交替写(Switch),这时就出现校验点。系统要把内存中灰数据(修改过)块中的信息写回磁盘的数据文件中,此外系统还将重做日志通知控制文件。DBA可以改变参数文件中CHECKPOINT_PROCESS TRUE来使能( 使有效或无效)该进程。
3)日志写入器(LGWR)
用于将SGA区中的日志信息写入日志文件的进程。一般是用户所作的修改值先记入日志文件。等到一定时才真正将修改结果写回数据文件。
4)系统监控器(SMON)
系统监控器(System monitor)是在数据库系统启动时执行恢复工作的强制性进程。比如在并行服务器模式下(两台服务器共用一磁盘组),SMON可以恢复另一台处于失败的数据库。使系统切换到另一台正常的服务器上。
5)进程监控器(PMON)
进程监控器(Process Monitor)用于终止那些失败的用户,释放该用户所占用的资源等。
6)归档器(ARCH)
可选进程,当数据库系统处于归档(ARCHIVELOG)模式时使用。
7)锁(LCKn)
可选进程,当在并行服务器模式可出现多个锁定进程以利于数据库通信。
恢复器(RDCO)
分布式数据库(不同地点有不同机器和不同的Oracle系统)模式下使用的可选进程,用于数据不一致时作的恢复工作。在RECO解决恢复前,所作的修改数据的标志均标为“可疑”。
9)调度(Dnnn)
可选进程,在多线程下使用,即对每个在用(D000,...,Dnnn)的通信协议至少创建一个调度进程,每个调度进程负责从所联接的用户进程到可用服务器进程的路由请求。把响应返回给合适的用户进程。
10)快照进程(SNPn)
快照进程处理数据库快照的自动刷新,并通过 DBMS_JOB 包运行预定的数据库过程. INITsid.ORA 参数 JOB_QUEUE_PROCESS 设置快照进程数, 参数 JOB_QUEUE_INTERVAL 决定快照进程在被唤醒以处理挂起的作业或事务之前休眠的秒数。
11)并行查询进程(Pnnn)
可根据数据库的活动并行查询选项的设置,ORACLE服务器起动或停止查询进程.这些进程涉及并行索引的创建,表的创建及查询。 启动的数量与参数 PARALLEL_MIN_SERVERS指定的数量相同,不能超出该参数指定的值。
§2.7 Oracle内存结构
前面提到过Oracle的数据库实例是一组后台进程和内存结构组成。而内存结构是包括:
l 系统全局区(System Global Area)
l 程序全局区(Program Global Area)
§2.7.1 系统全局区
Oracle 系统用于存放系统信息的一块存储区域,用户进程和Oracle后台进程都可以使用SGA。在SGA中含有许多组件(不同的部分)。
l 数据高速缓冲区(Data Buffer Cache)
在数据高速缓冲区中存放着Oracle系统最近使用过的数据块(即用户的高速缓冲区),当把数据写入数据库时,它以数据块为单位进行读写,当数据高速缓冲区填满时,则系统自动去掉一些不常被用访问的数据。如果用户要查的数据不在数据高速缓冲区时,Oracle自动从磁盘中去读取。数据高速缓冲区包括三个类型的区:
1) 脏的区(Dirty Buffers):包含有已经改变过并需要写回数据文件的数据块。
2) 自由区(Free Buffers):没有包含任何数据并可以再写入的区,Oracle可以从数据文件读数据块该区。
3) 保留区(Pinned Buffers):此区包含有正在处理的或者明确保留用作将来用的区。
Oracle8i以后将缓冲池分为三个区(使用多个缓冲池特性时):
1) KEEP 缓冲池(KEEP buffer pool):在内存中保留数据块,它们不会被从内存中挤掉;
2) RECYCLE缓冲池从不需要的内存将数据移掉;
3) DEFAULT缓冲池包含有被分配的块。
l 重做日志缓冲区(Rado Log Buffer)
任何事务(Transaction)在记录到重做日志(恢复工作需要使用联机重做日志)之前都必须首先放到重做日志缓冲区(Redo Log Buffer)中。然后由日志写入进程(LGWR)定期将此缓冲区的内容写入重做日志中。
l 共享池(Shared Pool)
共享池是SGA保留的区,用于存储如SQL、PL/SQL存储过程及包、数据字典、锁、字符集信息、安全属性等。共享池包含有:
1) 库高速缓存(Library Cache);
2) 字典高速缓冲区(Dictionary Cache )。
l 库高速缓存(Library Cache)
该区包含有:
1) 共享SQL区(Shared Pool Area);
2) 私有SQL区(Private SQL Area);
3) PL/SQL存储过程及包(PL/SQL Procedure and Package);
4) 控制结构(Control Structure)。
也就是说该区存放有经过语法分析并且正确的SQL语句,并随时都准备被执行。
l 字典高速缓冲区(Data Dictionary Cache)
用于存放Oracle系统管理自身需要的所有信息,这些信息是登录到Oracle的用户名,这些用户有那些数据库对象以及这些数据库对象的位置等。
SVRMGR> Show SGA
Total System Global Area 35544188 bytes
Fixed Size 22208 bytes
Variable Size 3376332 bytes
Database Buffer 122880 bytes
Redo Buffer 32768 bytes
后四项相加等于前一项。
也可以使用 select * from v$SGA; 查询当前实例的SGA。
l 大的池(Large Pool)
在SGA中大池是可选的缓冲区。它可以根据需要有管理权进行配置。它可以提供一个大的区以供象数据库的备份与恢复等操作。
2)程序全局区(PGA)
PGA是Oracle使用的内存区域,该区同一时间只能被一单个进程存放数据和控制,用于存放会话变量及内部数组等。
SGA
Oracle内存结构(SGA图)
§2.7.2 程序全局区
PGA是Oracle使用的内存区域,该区同一时间只能被一单个进程存放数据和控制,用于存放会话变量及内部数组等。
§2.8 Oracle实例
一个Oracle 实例(Instance) 是由SGA,后台进程以及数据文件组成,每个数据库有自己的SGA和独立的Oracle进程集。如图所示:
Oracle 实例和后台进程(instance图)
在分布情况下,为使不同的数据库系统的名字不致混淆,Oracle使用了一个SID(System Identifer)来标识每个Oracle Server的名字,在UNIX环境中以变量Oracle_Sid来区分。
§2.9 多线程服务
首页 上一页 1 2 3 4 下一页 尾页 3/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇ORACLE游标概念讲解 下一篇PL/SQL脚本语言赋值语句语法table..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: