Oracle原理学习笔记

上传人:人*** 文档编号:561837672 上传时间:2022-10-11 格式:DOCX 页数:185 大小:354.93KB
返回 下载 相关 举报
Oracle原理学习笔记_第1页
第1页 / 共185页
Oracle原理学习笔记_第2页
第2页 / 共185页
Oracle原理学习笔记_第3页
第3页 / 共185页
Oracle原理学习笔记_第4页
第4页 / 共185页
Oracle原理学习笔记_第5页
第5页 / 共185页
点击查看更多>>
资源描述

《Oracle原理学习笔记》由会员分享,可在线阅读,更多相关《Oracle原理学习笔记(185页珍藏版)》请在金锄头文库上搜索。

1、ORACLE的工作机制体系结构实例Oracle 运行的时候候,在内存中中会要开辟一一个区间,这这个区间主要要是用于从磁磁盘(数据文文件)中读出出数据后的一一个在内存的的缓存和处理理。而处理这这些数据的操操作,需要有有一些系统的的后台进程,这这些进行在OOraclee数据库启动动的时候,就就开始运行,一一直在响应前前台的操作。实实际上,这一一个区间(SSGA)和这这些后台进程程合在一起,就就称为 实例例。实例是包包括SGA区区和后台进程程两个部分的的。 数据库启动执行行若干动作,经经历三个阶段段,分别是未未加载、加载载和打开。1、未加载(nnomounnt) 可以把数据据库启动的这这一阶段看作作

2、是Oraccle实例的的启动。这种种方式启动下下可执行:重建控控制文件、重重建数据库。这这一启动命令令: 读取数据库库参数文件。 启动所需的的后台进程并并按参数文件件中的定义分分配内存。 将进展情况况写入告警日日志文件中。2、加载(moount) 在实例启动动加载阶段,数数据库参数文文件中指定的的控制文件被被读取。记住住控制文件将将数据库各部部分联系在一一起。实例从从控制文件中中找到下列信信息,然后将将进展写入告告警日志文件件。这种方式式启动下可执执行:数据库库日志归档、数数据库恢复、重重新命名一些些数据库文件件: 所有数据文文件和重做日日志文件的名名称和位置。 数据库名。 最新系统更更改号(

3、S C N)。3、打开(oppen) 包含在数据据库中的每个个联机数据文文件在数据库库打开前必须须被同步。在在数据库打开开阶段: 所有联机数数据文件的头头与控制文件件信息相比较较。 所有文件同同步后,数据据库打开。当数据库关闭时时,取决于它它的关闭方式式执行不同的的任务:正常(norrmal)在在所有的用户户离线后发生生的正常关闭闭。事务(traansacttionall)事务关闭闭就是当所有有的用户执行行完当前的事事务后,将用用户从数据库库上清除。立即(immmediatte)立即关关闭就是从数数据库清除所所有当前用户户之后,回退退所有未完成成的操作。异常(aboort)异常常关闭没有给给数

4、据库任何何整理的机会会。这种方式式关闭后需要要实行崩溃恢恢复。实例是数据管理理的核心它做所有的的工作,而数数据库存储所所有的数据。其他启动方式:startuup resstrictt 约束方式启动这种方式能够启启动数据库,但但只允许具有有一定特权的的用户访问 非特权用户访问问时,会出现现以下提示: ERROR: ORA-001035: ORACCLE 只允允许具有 RRESTRIICTED SESSIION 权限限的用户使用用 startuup forrce 强制启动方式 当不能关闭数据据库时,可以以用starrtup fforce来来完成数据库库的关闭 先关闭数据库,再再执行正常启启动数据库

5、命命令 startuup pfiile=参数数文件名 带初始化参数文文件的启动方方式 先读取参数文件件,再按参数数文件中的设设置启动数据据库 startuup EXCCLUSIVVE*一个Delette操作的流流程:1、 检查语法、语义义(V$ROWWCACHEE :data dictiionaryy cachhe),计算HASSH VALLUE,在ssessioon的UGA中进行匹匹配(sesssion_cached_ccursorrs),如果UGA中没有有,在libbrary chachhe 中匹配配(librrary cchachee lockk latcch 保护 libraary c

6、hhache lock 对对地址堆的访访问,而后 libraary chhache pin llatch 保护 liibraryy cachhe pinn 对librrary ccache中中sql相关关信息的访问问)2、 根据执行计划读读取数据:ccache buffeer chaain laatch 保保护能定位到到buffeer heaader 并并 pin 住该该块(如果没有bbufferr headder,就 pin 住某个空块块(没有空块块就产生 ffree bbufferr waitts),并到数据据文件中读取取)。如果此此时有某个进进程想访问该该块,将产生生 bufffer b

