数据库程序员面试分类真题21.docx

上传人:夺命阿水 文档编号:1416057 上传时间:2024-06-15 格式:DOCX 页数:22 大小:99.07KB
返回 下载 相关 举报
数据库程序员面试分类真题21.docx_第1页
第1页 / 共22页
数据库程序员面试分类真题21.docx_第2页
第2页 / 共22页
数据库程序员面试分类真题21.docx_第3页
第3页 / 共22页
数据库程序员面试分类真题21.docx_第4页
第4页 / 共22页
数据库程序员面试分类真题21.docx_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《数据库程序员面试分类真题21.docx》由会员分享,可在线阅读,更多相关《数据库程序员面试分类真题21.docx(22页珍藏版)》请在课桌文档上搜索。

1、数据库程序员面试分类真题21倚答题1. 如何迁移SYS.AUD$表到其他表空间?正确答案:在日常的数据库维护中,经常出现SYSTEM表空间被撑满,在绝大多数情况卜是因为数据库登录审计的功能被启动了(江南博哥),此时一般建议把SYS.AUDS相关对象迁移到其他表空间,从而避免SYSTEM被用完的风险。在OraeIeUg之前迁移方法如下:A1.TERTAB1.ESYS.AUDITSMOVETAB1.ESPACEUSERS;A1.TERTAB1.ESYS.AUDIACTIONSMOVETAB1.ESPACEUSERS;A1.TERTAB1.ESYS.UDSMOVETAB1.ESPACEUSERS;A

2、1.TERTAB1.ESYS.AUD$MOVE1.OB(SQ1.BIND)STOKEASSVS_I1.0000000384C00041$(TAB1.ESPACEUSERS);A1.TERTAB1.ESYS.UDSMOVE1.OB(SQ1.TEXT)STOREASSYS_I1.0000000384C00041$(TAB1.ESPACEUSERS);A1.TERINDEXSYS.IAUDITREBUI1.DON1.INETAB1.ESPACEUSERS;A1.TERINDEXSYS.IAUDITACTIONSREBUI1.DON1.INETAB1.ESPACEUSERS:从OraCIeIIg开始可

3、以使用DBMS_AUDITJIGMT.SE1.AUDlT_TRAIJ1.OCATION进行迁移:EXECDBMS_AUDITJIGfT.SET_AUDIT_TRAI1._1.OCATION(UDIT_TRAI1.jYPE=DBMS_AUDITJKiMT.UDITJR11._DB_STD,AUD1T_TRAIJ1.OCATl0N_VA1.UE=USERS);如下示例为授予审计的一些权限:GRANTAUDITANYTO1.UR_TEST;GRANTAUDITSYSTEMTO1.HR_TEST;在OracleHg之前通过手壬清理的方式或自定义作业来定期清理SYS.AUD$表,如下:TRUNCATEF

4、ROMSYS.AUD$;DE1.ETEFROMSYS.UDSWHEREOBJ$NAME=EMP;考点审计2. 如何正确地清理SYS.AUDS表?正确答窠:如果AUD$表过大,那么直接TRUNCATEAUD$&,系统要立即释放大量的EXTENTS,会严重影响系统性能。可以通过如下2个步骤逐步释放EXTENTS。1)清空数据并且保留原来的EXTENTS:TRUNCATETAB1.ESYS.AUD$RRUSESTORAGE;在这里,REUSESToRAGE是TRUNCATE的一个参数,表示保持原来的存储不变。一般情况下,SQ1.命令TRUNCATETAB1.ETAB1.E_NAME;w其实就是mtr

5、uncatetbletable_namedropSTORAGe;。dropSTORAGE是TRUNCATETAB1.E的默认参数。2)逐步回缩EXTENTS:A1.TERTAB1.ESYS.AUD$DEA1.1.OCATEUNUSEDKEEP5000M;A1.TERTAB1.ESYS.AUDSDEA1.1.OCATEUNUSEDKEEP2000M;A1.TERTAB1.ESYS.UDSDEA1.1.OCATEUNUSEDKEEPIOM;需要注意的是,在执行的时候,可以根据实际情况调整每次回缩空间的大小。若审计在OS和XM1.选项下进行手动删除审计文件。在OraCIe1Ig中通过DBMS_AUD

