《数据库程序员面试分模拟题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/crsct1starthasalterextractextl,beginnow第二种办法是重新初始化,重新初始化过程如下。源库查询到当前的SC:SQ1.SE1.ECTCURRENTSCNFROMVSDATBASE;CURRENTSCN12242466771468基于SCN导出所需要的数据:expdpXXX/XXXdirectory1DMPdumpfi1e=xpadb_20160
5、125.01.dmp1.oGFl1.E=XPadb_20160125.logTAB1.ES=BASE_ACT10NPOWER,BASE_BANKF1.ASHBACK_SCN=12242466771468目标应导入所需要的数据:impdpXXX/XXXDTRECTORY=OGGDDUMPFI1.E=Xpadb20160125_01.dmp1.OGFI1.E=impdp.xpadb_20160125_01.logREMAP_SCHEMA=xpadb:xpadrptREMAP-TAB1.ESPACE=xpaddat:XPaddata标库重新开启应用进程:GGSG(HPHPj5IanrePliGUgg
6、s,Ifieran12242W7714tt考点OGG10. SCN可以分为哪几类?正确答案:SCN可以分为4类,系统检查点SCN(SySteinCheCkPOintSCN)、文件检查点SCN(DatafiIeCheckpointSCN)开始SCN(StartSeN)和结束SCN(StoPSCN),参考下表。分类R!介青浮角SCN域出ttt三XuCbcckpoini0ra11ef3l2t!xrro5SystanCwIiaSCN,该SCNM三fi.当姓茹嬲的SCNW肺,苗数毗于只t豚用松螭就怆加SCNSE1.ECTCHECKPOIOT,CHANGFROMVSDATAfiASE文件收数SCN翻好娴读
7、懿环贩i次树泄砧按作曲SCN.触.将表如励只速、BEGINBACKUP或麻个雕文件M力OFF1.INE9SE1.ECT曲CHEeKpolN1.CHANGE*TO_CHAR(CHECKPO!NTilME5YYYdM-DDHH24MSylcPTiMEFROMVWATAF11.E;常文帙SCN)醮好头在新CWrtM,OKlC会更新勰林个雕文缺的SUflSCN(注也不处按期文件中),出个SCN存在的目的总也代骷部E动过则耍嗣瓢介质敢(M曲Reway).蟒的悯过肿,SamQWkP向SCN=DaafikChaiPOinlSCN=SwSCNWOra:卜联联可以除启动饱款稚醺的的M殿,他映颗三居中有一个不周!
8、:么镰艮鼓介轴.OnA税就肿酰麻陋5MM艘.然后再M是橘费嫩也取SE1.ECTFliB.CHECKPOlN1.CHANGE*FromvsdatafilE-HEADER;MiKSCN物收件EndSCN核疑希加懿脱就附廓酸瞰嬲if(3arKCRIOTWr).:IiEndSCN小爷FSttrtSCN的H恢,S2tmil.fftffitfiEStrtUT.fREADWRfTE狭砧ONUNEEndSeN学为空,Itl在魏钟常关闭的做秣极蜻EndSCN.ISfc.EndSCNSE1.ECTFWtIJtfTOIANGKFKOMVSDAAFI1.E;fi*fecrs/u11/(Orac1e12.1.0.2)下
9、面的crsconfig-dirs和crsconfig_fiIeperms文件中记录了整个$GRIDJOME下面的文件和目奈的相关权限。可以通过命令cluvfycompsoftware-nal1-verbosem来校验集群的权限是否正确。所以要解决这个问题其实并不难,大致可以通过如下几种方法来解决:1)根据MOS文档提供的建议,通过SGRID_HOME/crs/install/rootcrs.pl-init或rootbas.pl-init进行解决。rooters,pl-init是在PSUI1.2.0.3.6下执行的,如果PSUVI1.2.0.3.6,则可以执行如下两条命令来实现同样的效果。/cr
10、s/instal1/rootcrs.pl-unlock/crs/instal1/rootcrs.pl-patch2)采用MOS文档1515018.1上提供的脚本在正常库上生成脚本,然后将生成的脚本在异常库上执行,从而来修复权限问题。3) OracIe1lgR2可以删除CRS的配置,然后重新运行root,sh即可。如果OCR和数据库不在同一个磁盘组里,那么重新运行root,sh脚本并不影响数据库,所以无须担心。$GRID_HOME/crs/install/rooters,p1-deconfig-force-verboseSGRlDJIOMEZroot.sh4)MOS文档1515018.1上提供了
11、一个修复脚本:permission,pl0可以根据该脚本来修复。在安装有Gl的环境下,权限、属主是严格被设定的,任何对它们的错误修改容易引发一系列的问题,而且这些问题往往都很诡异,很难按照常规的思路去诊断。一旦出现权限的问题,作者建议按第1)和第3)种方式来修改。如果可执行文件$0RACUUioMEbinoracle的属主或权限设定出了问题,那么可能会造成很多问题。例加,无法登录到数据库、Ora-600错误、“TNS-12518:TNS:1istenercouldnothandoffclientconnection1.inuxError:32:Brokenpipe”ORA-12537:TNS:
12、connectionClosedw访问ASM磁盘出错等。解决办法很简单,可以在grid用户下运行SetaSmgidWraP命令重新配置$0RAC1.EJ0VEbinoracle可执行文件的权限和属主,或者直接将oracle文件的权限修改为6751。S0RC1.EJ10MEbinoracle可执行文件正确屈主应该是OraCIe:asmadmin,并且权限必须有S共享才可以,如下:froo(ctchlhr)SUtaehsetas3*11p0hpl12jriibmsas11gidw!rac岖领Mlr、Ssas11ci(hpo.xildbtane-lin婵向code5rrxIgridansiaUXOW
13、inJe520i5M1.wHgridttngleMO软11hlhr中ccd6751bpbMrtlll2Q%*J而ECkIroCegOTewhf*UA1.厢OradiPnXiUCdl2,QmeJ,t0deTwSri-X1codesradmin2J239姻Ajr21205MhaPpIm岫11xb加IlwbbOmeJbinbradeMorclbF&M:种OradCi11xiMH20WogJ比J三gl,删除其中任何一个文件都会很快。因为其宜接的物理文件块没有被删除,只是删除了一个指针而已。当INODE的引用数N=I时,删除文件时需要把与这个文件相关的所有数据块清除,所以会比较耗时。18. VySQ1.
14、支持事务吗?正确答案:在缺省模式下,MySQ1.是AIrrOCoMMIT模式的,所有的数据库更新操作都会即时提交。这就表示除非显式地开始一个事务,否则每个查询都被当作一个单独的事务自动执行。但是,如果MySQ1.表类型是使用InnoDBTabIeS(或其他支持事务的存储引擎),那么MySQ1.就可以使用事务处理,使用SETAiJTOCoMMlT=O就可以使MySQ1.运行在非AUTOCoMMIT模式下。在作AUToCOMMIT模式下,必须使用COMMlT来提交更改,或者使用RO1.1.BACK来回滚更改。需要注意的是,在MySQ1.5.5以前,默认的存储引擎是MylSA2M(从MySQ1.5.
15、5开始,默认存储引擎必InnODB),而VylSAM存储引擎不支持事务处理,所以改变AUTOCOMMIT的值对数据库没有什么作用,但不会报错。所以,若要使用事务处理,则一定要确定所操作的表是支持事务处理的,如InnODB。如果不知道表的存储引擎,那么可以通过杳看建表语句来确定表的存储引擎。考点存储引擎19. 什么是数据库三级封锁协议?正确答案:众所周知,基本的封锁类型有两种:排它锁(X锁)和共享锁(S锁)。所谓X锁是事务T对数据A加上X锁时,只允许事务T读取和修改数据A。所谓S锁是事务T对数据A加上S锁时,其他事务只能再对数据A加S锁,而不能加X锁,直到T释放A上的S锁。若事务T对数据对象A加
16、了S锁,则T就可以对A进行读取,但不能进行更新(S锁因此又称为读锁),在T释放A上的S锁以前,其他事务可以再对A加S锁,但不能加X锁。从而可以读取A,但不能更新A。在运用X锁和S锁对数据对象加锁时,还需要约定一些规则,例如,何时申请X锁或S锁、持锁时间、何时释放等,称这些规则为封锁协议(1.oCkingProtocol)0对封锁方式规定不同的规则,就形成了各种不同的封锁协议。一般使用三级封锁协议,也称为三级加锁协议。该协议是为了保证正确的调度事务的并发操作。三级加锁协议是事务在对数据库对象加锁、解锁时必须遵守的一种规则。下面分别介绍这三级封锁协议。一级封锁协议:事务T在修改数据R之前必须先对其
17、加X锁,直到事务结束才释放。事务结束包括正常结束(COMMIT)和非正常结束(RO1.1.BACK)。一级封锁协议可以防止丢失修改,并保证事务T是可恢复的。使用一级封锁协议可以解决丢失修改问题,在一级封锁协议中,如果仅仅是读数据而不对其进行修改,是不需要加锁的,它不能保证可重夏读和不读“脏”数据。二级封锁协议:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,读完后方可释放S锁。:级封锁协议除防止丢失修改,还可以进一步防止读“脏”数据。但在二级封锁协议中,由于读完数据后即可释放S锁,所以它不能保证可重复读。三级封锁协议:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,直到事务结束
18、才释放。三级封锁协议除防止了丢失修改和不读“脏”数据外,还进一步防止了不可重且读。考点数据库三级封锁协议和两段锁协议20. 1.Par和D1.Par分别是什么?正确答案:1.Par(1.ogicalPartitions,逻辑分区)是指将一个物理的服务器划分成若干个虚拟的或逻辑的服务器,每个虚拟的或逻辑的服务器运行自己独立的操作系统,有自己独享的处理器、内存和I/O资源,系统资源(如CPU、内存和I/O)在不同的系统分区之间移动时,需要所影响的系统分区重新引导。动态1.Par(Dynamic1.ogicalPartitions,D1.Par)可以在不同的分区之间移动资源时,不影响分区的正常运行,即不需要重新引导分区,这将大大提高应用的灵活性和系统的可用性。1.Par的配置和管理是通过硬件管理控制台(HardWareManagementConsole.HMC)来实现的。