《Oracle数据库日常管理方案.docx》由会员分享,可在线阅读,更多相关《Oracle数据库日常管理方案.docx(75页珍藏版)》请在优知文库上搜索。
1、1. Oracle数据库平常管理方案OraCIe数据库的运维解决,更重要的是做好数据库的管理工作,做好数据库的检查与备份工作,然后需要熟悉相关的逻辑结构故障解决方法、物理结构故障解决方法,应对数据库损坏的情况,在数据库发生损坏而无法修复的时候,能运用数据库管理工作中所做的数据备份及时恢复系统、数据,恢复正常生产工作。1.1 .数据库管理Oracle数据库的管理重要是要做好平常的检查管理工作,并检查好数据库的备份情况,在发生紧急情况时能及时不仅切换到备用系统上进行工作,并要能在数据库数据出现异常的时候,能及时恢复数据。因此,做好平常的检查与管理工作特别重要,重要工作涉及: 数据库的性能监控检查
2、数据库状态巡检检查 数据库备份情况与可恢复性检查1.1.1.数据库性能监控管理通过对数据库性能监控的管理工作,可以有效的防范风险事件的发生,并能从长时间的运营数据中,总结出数据库性能的状态,为系统性能优化、隐患事件排查提供更好的依据。1.1.1.1.查找前十条性能差的SqlSE1.ECT*FROM(selectPARSlNG_USERD,EXECUTIONS,SORTS,COMMANDJYPE,DISK_READS,sqI_textFROMvSsqlareaorderBYdisk_readsDESC)whereROWNUM8ANDa.event=enqueueORDERBYusername;1
3、.1.13.如何拟定哪个表空间读写频繁selectname,phyrds,phywrts,readtim,writetimfromv$filestata,v$dbfilebwherea.file#=b.file#orderbyreadtimdesc;SE1.ECTs.sid,kglpnmodMode”,kglpnreqReq”,SPID“OSProcessFROMv$session_waitw,x$kglpnp,v$sessionS,vSprocessoWHEREp.kglpnuse=s.saddrANDkglpnhdl=w.plrawandw.eventliket%librarycachep
4、in%,ands.paddr=o.addr;1.1.1.4.查询全表扫描的表SQ1.colnamefora30SQ1.selectname,valuefromv$SySSUnwherenamein(tablescans(shorttables),tablescans(longtables);NAMEVA1.UE18602tablescans(shorttables)111tablescans(longtables)SQ1.selectcount(target),targetfromv$SeSSion_1OngOPSwhereopname=TableScangroupbytarget;COUNT
5、(TARGET)TARGET84ECM,APP1.RPT1.OG159ECM_DCTM_OTHR.DMR_CONTENT_S9ECM_DCTM_OTHR.DM_SYSOBJECT_R2ECM_DCTM_OTHR.DM_SYSOBJECT_S1.1.1.5. 查出全表扫描的表Selectsql_textfromv$sqltextt,v$sql_planpWheret.hash_value=p.hash_valueAndp.opcration=,TAB1.EACCESS,Andp.option=TU1.1.,Orderbyp.hash-value,t.piece;1.1.1.6. 查找FastFu
6、llindex扫描的SqI语句可以这样:Selectsql_textfromv$sqltextt,v$Sq1.PIanpWheret.hash_value=p.hash_valueAndp.opcration=INDEXAndp.option=TU1.1.SCAN,Orderbyp.hash-value,t.piece;1.1.1.7. 查询硬语法分析的次数SQ1.selectname,valuefromv$SySStalwherenamelikeparsecount%;NAMEVA1.UEparsecount(total)16103parsecount(hard)343parsecount(
7、failures)5该项显示buffercache大小是否合适。公式:!-(physicalreads-physicalreadsdirect-physicalreadsdirect(lob)/sessionlogicalreads)执行:selectl-(a.value-b.value-c.value)d.value)fromv$sysstata,v$SySStatb,v$SySStatc,v$SySStatdwherea.name=,physicalreadsandb.name=,physicalreadsdirectandc.name=,physicalreadsdirect(Iob)a
8、ndd.name=sessionlogicalreads;1.1.1.8. 显示buffer命中率公式:1-(physicalreads/(dbblockgets+consistentgets)执行:select1-(sum(decode(name,physicalreads,value,0)(sum(decode(name,dbblockgetsvalue,0)sum(decode(name,consistentgets*,value,0),bufferhitratiofromv$sysstat;Softparseratio:这项将显示系统是否有太多硬解析。该值将会与原始记录数据对比以保证精
9、确。例如,软解析率仅为02则表达硬解析率太高。但是,假如总解析量(ParSeCOUnttotal)偏低,这项值可以被忽略。公式:1-(parsecount(hard)/parsecount(total)执行:selectl-(a.valueb.value)fromv$SySStaIa,v$SySStatbWherea.name=parsecount(hard)andb.name=parsecount(total)1;In-memorysortratio:该项显示内存中完毕的排序所占比例。最抱负状态下,在O1.TP系统中,大部分排序不仅小并且可以完全在内存里完毕排序。公式:sorts(memor
10、y)/(sorts(memory)sorts(disk)执行:selecta.value(b.value+c.value)fromv$SySStata,v$sysstatb,v$SySStaIcwherea.name=,sorts(memory)andb.name=sorts(memory)*andc.name=,sorts(disk),;Parsetoexecuteratio:在生产环境,最抱负状态是条SqI语句一次解析多数运营。公式:1-(parsecount/executecount)执行:selectl-(a.valueb.value)fromvSsysstata,vSsysstatb
11、wherea.name=,parsecount(total),andb.name=,executecount,;ParseCPUtototalCPUratio:该项显示总的CPU花费在执行及解析上的比率。假如这项比率较低,说明系统执行了太多的解析。公式:1-(parsetimecpu/CPUusedbythissession)执行:select1-(a.valueb.value)fromvSsysstata,vSsysstatbwherea.name=,parsetimecpu,andb.name=CPUusedbythissession,;ParsetimeCPUtoparsetimeela
12、psed:通常,该项显示锁竞争比率。这项比率计算是否时间花费在解析分派给CPU进行周期运算(即生产工作)。解析时间花费不在CPU周期运算通常表达由于锁竞争导致了时间花费。公式:parsetimecpu/parsetimeelapsed执行:selecta.value/b.valuefromvSsysstata,v$sysstatbwherea.name=,parsetimecpu,andb.name=,parsetimeelapsed,;从VSSYSSTAT获取负载间档(1.OadPrOfne)数据负载间档是监控系统吞吐量和负载变化的重要部分,该部分提供如下每秒和每个事务的记录信息:IOgon
13、SCUmUIatiVe,parsecount(total),parsecount(hard),executes,physicalreads,physicalwrites,blockchanges,andredosize.被格式化的数据可检查rates是否过高,或用于对比其它基线数据设立为辨认systemprofile在期间如何变化。例如,计算每个事务中blockchanges可用如下公式:dbblockchanges/(usercommits+userrollbacks)执行:selecta.value(b.value+c.value)fromv$sysstata,vSsysstatb,v$S
14、ySStatcwherea.name=,dbblockchangesandb.name=,uscrcommits,andc.name=,userrollbacks,;其它计算记录以衡量负载方式,如下:Blockschangedforeachread:这项显示出blockchanges在blockreads中的比例。它将指出是否系统.重:要用于只读访问或是重要进行诸多数据操作(如:insertsUpdatesZdeletes)公式:dbblockchanges/sessionlogicalreads执行:selecta.value/b.valuefromvSsysstata,vSsysstatbwherea.name=,dbblockchanges,andb.name=,sessionlogicalreads;Rowsforeachsort:数据排序情况公式:sorts(rows)/(sorts(memory)+sorts(disk)执行:selecta.value(b.value+c.value)fromv$sysstata,vSsysstatb,v$sysstatCwherea.name=,sorts(rows),andb.name=,sorts(memory)andc.name=sorts(disk)*