6、IT_MGMT包下的子过程进行手动或定期清理。考点审计3. 审计有哪些类型?正确答案:Oraele中审计总体上可分为“标准审计”和“细粒度审计”,后者也称为“基于政策的审计”,在OraCleIOg之后功能得到很大增强。其中,标准审计可分为用户级审计和系统级审计。用户级审计是任何OraCIe用户都可设置的审计,主要是用户针对自己创建的数据库表或视图进行审计,记录所有用户对这些表或视图的一切成功和(或)不成功的访问以及各种类型的SQ1.操作。系统级审计只能由DBA设置,用以监测成功或失败的登录要求、监测GRANT和REVOKE操作以及其他数据库级权限下的操作。在OraeIe中分别支持以下三种标准审

7、计类型,或者说,可以从3个角度去启用审计:1)语句审计(StatenlentAUditing),对某种类型的SQ1.语句审计,不指定结构或对象。审计SQ1.语句的成功执行或不成功执行。这里从SQ1.语句的角度出发,进行指定。审计只关心执行的语句。例如,AUDITCREATETAB1.E语句,其中,AUDlT为使用审计的关键字。该语句表示对CREATETAB1.E语句的执行进行记录,不管这条语句是否为针对某个对象的操作。2)权限审计(PriViIegeAuditing),对执行相应动作的系统特权的使用审计,对涉及某些权限的操作进行审计,这里强调“系统权限”,例如,“AUDITCREATETAB1

