欢迎来到天天文库
浏览记录
ID:50169244
大小:445.50 KB
页数:81页
时间:2020-03-04
《试谈ORACLE的工作机制.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、ORACLE的工作机制体系结构实例Oracle运行的时候,在内存中会要开辟一个区间,这个区间主要是用于从磁盘(数据文件)中读出数据后的一个在内存的缓存和处理。而处理这些数据的操作,需要有一些系统的后台进程,这些进行在Oracle数据库启动的时候,就开始运行,一直在响应前台的操作。实际上,这一个区间(SGA)和这些后台进程合在一起,就称为实例。实例是包括SGA区和后台进程两个部分的。数据库启动执行若干动作,经历三个阶段,分别是未加载、加载和打开。1、未加载(nomount)可以把数据库启动的这一阶段看作是Oracle
2、实例的启动。这种方式启动下可执行:重建控制文件、重建数据库。这一启动命令:•读取数据库参数文件。•启动所需的后台进程并按参数文件中的定义分配内存。•将进展情况写入告警日志文件中。2、加载(mount)在实例启动加载阶段,数据库参数文件中指定的控制文件被读取。记住控制文件将数据库各部分联系在一起。实例从控制文件中找到下列信息,然后将进展写入告警日志文件。这种方式启动下可执行:数据库日志归档、数据库恢复、重新命名一些数据库文件:•所有数据文件和重做日志文件的名称和位置。•数据库名。•最新系统更改号(SCN)。3、打开(
3、open)包含在数据库中的每个联机数据文件在数据库打开前必须被同步。在数据库打开阶段:•所有联机数据文件的头与控制文件信息相比较。•所有文件同步后,数据库打开。当数据库关闭时,取决于它的关闭方式执行不同的任务:•正常(normal)在所有的用户离线后发生的正常关闭。•事务(transactional)事务关闭就是当所有的用户执行完当前的事务后,将用户从数据库上清除。•立即(immediate)立即关闭就是从数据库清除所有当前用户之后,回退所有未完成的操作。•异常(abort)异常关闭没有给数据库任何整理的机会。这种
4、方式关闭后需要实行崩溃恢复。实例是数据管理的核心—它做所有的工作,而数据库存储所有的数据。其他启动方式:•startuprestrict约束方式启动这种方式能够启动数据库,但只允许具有一定特权的用户访问非特权用户访问时,会出现以下提示:ERROR:ORA-01035:ORACLE只允许具有RESTRICTEDSESSION权限的用户使用 •startupforce强制启动方式当不能关闭数据库时,可以用startupforce来完成数据库的关闭先关闭数据库,再执行正常启动数据库命令 •startuppfile=参
5、数文件名带初始化参数文件的启动方式先读取参数文件,再按参数文件中的设置启动数据库•startupEXCLUSIVE***************一个Delete操作的流程:1、检查语法、语义(V$ROWCACHE:datadictionarycache),计算HASHVALUE,在session的UGA中进行匹配(session_cached_cursors),如果UGA中没有,在librarychache中匹配(librarychachelocklatch保护librarychachelock对地址堆的访问,而后
6、librarychachepinlatch保护librarycachepin对librarycache中sql相关信息的访问)2、根据执行计划读取数据:cachebufferchainlatch保护能定位到bufferheader并pin住该块(如果没有bufferheader,就pin住某个空块(没有空块就产生freebufferwaits),并到数据文件中读取)。如果此时有某个进程想访问该块,将产生bufferbusywaits。3、在redologbuffer中记录delete操作的细节。(包括回滚段前后镜像
7、、数据块前后镜像)。4、在相应回滚段段头的事务表中创建一个undo条目,把将要删除的记录创建前镜像,存放到UndoBlock中。5、在BufferCache中的相应数据块上删除记录,并且标记相应的数据块为Dirty。提交(COMMIT)1.Oracle产生一个SCN2.在回滚段事务表中标记该事务状态为commited3.LGWRFlushLogBuffer到日志文件3.如果此时数据块仍然在BufferCache中,那么SCN将被记录到BlockHeader上,这被称为快速提交(fastcommit)4.如果dirt
8、yblock已经被写回到磁盘,那么下一个访问这个block的进程将会自回滚段中获取该事务的状态,确认该事务被提交。然后这个进程获得提交SCN并写回到BlockHeader上。这被称为延迟块清除(delayedblockcleanout)。内存SGA(系统全局区、共享全局区)、PGA(进程全局区、私有全局区)内存分配原则:10%冗余内存,OSSYS进程(约1.
此文档下载收益归作者所有