- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 Oracle Database的体系结构
第*页 DBWR进程的功能是将数据库高速缓存中的脏缓冲区内容写入数据文件中的数据块,故称为数据库写进程。当缓冲区中的缓冲区被修改,标志为“脏缓冲区”,DBWR的主要任务是在一定条件下将“脏缓冲区”的内容写入数据文件,使缓冲区保持“干净”。 用户执行了数据操纵命令后,被修改的缓冲区并不是被立即写入数据文件,而是保留一段时间,即使用户执行了COMMIT操作。DBWR进程开始工作时,它将把一批脏缓冲区的内容一并写入数据文件。这样有两个优点,一是减少了写磁盘的次数,多次写合并为一次写;二是减少了读磁盘的次数,因为如果另外一个用户正好也要对同样的数据进行处理,便可直接在脏缓冲区中进行。 Oracle采用LRU算法(最近最少使用算法)保持内存中的数据块是最近使用的,使 I/O最小。用户访问数据库时,服务器进程如果发现需要的数据不在数据库高速缓存中,它将把数据从数据文件读到空闲缓冲区中,在此之前,服务器进程要在LRU队列中搜索合适数量的空闲缓冲区,在搜索过程中如果遇到一个脏缓冲区,服务器进程将把它放到脏队列中,然后继续搜索。如果遇到忙缓冲区,将忽略它。DBWR进程工作时,将扫描脏队列,把那些位于脏队列中,并且最近很少被访问的脏缓冲区写入数据文件。而那些虽位于脏队列,但最近仍被频繁访问的脏缓冲区或还没有被记录在脏队列中的脏缓冲区,仍然保持“脏”状态,直到被写入数据文件。 第*页 DBWR进程在以下几种情况执行写操作: 固定的时间间隔(如每隔3秒); 当数据库服务器发出检查点时; 当脏队列中的缓冲区数目达到一定值时,也就是说在数据库高速缓存中不能有太多的脏缓冲区; 当用户执行了某操作,需要在数据库高速缓存中搜索一定数量的空闲缓冲区时,空闲缓冲区的数量不能满足要求,这时DBWR进程将把脏队列中的一部分脏缓冲区写入数据文件,这部分脏缓冲区将重新成为空闲缓冲区。 在一个实例中可以启动多个DBRW进程,在默认情况下只启动一个。DBWR进程并不是越多越好。参数DB_WRITERS控制DBWR进程个数。 3.4.2 LGWR进程 第*页 LGWR进程的功能是将重做日志缓冲区中的重做日志未写入重做日志文件,这是Oracle保证数据库一致性的重要手段。LGWR进程是负责管理日志缓冲区的一个Oracle后台进程。LGWR进程并不是随时都在运行的,它被启动执行的时机有以下几种情况: 固定的时间间隔(如每隔3秒); 当用户进程提交一事务时写入一个提交记录; 当日志缓冲区已写满1/3时; DBRW将脏缓冲区写入数据文件之前。 由此可见,LGWR进程在DBRW进程写数据文件之前先写了日志文件,遵守了数据库“先写日志文件”的原则。 日志缓冲区是一段可循环使用的存储区域。当LGWR将日志缓冲区的日志项写入日志文件后,服务器进程可将新的日志项写入到该日志缓冲区。LGWR通常写得很快,所以在任何情况下日志缓冲区中始终有空间可写入新的日志项。 第*页 SCN是指系统改变号,全称System Change Number。Oracle利用重做日志保证数据库的一致性,引入了用于记录数据库变化的一个数字SCN,它是一个正整数。当用户提交一个事务,发出COMMIT语句时,一个COMMIT记录立即放入日志缓冲区,当相应的数据缓冲区改变被延迟,直到在更改有效时才将它们写入数据文件。一个事务执行之后,便获得一个新的SCN,SCN被同时记录在数据文件、控制文件和重做日志文件中,如果这三个文件的SCN完全一致,数据库就达到了一个完全一致的状态。每个SCN在整个数据库中都是唯一的,永远递增的和不可重复的。 3.4.3 CKPT检查点进程 CKPT进程的功能是发出检查点。检查点是一种数据库事件,当数据库服务器发生检查点时,SCN将被写入数据文件和控制文件,而且数据库高速缓存中的脏缓冲区将被DBWR进程写入数据文件,这时数据库达到完全一致的状态。 CKPT进程主要有两个工作:一是通知DBWR进程,将数据库高速缓存中所有脏缓冲区写入数据文件;二是发出检查点BWN和LGWR之间始终有一个可以预见的差距。与早先的完全检查点机制相比,增量检查点有助于获得更平稳的性能,恢复时间也更易于预测。 第*页 3.4.4 SMON系统监控进程 SMON是系统监控进程,主要功能是监控数据库服务器的运行状况,并执行一些系统清理及恢复工作。这些工作主要包括: 清理临时空间以及临时段; 在字典管理表空间DMT中接合空闲的并且是相互邻近的存储空间; 在数据库服务器重新启动时,执行实例恢复,并对数据库的存储空间进行管理。 当实
文档评论(0)