8、.E;”命令,可以表咀对涉及“CREATETAB1.Em权限的操作进行审计。所以,在这种命令的情况下,既产生一个语句审计,又产生了一个权限审计。有时候语句审计和权限审计是相互重复的。3)对象审计(ObjCCtAuditing),对一特殊模式对象上的指定对象的审计。对一个特殊模式对象上的DM1.语句进行审计。记录作用在指定对象上的操作。例如,AUDITSE1.ECTONSCoTT.DEPT语句,表示指定SCoTT用户的DEPT表,审计对其进行的SE1.ECT语句。权限用户级审计(任何Orad丽户)标准审计卜系统汲审计(DBA用户)审计圾别,语句审计(StatCmentAuditing-权限审计(

9、PriViICgCAwliting)细粒度审计(FGA.基干政策的审计)I对1象审计(0bjec(Auditing)考点审计4. 审计中BYACCESS和BYSESSION的区别是什么?正确答案:BYACCESS表示每个被审计的操作都会生成一条AUDrrTRAI1.,而BYSESSION表示一个会话里面同类型的操作只会生成一条AUDrrTRAI1.,默认为BYSESSION。考点审计5. 什么是细粒度审计?正确答案:从OraCle9i开始,引入了细粒度的对象审计,使得审计变得更为关注某个方面,并且更为精确。细粒度的审计可以在访问某些行和列时审计对表的访问,从而极大地减少审计表的记录数量。使用标

10、准的审计,可以发现访问了哪些对象,以及由谁访问,但是无法知道访问了哪些行或列。细粒度审计被称为FG(Fine-GrainedAudit),由DBMSJGA的P1./SQ1.程序来实现。考点审计6. 如何查看某一个会话是否被其他会话阻塞?正确答案:SQ1.语句如下:SE1.ECTAB1.OeKINGSESSIONSTATUS,AB1.OCKINGINSTANCE,B1.OCKINGSESSION,A.EVENTfromgvssessionwhere.sid=1070;jBN(1.SESSloN_STAlUsjB1.OaaNGJNSTANCEjB1.OawJSE%IONjEvBffJVA1.112

11、:970eq:TX*rowlockcontention由上图可知,1070会话被2号实例上的970会话阻塞。考点会话7. 如何查到会话正在执行的SQ1.语句?正确答案:SQ1.语句如下:SE1.ECTB.SQ1.D,B.SQ1.jrEXTFROMGV$SESSION,GVSSQ1.BWHEREA.SQ1.JD=B.SQ1.DANDA.INST,ID=B.INST_IDAND.SID=1070:SQ1.DSQUBff12advpk5ds7rc3updatet2_deadlodcseta=2000wherea=2通过SQ1.ID这个字段,可以获取到某个会话正在执行的SQ1.语句。考点会话8. 如何

12、彻底杀掉会话?V$SESSION的STATUS为KI1.1.ED的情况下如何找到相关的后台OS进程?正确答案:一般情况下,可以通过执行SQ1.语句“A1.TERSYSTEMKI1.1.SESSIONSID,SERIA1.#直接杀掉会话,当SESSlON是ACTIVE的时候,A1.TERSYSTEMKI1.1.SESSION只是将SESSION的状态标识为KI1.1.ED,SERVER变为PSEUDO状态,但并不会释放SESSlON持有的资源,所以,在执行完A1.TERSYSTEMKI1.1.SESSloN后,会话还是一直存在。执行命令Kl1.1.SESSION的时候,后边加上IMMEDIATE

13、,这样在没有事务的情况3相关会话就会立即梆放而不会变为KI1.1.ED的状态;当有事务存在的情况下,会先进行回滚相关的事务,然后释放会话所占有的资源。另外,由于变为KI1.1.ED状态的会话的PADDR列都变成了另外一个值,因此,通过平常的连接方式就没有办法关联到后台进程,在OraCIeIIg下提供了CREATORADDR歹J,该列可以关联到后台进程,对于OraCIeIOg可以通过特殊的SQ1.找到后台的进程号。OracleIOg可以使用如下的脚本:SEEECTINST_ID,SPID,PROGRAM,KI1.1.-9,SPIDKI1.1.9FROMGV$PROCESSWHEREPROGRAM

14、!=*PSEUDO,AND(INSTID,ADDR)NOTIN(SE1.ECTAND(INSTID,ADDR)NOTIN(SE1.ECTND(iNST_ID,DDR)NOTIN(SE1.ECTINSTID,PDDRFROMGVSSESSION)INSTID,PADDRFROMGVSBGPROCESS)INST_ID,PADDRFROMGV$SHAREI1.SERVER);OracleIlg可以使用如下的脚本:SE1.ECT.INST_ID,A.SIDA.SERIA1.#,t,11(SE1.ECTSPIDFROMGV$PROCESSBWHEREB.INSTD=A.INSTDANDA.CREATO

15、RDDR=B.ADDRANDDECODE(A.STATUS,KI1.1.ED*,A.CREATORADDR,.PDDR)=B.DDR)SESSIONID,.PADDR,.STATUS,.PROGRAM,A1.TERSYSTEMDISCONNECTSESSIONSID,SERIA1.#I,IMMEDIATE;*KI1.1._SESSIONFROMGvssessionwherea.username=sysanda.status=killed;考点会话9. 如何让普通用户可以杀掉自己用户的会话?正确答案:普通用户而要杀掉会话必须要具有A1.TERSYSTEM的权限,但是由于该权限过大,用户可能使用该

16、权限错杀其他用户的会话,所以,有没有其他办法可以实现该功能呢?该类问题也是DBA工作中常遇到的问题,卜面给出一种解决方案。首先,可以创建一个查询自己会话信息的视图,将该视图创建公共同义词,然后创建一个存储过程,该存储过程实现杀掉会话的需要,最后将该存储过程的执行权限赋给PUB1.IC即可解决这个问题。考点会话10. SESSIONS和PROCESSES有什么关系?正确答案:在数据库安装完成后,常常需要设置SESSloNS和PRoCESSES的大小。其中,SESSIONS指定了一个实例中允许的会话数,即能同时登录到数据库的并发用户数;PRoCESSES指定了一个实例在操作系统级别能同时运行的进程

17、数,包括后台进程与服务器进程。由于一个后台进程可能同时对应多个会话,所以,通常SESSIONS的值大于PROCESSES的值。通过查找官方文档,nJ以知道SESSIONS参数的值在OracleIOg和IIg中是不同的,见下表。属性OracleIOgOracle1lgR2参数值的类型IntegerInteger默认值Derived:(1.l*PR0CESSES)+5Derived:(1.5*PR0CESSES)+22是否可以动态杰修改白否范围1-2311216(即1-65536)注:在OraCleIlgRI中,该参数值和IOg足一样的,修改语句为“A1.TERSYSTEMSETPROCESSES

18、ISESSIONS=200SCOPE=SPF11.E:w由于SESSlONS的值是根据PRoCESSES的值计算得到的,所以,一般情况卜只需要设置PROCESSES的值即可。在OraCIellgR2以下版本中,SESSlONS大小的计算公式为(1.l*PR0CESSES)+5;在OraCIellgR2中,SESSlONS大小的计算公式为(1.5*PR0CESSES)+220若SESSIONS的当前值比计算值大,则SESSIONS的值可能保持不变:若SESSloNS的当前值比计算值小,则SESSIONS取计算值,即SESSIONS的值总是取MAX(当前值,计算值),但是这个也不是绝对的。当数据库

19、连接的并发用户已经达到SESSIONS的值时,又有新会话连接进来,就会报错:“0RA-00018,maximumnumberofsessionsexceeded”。当OraCIe需要启动新的PRoCESS,而当前的进程数又已经达到PROCESSES参数时,就会报错:“0数-OOo20:maximumnumberofprocesses(2048)exceeded,。如果数据库上连接被占用完,当新的连接过来时,那么就会在客户端产生rtORA-12519,TNS:noappropriateservicehandlerfound,的报错信息。考点会话11. 如何根据OS进程快速获得DB进程信息与正在执

20、行的语句?正确答案:在OS上执行top命令之后就可以得到OS进程号,有了OS进程号后,就可以在数据库中直接查询:SE1.ECTB.SID,B.SERIA1.#,C.SPID,B.SQ1._IDEROMV$SESSlONB,Vsprocesscwhereb.paddr=c.addrandc.spid=xxxx;考点会话12. 怎么杀掉特定的数据库会话?正确答案:“A1.TERSYSTEMKI1.1.SESSIONSID,SERIA1.#IMMEDIATE:,或者“A1.TERSYSTEMDISCONNECTSESSIONSID,SERIA1.#IMMEDIATE;在Windows上还可以采用Or

21、aCle提供的orakill杀掉一个线程(其实就是一个OraCIe进程)。在1.inUX上,可以直接利用kil9杀掉数据库进程对应的OS进程。考点会话13. 如何快速地清理Oracle的进程?正确答案:若想要快速清理掉OraCIe的进程,最直接的办法是杀PmOn进程。有如下3条命令可供选择,其中加粗的OreI替换成ORAC1.ESID的值即可。kill-9ps-efIgreporc11grep-vgrepawkprint$2ps-efgreporclgrep-Vgrepawk,print$2IXargSkill-9ipcs-migreporacleIawkprint$2IXargSipcrms

22、hm若想要快速杀掉集群的进程,则可以执行如下命令:km-9ps-efgrepd.bingrep-vgrepawkprintS2)注意,生产库上严禁使用,否则可能导致集群不能正常启动。考点会话14. 等待事件有哪些分类?正确答案:Oracle的等待事件主要可以分为两类:空闲(IdIe)等待事件和非空闲(NonTdIe)等待事件。D空闱等待事件指Oracle正等待某种工作,在诊断和优化数据库的时候,不用过多注意这部分事件。2)空闲等待事件专门针对OraCIC的活动,指数据库任务或应用运行过程中发生的等待,这些等待事件是在调整数据库的时候需要关注与研窕的。通过如卜.的SQ1.语句可以查询等待事件的类

