|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
使用DBaaS能让收入损失从其他业务上得到弥补,如软件更新和硬件管理。也许决定走DBaaS之路的客户可能会跳过解决方案提供商,尽管这个决策看起来有点短视。数据库平台:SunOS5.8Generic_108528-23sun4usparcSUNW,Ultra-Enterprise
数据库版本:8.1.5.0.0
数据库症状:数据库呼应迟缓,使用哀求没法前往,营业操纵陷于停留,此时必要DBA参与并举行成绩诊断及妨碍处置。
1.登录数据库举行反省
<p> 起首我们登录数据库,反省妨碍征象。
经由反省发明,数据块的一切重做日记组除current外都处于active形态:
<p>- oracle:/oracle/oracle8>sqlplus"/assysdba"SQL*Plus:Release8.1.5.0.0-ProductiononThuJun2318:56:062005(c)Copyright1999OracleCorporation.Allrightsreserved.Connectedto:Oracle8iEnterpriseEditionRelease8.1.5.0.0-ProductionWiththePartitioningandJavaoptionsPL/SQLRelease8.1.5.0.0-ProductionSQL>select*fromv$log;GROUP#THREAD#SEQUENCE#BYTESMEMBERSARCSTATUSFIRST_CHANGE#FIRST_TIM-------------------------------------------------------------------------------------------11520403314572801NOACTIVE1.3861E+1023-JUN-0521520404314572801NOACTIVE1.3861E+1023-JUN-0531520405314572801NOACTIVE1.3861E+1023-JUN-0541520406314572801NOCURRENT1.3861E+1023-JUN-0551520398314572801NOACTIVE1.3860E+1023-JUN-0561520399314572801NOACTIVE1.3860E+1023-JUN-05715204001048576001NOACTIVE1.3860E+1023-JUN-05815204011048576001NOACTIVE1.3860E+1023-JUN-05915204021048576001NOACTIVE1.3861E+1023-JUN-059rowsselected.SQL>/GROUP#THREAD#SEQUENCE#BYTESMEMBERSARCSTATUSFIRST_CHANGE#FIRST_TIM-------------------------------------------------------------------------------------------11520403314572801NOACTIVE1.3861E+1023-JUN-0521520404314572801NOACTIVE1.3861E+1023-JUN-0531520405314572801NOACTIVE1.3861E+1023-JUN-0541520406314572801NOCURRENT1.3861E+1023-JUN-0551520398314572801NOACTIVE1.3860E+1023-JUN-0561520399314572801NOACTIVE1.3860E+1023-JUN-05715204001048576001NOACTIVE1.3860E+1023-JUN-05815204011048576001NOACTIVE1.3860E+1023-JUN-05915204021048576001NOACTIVE1.3861E+1023-JUN-059rowsselected.
复制代码 我们晓得,当数据库产生日记切换时(LogSwitch),Oracle会触发一个反省点(Checkpoint),反省点历程(CheckpointProcess,CKPT)会关照DBWR(Database?Writer)历程往实行写操纵。在日记文件所回护的处于Buffercache中的脏数据(dirtybuffer)未写回磁盘之前,日记文件不克不及被掩盖或重用。
<p> 假如数据库非常忙碌,大概DBWR的写出过慢,便可能呈现反省点未完成,Oracle却已用完一切日记文件的情形。在这类情形下,数据库的日记没法天生,全部数据库将处于停留形态,此光阴志文件中会纪录相似以下信息:- MonJan2316:11:392006Thread1cannotallocatenewlog,sequence5871CheckpointnotcompleteCurrentlog#2seq#5870mem#0:+ORADG/danaly/onlinelog/group_2.260.600173851Currentlog#2seq#5870mem#1:+ORADG/danaly/onlinelog/group_2.261.600173853
复制代码 反省v$session_wait视图,我们能够从中看到良多session处于logfileswitch(checkpointincomplete)的守候。
<p> 2.反省DBWR历程
<p> 在本案例中,一切日记组都处于active形态,那末明显DBWR的写出存在成绩。 接上去让我们反省一下DBWR的忙碌水平:
<p>- SQL>!oracle:/oracle/oracle8>ps-ef|grepora_oracle227310Mar31?57:40ora_smon_hysms02oracle226610Mar31?811:42ora_dbw0_hysms02oracle2264116Mar31?16999:57ora_pmon_hysms02oracle226810Mar31?1649:07ora_lgwr_hysms02oracle227910Mar31?8:09ora_snp1_hysms02oracle228110Mar31?4:22ora_snp2_hysms02oracle228510Mar31?9:40ora_snp4_hysms02oracle227110Mar31?15:57ora_ckpt_hysms02oracle228310Mar31?5:37ora_snp3_hysms02oracle227710Mar31?5:58ora_snp0_hysms02oracle228910Mar31?0:00ora_d000_hysms02oracle228710Mar31?0:00ora_s000_hysms02oracle227510Mar31?0:04ora_reco_hysms02oracle2102321012018:52:59pts/650:00grepora_
复制代码 DBWR的历程号是2266。
<p> 利用Top命令察看一下该历程的CPU耗用:
<p>- oracle:/oracle/oracle8>toplastpid:21145;loadaverages:3.38,3.45,3.6718:53:38725processes:711sleeping,1running,10zombie,3oncpuCPUstates:35.2%idle,40.1%user,9.4%kernel,15.4%iowait,0.0%swapMemory:3072Mreal,286Mfree,3120Mswapinuse,1146MswapfreePIDUSERNAMETHRPRINICESIZERESSTATETIMECPUCOMMAND11855smspf15901355M1321Mcpu/019:3216.52%oracle2264oracle1001358M1316Mrun283.3H16.36%oracle11280oracle11301356M1321Msleep79.8H0.77%oracle6957smspf15291063M14Msleep107.7H0.76%java17393smspf13001356M1322Mcpu/1833:050.58%oracle29299smspf55808688K5088Ksleep18.5H0.38%fee_ftp_get21043oracle14303264K2056Kcpu/90:010.31%top20919smspf17291063M17Msleep247:020.29%java25124smspf158016M4688Ksleep0:350.25%smif_status_rec8086smspf523021M13Msleep41.1H0.24%fee_file_in16009root13504920K3160Ksleep0:030.21%sshd225126smspf15801355M1321Msleep0:260.20%oracle2266oracle16001357M1317Msleep811:420.18%oracle11628smspf75903440K2088Ksleep0:390.16%sgip_client_ltz26257smspf82590447M178Msleep533:040.15%java
复制代码 我们注重到,2266号历程损耗的CPU不外0.18%,明显其实不忙碌,DBWR其实不忙碌,可是反省点没法完成,那末我们能够判别,瓶颈就极可能呈现在IO上。
3.反省IO情况
<p> 我们可使用IOSTAT工具反省体系IO情况:- gqgai:/home/gqgai>iostat-xn3extendeddevicestatisticsr/sw/skr/skw/swaitactvwsvc_tasvc_t%w%bdevice......0.00.00.00.00.00.00.00.000c0t6d01.838.432.4281.00.00.70.016.4029c0t10d01.838.432.4281.00.00.50.013.5027c0t11d024.861.31432.4880.10.00.50.05.4026c1t1d00.00.00.00.00.00.00.09.100hurraysms02:vold(pid238)extendeddevicestatisticsr/sw/skr/skw/swaitactvwsvc_tasvc_t%w%bdevice........0.00.00.00.00.00.00.00.000c0t6d00.38.30.347.00.00.10.09.208c0t10d00.08.30.047.00.00.10.08.007c0t11d011.765.3197.2522.20.01.60.020.50100c1t1d00.00.00.00.00.00.00.00.000hurraysms02:vold(pid238)extendeddevicestatisticsr/sw/skr/skw/swaitactvwsvc_tasvc_t%w%bdevice........0.00.00.00.00.00.00.00.000c0t6d00.313.72.768.20.00.20.010.9012c0t10d00.013.70.068.20.00.10.09.6011c0t11d011.365.390.7522.70.01.50.019.5099c1t1d00.00.00.00.00.00.00.00.000hurraysms02:vold(pid238)extendeddevicestatisticsr/sw/skr/skw/swaitactvwsvc_tasvc_t%w%bdevice........0.00.00.00.00.00.00.00.000c0t6d00.08.00.042.70.00.10.09.307c0t10d00.08.00.042.70.00.10.09.107c0t11d011.065.7978.7525.30.01.40.017.7099c1t1d00.00.00.00.00.00.00.00.000hurraysms02:vold(pid238)extendeddevicestatisticsr/sw/skr/skw/swaitactvwsvc_tasvc_t%w%bdevice........0.00.00.00.00.00.00.00.000c0t6d00.387.72.7433.70.02.20.024.9090c0t10d00.088.30.0436.50.01.80.019.9081c0t11d089.054.0725.4432.00.02.10.014.80100c1t1d00.00.00.00.00.00.00.00.000hurraysms02:vold(pid238)
复制代码 在以上输入中,我们注重到,寄存数据库的次要卷c1t1d0的忙碌水平一直处于99~100,而写速率却只要500K/s摆布,这个速率是极其迟缓的。
<p> 依据IOSTAT的手册:- (%bpercentoftimethediskisbusy(transactionsinprogress)Kw/skilobyteswrittenpersecond)
复制代码 <p> 依据我们的知识,T3盘阵一般按Char写速率能够到达10M/s摆布,之前测试过一些Tpcc目标,能够参考:www.eygle.com/unix/Use.Bonnie.To.Test.IO.speed.htm。
<p> 而一般情形下的数据库随机写一般都在1~2M摆布,明显此时的磁盘已处于不一般形态,经由确认切实其实是硬盘产生了破坏,Raid5的Group中破坏了一块硬盘。
<p> 经由改换今后体系渐渐恢复一般。
RDBMS并非没有局限性。它们难以扩展,需要大量的资源来配置和维护,比如时间、硬件和人力。同样,它们往往遵循峰值性能模型,这就要求系统按照峰值容量来配置可用性,而不考虑典型的数据使用情况。 |
|