7、uusy waaits 。3、 在redo llog buffeer中记录ddeletee操作的细节节。(包括回滚滚段前后镜像像、数据块前后镜镜像)。4、 在相应回滚段段段头的事务表表中创建一个个undo条条目,把将要删除除的记录创建建前镜像,存放放到Undoo Blockk中。5、 在Bufferr Cachhe中的相应应数据块上删删除记录,并并且标记相应应的数据块为为Dirtyy。提交(COMMMIT)1.Oraclle产生一个个SCN2.在回滚段事事务表中标记记该事务状态态为commmited33.LGWRR Flussh Logg Bufffer到日志志文件3.如如果此时数据据块仍然在

8、BBufferr Cachhe中,那么么SCN将被被记录到Bllock HHeaderr上,这被称称为快速提交交(fastt commmit)4.如果dirrty blockk已经被写回回到磁盘,那那么下一个访访问这个bllock的进进程将会自回回滚段中获取取该事务的状状态,确认该该事务被提交交。然后这个个进程获得提提交SCN并并写回到Bllock Headeer上。这被被称为延迟块块清除(deelayedd blocck cleeanoutt)。内存SGA(系统全全局区、共享享全局区)、PGA(进进程全局区、私私有全局区)内存分配原则:10%冗余内存存,OS SSYS进程(约约1.6G),O

9、S BBUFFERR(约0.8GG),数据库连连接消耗内存(每个连连接约58M),PGA(每每个连接约22M,V$PGAA_TARGGET_ADDVICE),SGASGAv$sgasttat 注意 showw paraameterr sga_max_ssizeOracle的的内存:l 软件代码区l 系统全局区l 进程全局区:包包含单个进程程的数据和控控制信息l 排序区System Global AreaFixed SizeVariable SizeDatabase BuffersRedo buffersLarge poolShared PoolLibrary cacheData diction

10、ary cacheUser Global Area共享SQL区专用SQL区db_cache_sizedb_keep_cache_sizedb_recycle_cache_sizedb_nk_cache_size永久性内存结构Java poolSGA中的Thhe fixxed arrea包含了了数千个原子子变量,以及及如指向SGGA中其它区区域的poiinterss(指针)等等小的数据结结构.通过对对fixedd tablle内表X$KSMFSSV查询(如如下)可以获获得这些变量量的名字,变变量类型,大大小和在内存存中的地址.the varriablee areaa是由larrge poool和

11、shhared pool组组成Shared pool中中永久性的内内存包含各种种数据结构如:the bbufferr headders, proceesses, sesssions, trannsactiion arrrays, the enqueeue reesourcces , lockss, thee onliine roollbacck seggment arrayys, vaariouss arraays foor reccordinng staatistiics.其中中大部分的SSIZE是依依靠初始参数数的设置来确确定的.这些些初始参数只只能在实例被被关闭的状态态下才能够进进行修改

12、.所所以这里说的的永久性是针针对实例打开开状态下的生生存期而言.The varriablee areaa的在SGAA中的SIZZES就等于于LARGEE_POOLL_SIZEE,SHARRED_POOOL_SIIZE和永久久性的内存aarrayss的SIZEE三者相加.永久性内存arrrays的的SIZE=the vvariabble arrea - (LARGGE_POOOL_SIZZE+SHAARED_PPOOL_SSIZE).数据缓冲区命中中率v$syssstat这里命中率的的计算应该是是令 x = physiical rreads direcct + pphysiccal reeads

13、 ddirectt (lobb)命中率 =1100 - ( phyysicall readds - xx) / (consiistentt getss + dbb blocck getts - xx)*1000通常如果发现现命中率低于于90%,则则应该调整应应用可可以考考虑是否增大大数据缓冲区区共享池的命中率率SQL sselectt sum(pinhiits-reeloadss)/summ(pinss)*1000 hitt radiio frrom v$libraarycacche;hit raadio-99.8099291假如共享池的的命中率低于于95%,就就要考虑调整整应用(通常常是没使

14、用bbind vvar )或或者增加内存存关于排序部分SQL sselectt namee,valuue froom v$ssysstaat wheere naame liike %sort%;NAME VVALUE- -sorts (memoory) 667935sorts (diskk) 1sorts (rowss) 70770假如我们发现现sortss (dissk)/ (sortss (memmory)+ sortts (diisk)的的比例过高,则则通常意味着着sort_area_size 部分内存较较小,可考虑虑调整相应的的参数。关于log_bbufferrSQL sselectt namee,valuue froom v$ssysstaat2 wherre namme in(redoo entrries,redoo bufffer alllocattion rretriees);NAME VVALUE- -redo eentriees 23225719redo bbufferr alloocatioon rettries 10假如 reddo

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 市场营销

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号