23、型:SE1.ECTWAITC1.ASSU,WAITC1.ASSID,WAITC1.ASS,COUNT(*)ASCOUNT”FROMV$EVENT_NAMEGROUPBYWAIT_C1.ASS#,WAIT_C1.ASS_ID,W/IT_C1.ASSORDERBYKAIT工1.ASS#;考点等待事件15. 什么是AdaPtiVe1.ogFileSync?正确答案:当前台进程提交事务(COMMIT)后,1.GWR需要执行日志写出操作,而前台进程因此进入IOgfileSynC等待。在OraCIeIIg之前的版本中,1.GWR执行写入操作完成后,会通知前台进程,这就是PoStKait模式;在OraCIe

24、llgR2中,为了优化这个过程,前台进程通知1.GWR写之后,可以通过定时获取的方式来查询写出进度,这被称为PoIIing模式。在OraCIe11.2.0.3中,这个特性被默认开启,通过隐含参数M_use_adaptive_log_fi1e_sync,来控制(默认值为true),这个参数的含义是,数血库可以百适应地在Post/ait和POuing模式间选择和切换。正是由于这个原因,带来了很多Bug,反而使得logfileSynC的等待异常得高。因此,如果在OraCIe11.2.0.3版本中观察到这样的特征,那么就极有可能与此特性的BUg有关。在PostZWait和Polling机制之间的切换,

