《数据库程序员面试分模拟题6.docx》由会员分享,可在线阅读,更多相关《数据库程序员面试分模拟题6.docx(13页珍藏版)》请在优知文库上搜索。
1、数据库程序员面试分模拟题6筒答题1. O1.R如何进行备份恢复?正确答案:O1.R的备份策略和OCR的有所不同,默认情况卜GI在初始安装时会在路径SGRIDHoMEcdataV节点名卜产生一个(江南博哥)备份。ErootQorclalhrorcIalhr#cdErootQorclalhr#cdulappl1.2.O/grid/cdata/orclalhrErootQorclalhrorcIalhr#11total5608-rw1gridOinstall5742592May12015backup_20150501_174602.olrO1.R不会被1动备份,如果在集群的一些配置信息发生改变后,需
2、要使用下面的命令手动进行备份:root0orcIathrorclahr#ocrconfig-1oca1-manua1backuporclalhr2017/03/0910:21:51ulappll.2.O/grieVedata/orcIalhrZbaekup20170309102151.olrorclalhr2015/05/0117: 46:02ulappll.2.O/grid/cdata/orc1a1hr/backup_20150501_174602.olr建议在集群的重要配置信息(例如,集群私网配置)发生改变之后,使用命令OerConfigToCal-manualbackup手动备份O1.R
3、。当O1.R丢失之后,可以使用命令ocrconfig-local-restore“来恢复,不能从集群的其他节点复制O1.R到本地节点,这是因为O1.R中保存的一些信息是针对本地节点的。如果需要验证O1.R的一致性,那么可以使用OerCheCkToCaI命令。简单地说,所有适用于OCR的命令同样适用于O1.R,但是需要增加-1。Cal选项。对于O1.R的备份恢复简单过程如下(MOS:1193643.1和1368382.1):bin/ocrconfig-local-manualbackup/binocrconfig-local-showbackupps-efgrepohasd.binbin/crs
4、c11stopcrs=forGIClusterbincrsct1stophasbinOCrCOnfig-local-restoreVG1.HOME/bin/CrSCtlstartors=f0rGICluster/bin/crsct1starthas=forGIStandalone,thismustbedoneasgriduser.考点RAC2. 怎么捕获用户登录信息,如SID、IP地址等?正确答案:可以利用登录触发器。3. 在OraCIe中,常用的与锁有关的数据字典视图有哪些?正确答案:常用的与锁有关的数据字典视图有DBA)V1._1.0CKS、DBA_DD1._1.0CKS.VS1.OCK.
5、DBAOCK和V$1.OCKED.OBJECT。V$1.OCKED.OBJECT记录的是DM1.锁信息,而没有记录DD1.锁。V$1.OCKDBA_1.OCKS,DBAloCK内容样,DBA_1.OCKS是DBA_1.OCK的同义词。可以用动态性能视|!$FlXEDVIEWDEFIMTloN来查看它们的关系。v$session视图的TADDR列表示事务处理状态时象的地址,对应于V5TRNSACTI0N.I)DR列;V$SESSloN视图的1.OCKWIT列表示等待锁的地址,对应于V$1.OCK的KADDR列;若当前会话没有被阻塞则为空。VSSESSION视图的SADDR列对应于vstrnsct
6、ion的sesaddr列。可以通过rowwaitobj#、ROWWAITFI1.E#、ROWWAITB1.OCKSfllROWWAITROW#这4个字段查询现在正在被锁的表的相关信息(ROWID),例如,表名、文件名及行号。V$SESSlON视图中的Pl和P2参数根据等待事件的不同所代表的含义也不同,可以从VSEVENT_NAME视图获知每个参数的含义。在VS1.OCK中,当TYPE列的值为TM锁时,则IDl列的值为DBAj)BJECTS.OBJECT。,1D2列的值为0;当TYPE列的值为TX锁时,则IDl列而值为视图V$TRANSAenON中的XlDUSN字段(UndoSegmentNum
7、ber,事务对应的撤销段序列号)和XlDS1.OT字段(SIolNUmber,事务对应的槽位号),其中,IDl的高16位为XIDUSN,低16位为XlDS1.OTID2列的值为视图V$TRAMSAen0中的XlDSQN字段(SeqUCnCCNumber,事务对应的序列号)。当TYPE列的值为TX锁时,计算IDl列的值的公式为SE1.ECTTRUNC(EDIP0WER(2,16)ASX1DUSN,BITAND(ID1,TONUMBERCFFFF,XXXX)+0SXIDS1.OT,ID2XIDSONFROMDUA1.;所有与锁有关的数据字典视图之间的关联关系如下图所示。ROWWAJTOBJ#.RO
8、WWAITJI1.E*.ROWWAIT_BI.OCK*.ROWWIT.ROW考点锁4. InnoDB存储引擎支持哪些事务类型?正确答案:对于Inn。DB存储引擎来说,其支持扁平事务、带有保存点的扁平事务、链事务和分布式事务。对于嵌套事务,其原生不支持。因此对有并发事务需求的用户来说,MySQ1.数据库或InnoDB存储引隼就显得无能为力,然而用户仍可以通过带保存点的事务来模拟串行的嵌套事务。考点存储引擎5. 数据库设计的需求分析阶段是如何实现的?目标是什么?正确答案:数据库设计的需求分析通过三步来完成:需求信息的收集、分析整理和评审。其目的在于对系统的应用情况做全面详细的调查,确定企业组织的目
9、标,收集支持系统总的设计目标的基础数据和对这些数据的要求,确定用户的需求,并把这些需求写成用户和数据设计者都能够接受的文档。考点数据库系统的组成与结构6. 有如下两张表:D用户资料表:SERV(SERVIDNUMBER(10),PRODIDNUMBEr(1.O),USERTYPEVARCHAR2(30),TERMlNA1.NAMEvRCHR2(30),其中,SERVD为用户标识,是SERV表的主键:PRODlD为产品标识:USElurYPE为用户类型:TERMINAJNAME为终端类型。2)终端类型临时表:TERMINA1.(SERV_IDNUMBERU0),TERMINAJNAMEVARCH
10、AR2(30)。在初始化情况下,SERV.表的SERVID、PRODD、USERJYPE字段值是己知的,Tervinajname字段是空的,现在要根据:PROdd、USER_TYPE字段的值来更新NAME手段。更新条件为:D当条件满足PROD_ID=1ANDUSERJYPE=A时,TERMlNAkNAME更新为“固话”。2)当条件满足“PRODID=IANDUSERTYPD=B时,TERMINA1.NAME更新为“小灵通”。3)当条件满足“PRODD=2时,TERMlNA1._NAME更新为“宽带”。4)当条件满足“USERTYPE=C时,TERMlNA1._NAME更新为CDMAm5)以上条
11、件均不满足前,TERMINAJNAME更新为“-1”。根据以上条件,完成存储过程,存储过程的名称为Spterminaj正确答案:存储过程如下:CREATEORREP1.ACEPROCEDURESPTERMINA1.ISBEGINUPDATESERVSSETS.TERMINA1.NAME=(SE1.ECTCASEWHENS.PRODID=IANDS.USERTYPE=,THEN固话WHENS.PROD_ID=1ANDS.USERjYPE=BTHEN小灵通WHENS.PR0D_ID=2THEN宽带WHENS.USER-TYPE=,C,THENCDMAE1.SE,-l,ENDASTERMlNAkNA
12、MEFROMTERMINA1.TWHERES.SERVJD=T.SERVD)WHEREEXISTS(SE1.ECT1FROMTERMINA1.TlWHERES.SERV_ID=T1.SERV_ID):COMMIT;ENDSP_UPDATE_TERMUNA1._NAME;考点存储过程7. 如何预估即将创建索引的大小?正确答案:如果当前表大小是1TB,那么在某一列上创建索引的话索引大概占用多大的空间?对于这个问题,Oracle提供了2种可以预估将要创建的索引大小的办法:1)利用系统包DBMS_SPACE.CREATE_INDEX工OST直接得到。利用DBMS_SPACE.CREATE_1AB1.E
13、_COST可以获得将要血建的表的大小。2)利用OraCIeIIg新特性NOTERAISEDWHENEXP1.AINP1.ANFORCREATEINDEX0考点索引8. Oracle健康检查有哪些方面?正确答案:要想对数据库进行全面检查,内容比较多,卜面列举部分检查项目:D数据库的实例是否运行,最近是否有Fl动重启现象。2)SM实例是否正常运行,剩余ASM磁盘空间有多大。3)数据库的参数是否正常,数据库的参数近期是否被修改过。4)数据库的表空间大小,是否有表空间快满1.表空间增长是否过快(系统表空间是否增长过快)。5)是否有业务衣创建在rSYSTEM式空间上,审计表是否在SYSTEM表空间上。6
14、)RMAN备份是否过期,备份是否可用,是否有控制文件的备份。7)数据库JOB是否有运行错误。8)数据库的告警日志是否有异常告警,例如ORATO30、ORA-4031、ORA-60、0RA-600.ORA-OI555等。9)数据库归档空间、闪回恢复区是否足够。10)是否有非常耗班资源的SQ1.曾经运行过,系统是否有VERSlONCOUNT过高的SQ1.。11)DG,OGG是否运行正常,归档日志是否正常传递到TARGET端。12)数据库是否开启了审计?13)数据库有哪些普通索引、分区索引是失效的,系统是否有很大的索引从未使用过。14)系统有哪些大表没有进行分区,哪些分区表的分区数过多,哪些分区表的
15、各分区大小严重不均匀。15)系统格.哪些外键没有创建索引,系统组合索引列个数过多。16)系统有哪些表使用了过时字段,例如1.ONG、CHARo17)系统有哪些表上创建的索引数过多。18)系统拥有DBA角色的用户是否有变动。19)近期是否有用户频繁使用错误密码进行登录系统。20)表或索引是否含有很高的并行度。21)系统是否含有无效的触发器。22)系统是否含有CACHE值小于20并且已经产生等待的序列。23)系统近期是否含有异常的等待事件。24)系统是否含有登录时间很长却没有响应的会话。25)系统是否含有统计信息过旧或从未收集过统计信息的表和索引O26)系统有哪些全局临时表被收集了统计信息。27)系统自动收集统计信息的JOB是否被禁用。28)系统AWR、ASH功能