25、Oracle会记录到1.GWR进程的trace中,如下:1.ogfiIesyncswitchingtopolling1.ogfilesyncswitchingtopost/wait若遇到此问题,则通常将隐含参数_use_adaptive_log_fi】e_sync”设置为false,回归到以前的Post/Wait模式,这将会有助求问题的解决。关闭Polling模式的命令为altersystemsetuse_adaptive_log_file_sync*=falsesid=*:考点等待事件16. 请列举一次你曾经处理过的故障。正确答窠:没有唯一答案,读者根据自己的维护经验讲解即可,下面给出一个作

26、者的经处理过的故障诊断案例。1.故障环境项目Sourcedbdb类型KACdbversion10.2.0.5.0db存储ASMOS版本及kernel版本AIX64位6.1.0.02.故障发生现象及报错信息有一套数据库做测试的时候,CPU利用率很高,当时抓取了CPU和AWR的信息。发生问题的时间段是1923点,其中,nmon数据截图如下图所示。CPUTotal-V-2016/8/238fio.Xk(SaUKcX0SRsRR*s.ff可以看到CPU的利用率是非常高的,下边来看看AWR中的数据。IDBNameDBIdInstanceInstnumReleaseRACHostICC1654173250

27、如二;二:J10.2.0.5.0YES一0.1.ccn1.SnapSnapTrnieSessionsCursorsZSessionBeginSnap:14123-Aug-119:04:415153.4EndSnap:142423-Aug-1623:09:414992.8Elapsed:245.00(mins)IDBTime:6.722.27(mins)_Top5TimedEventsEventWaitsIrmeAvgWat(ms)TotalCallTimeWaitCIassDFSIOChhandle1.640.15380.7254920.0Otherenq:SQ-contention172.2

28、5469.65240417.3ConfiguratiorCPUtime50,65012.6gcbufferbusy3,134,96830.426107.5Clusterlogfilesync11,550,20622.60725.6Commit!从等待事件中可以很明显地看出,“enq:SQ-contention和DFSlockhandle这两个等待事件异常。Top5TimedEvents,部分也是AWR报告中非常重要的部分,从这里可以看出等待事件中排在前五位的是哪些事件,从而基本上就可以判断出性能瓶颈在什么地方。在这里,enq:SQ-COntentiOn”等待了172254次,等待时间为6965

29、2s,平均等待时间为69652/172254s=404ns,等待类别为COnfigUration即配置上的等待问题。3.有关序列等待的基础知识根据ANR报告的内容基本可以断定,只要解决了uenq:SQ-Contentionw和“DFSlockhandlew这两个等待事件即可解决问题。其实,uenq:SQ-contention,“rowcachelockDFSlockhandle”和enq:SV-contention这4个等待事件都与Oraele的序列有关,如下:SE1.ECT*EROMV$EVENT_NAMEWHERENAMEINCrowcachelock,enq:SQ-contention,

30、DHSlockhandle,enq:SV-contention);12W233嫡38SfSQwtX)w11wde032825W02Cc11n1122751714069451WOetocacheid11orequest38750705074Ccnarrerey5013595075359DFSbckhyAt*penode1893977CO30Otfwr481681851W77enjSVccntertnZlelrrodedld21893973OCther!I.QASS.,W11.QASSRlWWDUIPwAM三2,PWTg3BW)其中,PREMETER1的值为wnamemodew或mtypemode

31、w的事件为队列等待。在这类等待事件中,name代表队列的名称,type代表队列的类型,mode代表队列的模式。使用如下的SQ1.可以查询到锁的名称和请求的mode值:SE1.ECTCHR(BITAND(Pl,16777216)/16777215)CHR(BITND(P1,16711680)/65535)1.OCK,解释BITAND(Pl,65535)MODEFROMV$SESSlo)1.WAITWHEREEVENTIN(,enq:SQ-contention,DFSlockhandle*,enq:SV-contention,);其中,MODE值见下表。模式代码1NullMode2 Sub-Sho

32、e3 Sub-Exclusive4 Share5 Share/Sub-Exclusive6 Exclusive使用如卜的SQ1.可以查询SQ和SV这两种锁的解释:SE1.ECT*FROMVS1.OCK_TYPEDWHERED.TYPEIN(SV,SQ,):TfftJlWg吗Jw6IDUG100IDSaUHlONSQSequmeCacheobject*0NO1.ocktoemixettiataiyoneprocesscanfeplwtthesequcecaSVSequexeOrdemgobjects0NO1.ocktoensureocderedsequencealoc3tnnRACmode事实上

33、,OraCIe为了管理序列使用了,1.SQ锁(SeqUenCeSV锁(SeqUenCey*arCCChCI*clz如下表所示的Cache)Ordering)三种锁。锁CACHE+NOORDER或产生的条件NOCACHECACHE+ORDERCACHE+ORDER(RAC)(单实例)拥有的锁模式6-X(ExcIusive)6-X(Exclusive);SSX(SharcSubExclusive)OracleIOg表现为DFS表现出的等,.enq:SQ-lockhandle,而fttiowCaCne1oc.C.t71、,待事件contentionOracleIIg中表现为enq:SV-conten

34、tion在RAC上节点之间顺序得到保障的情况器予了NOCACHE阴F属性U黑.NEXTVA1.期属性的序列调刖回加右的序列上,在调用NEXTVA1.期间,应4口a,e格小F三ENEXTVA1.公以SSX模式获得最。:HE+器简介蝠中,将数据字典锁。若许多会话同性叫事梵甯在信息进行时为了获取SQ锁而黑CeR表F为施工皿*七“,小DrSlockhandle,IU物理修改时拥有该发生在11中表现锁,等待争用,则等待CieIlgI衣说事件表现为rowenq:SQ-.trn,enq:SV-contento11ocachelockcontentionrFk.-1vlimjj解决办法:尽量设置为NOORDE

35、R并增大其CACHE值Pl可以查询到锁的名称和请求的MODE参数令APl代式v$Rwcache值。P2值是序列的Pl可以查询到锁的名分获7乂中的CAeHE#OBJECT_lDo因此,称和请求的MODE值若利用P2值与DBAOBJECTS的结合,就可以知道对哪个序列发生了等待现象解决办法尽量设宜为YOORDER屈性并增大其CACHE值,一般情况下可以增大到100O在RAC上创建序列时,在赋予了CACHE属性的状态下,若没有赋予ORDER属性,则各节点将会把不同范围的序列值CACHE到内存上。比如,在拥有两个节点的RAC环境下,创建CACHE值为100的序列,则节点1使用1-100,节点2使用10

36、1200若两个节点之间都通过递增方式使用序列,则必须赋予ORDER属性。OraCIe序列默认是NoORDER,如果设置为ORDER,那么在单实例环境没有影响,在RAC环境中,多实例实际缓存相同的序列,此时在多个实例并发取该序列的时候,会有短暂的资源竞争来在多实例之间进行同步。因此,性能相比NOORDER要差,所以RAC环境M必须的情况下不要使用ORDER,尤其要避免NOCACHEORDER组合。有一点必须要注意,当没有赋予CACHE属性时,不管ORDER属性使用与否或RAC环境与否,一直等待rowcacheIOCk事件。rowcacheIOCk是可以在全局范围内使用的锁,单实例环境或多实例环境

37、同样可以发生。如果使用了CACHE,而此时DB崩溃了,那么序列会从CACHE值之后重新开始,在CACHE中没有使用的序列会被跳过,这样就会导致序列不连续。在创建序列时,CAeHE的默认值设定为较小的20。因此创建并发量多的序列时,CACHE值应该取100O以上的较大值。另外,若一次性同时创建许多会话时,有时会发生enq:SQ-contention等待事件。其原因是VSSESSION.AUDSlD列值是利用序列创建的。OraCIe在创建新的会话后,利用名为SYS.人如$5$的序列的NEXTVA1.来创建AUDSID值。在OracleIOg下SYS.AUDSES$的CACHE值默认为20,但在Or

38、aCIeIlg下SYS.AUDSES$的CACHE值默认为10000,通过如下的SQ1.可以查询:SE1.ECT*IROMDBASEQUENCESDWHERED.SEQUENCENAME=AUDSES$;sawoWlBjswVMwWUEHUWJe11e.wCTaVuGIOKeljjaot.su三TMeRJ;0SUOSfiS10000900IYN1:G:C774.故障解决过程首先查洵出现问题时间段的ASH视图DBAHIST_ACTIVE_SESSHISTORY,通过该视图可以找到需要的序列名称。可以有多种查询方法:SE1.ECTD.SQ1.D,COUNT。)HROMDBA_HIS1._ACTIV

39、E_SBSS_H1STORYDWHEKED.SAMP1.E_TIMEBETWEENTO_DATE(20160823170000,YYYYMMDDHH24MlSS)ANDTO_DATEC20160823230000,YYYYMMf)DHH24MISS,)ANDfEVENT=enq:SQ-ContentionGROUPBYD.SQ1._ID;SQ1.JDICOUNT(I)3d8b9vwzcws66b2226bwc3mqwqqdld222566cawus5vz9qd27613yyf56pc9kzk37864dqwh46a2b7nr987423jhvjgj7kbpmt15426可以看到SQ1.D为3j

40、hvjgj7kbpmt的SQ1.最多,查看具体SQ1.内容:SE1.ECT*1ROMV$SQ1.AWHEREA.SQ1./DINC3jhvjgj7kbpmf);S91._TEXTISQ1.-FU1.1.TEXTiSQ1.JD(selectON1.NIDnextvaIinto:blfromDUA1.3抑gj7kbpmt由此可以知道,产生等待的序列名称为ON1.NlD,另外,也可以从DBAHISTACTIVESESSjnSToRY视图的P2值获取到序列的名称,SQ1.语句如下:SE1.ECTD.EVENT,D.PlTEX1.D.P1,D.P2TEX1.D.P2,CHR(BITND(P1,-1677

41、7216)/16777215)CHR(BITND(P1,16711680)/65535)*1.ock,BITND(P1,65535)*Mode*,D.B1.OCK1NG_SESSION,D.B1.OCKING_SESS1ON_STATUS,D.B1.OCK1NG_SESS10N_SER1A1.#,D.SQ1._1D,TO_CHAR(D.SAMB1.E_T1ME,YYYYMMDDHH24M1SS,)SAMP1.EJIME,D.*FROMDBA_HIST_ACTIVE_SESS_HISTORYDWHERED.SAMP1.EJnMEBETWEENTO-DATE(,20160823170000,YYY

42、YMMDDHH24MISS,)ANDTODATEC20160823230000,YYYYMMDDI1H24MISS,)ANDD.EVENT=enq:SQ-contention,;EVENTP1三TP1P2TE.P2I1.ockJModeIBIoaaNG.SESSIONJenq:SQ-contentionnamemode1397817350objecti47989SQ6enq:SQ-contentionnamemode1397817350Ob)Mi479S9SQ6enq:SQ-contentionnamemode1397817350objectS47989SQ6enq:SQ-contentionnamemode1397817350objecti47989SQ6enq:SQ-contenbonnamemode1397817350objectI47989SQ6enq:SQcwte11tionnamemoache1.AST-NUMBER14743

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号