数据库程序员面试分类真题18.docx
数据库程序员面试分类真题18简答题1. OGG环境中如何使用OS命令?正确答案:可以使用Sh命令临时执行OS命令,如F:GGSCIrti6J)2>shpsc>pmonoracleoracleoracle119061005:45?1三I薇01!:I9pu/l130681三01!:I9PWl(0:00:02oraj三a.orcllhr00:00:00Sh-cps-efigrepPKffl00:00:00grepFKn考点OGG2. OGG的告警口志文件的位置在哪里?正确答案:OGG的告警日志文件为$OGGIOMEggse.log,如下:IoQdcgorchlhr-JSoiSOGGJiOMEone蝇瞰hr骂呼ecl»$OGG_HOMEl*u01.,ggllorad咯Mwggll)SHHggw彻2OI5-O6-WI43tt2INFOOGGH)O953OradeGokknGucMwerforOrade,rep.PnItPurgingkghyfetnggusr.GGS.DDlJ11SToldatian2OI5<15-251330.02245146:0ws(Wesdftomggu$r.GGS_DD1._HIST.2015-O6-(14;IM2KFOOGJxl953OrxkGoIdcnGiicMlWffixOrade111r.p1111:Puling魄toaayf11xnggusT.GGS.DD1._HlST_A1.Toldffn2O155-2313:3(HQ52?»0rowddcMdfromggastGGS.DD1.HlST.A1.T.2015-06-(I43O2KFOOGGH)W53OradcGoMenGueMiccrfirOade,呼PfmPurejngloghyfrccnggw.GGS.MARKEROldtnhln20505-2513r三2255577:Orousddctdfrom啊.GGS_MARKER.考点OGG3. 1.ogdump工具的作用是什么?正确答案:1.ogdump(1.ogFileDumpUtility)是一个OGG白带的trail文件分析工具,而且能加深对OGG工作原理的理解,非常值得花时间来研究它。1.ogdUmP组件默认在安装目录,是个可执行文件。直接输入IOgdUmP按回车键即可进入1.OgdUmP界面。考点OGG4. 在一套曳制环境中使用不同版本OGG需要注意什么问题?正确答案:分为以卜几种情况:1)若源端OGG版本低,目标端OGG版本高,则此种配置不需要做任何的额外改动,与两端是相同OGG版本的同步是完全一样的参数设置。2)若源端OGG版本高,目标端OGG版本低,则此种配置需要在源头的抽取进程和传输进程的参数文件中设置TrailFiIe的格式,设置为与目的端OGG版本一样的格式,如下:EXTTRAIKwailfile>,FORMATRE1.EASE10.0RMTTRAIKtrailfile>,FORMATRE1.EASE10.0注意,以上命令中的10.0是目的端OGG的版本号。考点OGG5. 错误“0GG-00446Couldnotfindarchivedlogforsequence”如何处理?正确答案:如果面试官问到维护OGG曾经碰到的一次故障处理过程,那么就可以拿这个错误作为案例来说明。OGG-OO446主要是归档文件丢失引起,处理办法就是将缺失的归档日志找回来。如果找不到所需归档日志,那么可以按照如卜2种办法来处理。第一种办法是改变抽取进程的时间,但这可能会导致数据不一致,执行方法如下:GGSCi(HP-HP)l>alterextractextl,beginnow第:种办法是重新初始化,重新初始化过程如下。源库查询到当前的SCN:SQ1.>SE1.ECTCURRENT_SCNFROMVSDATABASE;CURRENT_SCN12242466771468基于SCN导出所需要的数据:expdpXXX/XXXdirectory=DMPdunpfile=xpadb2016012501.dmp1.OGFI1.E=Xpadb20160125.logTAB1.ES=BASEACTIONPOWER,BSEBANKF1.ASHBACKSCN=12242466771468目标库导入所需要的数据:impdpXXX/XXXDIRECTORY=OGGDDUMPFI1.E=XPadb2016012501.dmp1.OGHI1.E=impdp.xpadb_20160125_01.logREMAP.SCHEMA=xpadb:xpadrptREMAP-TAB1.ESPACE=Xpaddat:XPaddata目标库重新开启应用进程:GGSOOPHPll>S3rt侬ii期,血网12242¼677!¼8考点OGG6. RMN是什么?RVAN的特点有哪些?正确答案:为了更好地实现数据库的备份和恢熨工作,Oracle提供了恢熨管理器(ReCoveryManager,RMA)。RMAN是一个nJ以用来备份、恢复和还原数据库的应用程序,是随Oracle服务器软件一同安装的Oracle工具软件,通过执行相应的RMAN命令可以实现备份和恢复操作。RMA可以用来备份和恢复数据库文件、归档口志、控制文件和系统参数文件,也可以用来执行完全或不完全的数据库恢复。RMAN有三种不同的用户接口:COMMANDUNE方式、GUl方式(集成在OEM中的备份管理器)、API方式(用于集成到第三方的备份软件中).RMAN具有如下特点:1)功能类似物理备份,但比物理备份强大N倍。2)可以把备份打包成备份集,也可以按固定大小分割备份集。3)备份与恢任的过程可以自动管理。4)可以使用脚本(存在RecoveryCatalog中)。5)RMAN会检测和报告损坏的数据块。6)可以跳过未使用的数据块。在执行RMAN备份时,RMN不会备份从未被写入的数据块。而传统的备份方法无法知道已经使用了哪些数据块。7)备份压缩,也可以压缩空块。RMA使用一种OraCIe特有的二进制压缩模式来节省备份设备上的空间。尽管传统的备份方法也可以使用操作系统的压缩技术,但RMAN使用的压缩算法是定制的,能够最大限度地压缩数据块中一些典型的数据。8)执行增量备份,可以在块级别上实现增量。如果不使用增量备份,那么每次RMAN都备份已使用块:如果使用增量备份,那么每次RMAN都备份上次备份以来变化的数据块,这样可以节省大量的磁盘空间、I/O时间、CPlI时间和备份时间。9)块级别的恢复。可以只还原或修夏标识为损坏的少量数据块。在RMAN修复损坏的数据块时,表空间的其他部分以及表空间中的对象仍可以联机。10)在备份时不需要将表空间置于热备份模式。11)可以使用RMAN来测试备份而不需要实际还原它们。考点RMAN7. RMAN可以用来备份哪些文件?不能用来备份哪些文件?正确答案:RMAN可以用来备份:数据库:包括数据文件、控制文件、SPEl1.E(ServerParameterFiIe)文件;表空间;归档文件;备份集。RMAN不能用来备份:联机日志文件(OnlinCRedo1.ogs);非READ/WRITE状态的可传输表空间;PFI1.E(ParameterFiIe)文件。考点RMAN8. 物理备份和逻辑备份分别是什么?正确答案:物理备份是指将数据库的所有物理文件完整复制到备份位置的一个过程。物理备份是所有物理文件的一个副本,例如,数据文件、控制文件、归档日志等。该副本能被存储在本地磁盘或磁带。物理备份是备份或恢境的基础,包括冷备份(非归档模式)和热备份(归档模式)。物理备份既可以在数据库打开的状态下进行,也可在数据库关闭的状态下进行,但是逻辑备份和恢复则只能在数据库打开的状态下进行。逻辑备份是指使用工具exp或expdp将数据库时象的结构和数据导出到:进制文件的过程。当数据库对象被误操作而损坏后就可以使用工具imp或impdp利用备份的文件把数据对象导入数据库中进行恢夏。逻辑备份是物理备份方式的一种补充,多用于数据迁移。考点RMAN9. 若一张表被执行了TRUNcVrE操作,则如何恢复数据?正确答案:在求职数据库相关的岗位的时候,经常会被问到一个问题:在开发或维护过程中误操作TRUNCATE了一张表,如何恢复?这个时候应该由简到难地回答,可以按照如下的步骤进行回答:1)是否有测试库,测试库的表数据和当前数据是否一-致,若一致,则可以考虑从测试库把衣数据导入被删除的库中。2)是否有exp或expdp逻辑备份,若有,则可以导入被删除的库中。3)是否有RVAN备份,若有,则可以将数据恢熨到其他地方,然后将数据库exp出来,最后导入被删除的库中。4)数据库是否开启了闪回,如果开了闪回则可以利用闪回数据库的特性找回数据。5)利用表空间基于时间点的恢复技术(TSPITR)来恢复。6)是否有归档,若有则11J以采用1.ogMiner进行日志挖掘。7)若以上这些办法都不能恢复,则可以尝试无备份情况下的恢复。这里推荐两种办法,fy_recoverdata包和gdul工具,关于这两种工具的具体使用案例可以参考作者的博客。考点RMAN10. Oracle的SCN是什么?正确答案:SCN(SystemChangeNumber,系统改变号)是一个由系统内部维护的序列号,SCN在数据库全局是唯一的。当系统需要更新的时候自动增加,它是系统中维持数据的一致性和顺序恢复的重要标志,是数据库中非常重要的一种数据结构。在数据库中,SCN作为一种时钟机制来标记数据库动作,比如,当事务发生时,数据库会用一个SCN来标记它。在数据库中,SS可以说是无处不在,例如,数据文件头、控制文件、数据块头、口志文件等都标记着SCN。也正因为如此,数据库的一致性维护和SCN密切相关。不管是数据的备份还是恢复都离不开SC1.由于SCN描述的是数据致性的状态,所以,它会在各种涉及数据-一致性的场合中起到重要作用。考点RMANU.SCN可以分为哪儿类?正确答案:SCN可以分为4类,系统检查点SCN(SySteinCheCkPOintSCN)、文件检查点SCN(DatafiIeCheckpointSCN)、开始SCN(StartSCN)和结束SCN(StOPSCN),参考下表。分类R!介青浮角SCN域出ttt三XuCbcckpoini0ra11ef3l2t!xrro5SystanCwIiaSCN,该SCN½M三fi.当姓茹嬲的SCNW肺,苗数毗于只t豚用松螭就怆加SCNSE1.ECTCHECKPOIOT,CHANGFROMVSDATAfiASE文件收数SCN翻好娴读懿环贩i次树泄砧按作曲SCN.触.将表如励只速、BEGINBACKUP或麻个雕文件M力OFF1.INE9SE1.ECT曲CHEeKpolN1.CHANGE*TO_CHAR(CHECKPO!NTilME5YYYdM-DDHH24MSylcPTiMEFROMVWATAF11.E;常文帙SCN)醮好头在新CW"rtM,OKlC会更新勰林个雕文缺的SUflSCN(注也不处按期文件中),出个SCN存在的目的总也代骷部E动过则耍嗣瓢介质敢(M曲Reway).蟒的悯过肿,SamQWkP向SCN=DaafikChaiPOinlSCN=SwSCNWOra:卜联联可以除启动饱款稚醺的的M殿,他映颗三居中有一个不周!:么镰艮鼓介轴«.OnA税就肿酰麻陋5MM艘.然后再M是橘费嫩也取SE1.ECTFliB.CHECKPOlN1.CHANGE*FromvsdatafilE-HEADER;MiKSCN物收件EndSCN核疑希加懿脱就附廓酸瞰嬲if(3arKCRIOTWr).:IiEndSCN小爷FSttrtSCN的H恢,S2tmil.f½ftffitfiEStrtUT.fREADWRfTE狭砧ONUNEEndSeN学为空,Itl在魏钟常关闭的做秣极蜻EndSCN.ISfc.EndSCNSE1.ECTFWtIJtfTOIANGKFKOMVSDAAFI1.E;fi*fe<fe三mftwO勤,当射g库儆将动的咻,版EndSCN科FS1SCN.醐时用SMON那'麒为政府jSCN的今JUiMJSE1.ECTAfI1.EUNAMEjSEIiCTCHECKPOlN1.CHANGEVFROMVSDATABA阳SYSTC此CKP1.SCN.A.CHKXPOIKTCHANGEPDF_CKP1.sdAuS1.CHANG岳EMSaB11IECKPO(11.ANGES.SCN.B1RECOVrER.45TXUSFROMVSDArAn1.ErSDATAFI1.E.HEADERBWHEREA.Fl1.Es=BfI1.K;考点RMAN12. 如何查看系统当前SC?正确答案:Oracle数据库提供了两种直接查看系统当前SCN的方法,一种是通过查询VSDTBSE中的CURRENTSCN歹J,另外一种就是通过DBMS.F1.ASHBACK.GET_SYSTEM_CHANGE_N1.MBER得到,如下:SYSJcIhrchSE1.ECTCURRn1.SCNSmDBMS_F1.AsHBACK.GH_SYSTEM_CHANGENMBERSCN2,T1MESTAMP叱SCN(SYSD烟SCNJFROMVSDATABASE:SQISC2SCOU95三88I49S三88U9SW三一般情况卜,SC1列和SCN2列的结果一致,但在系统比较繁忙的时候,可能SCN2比SCNl稍微大一点。考点RMAN13. SCN与时间戳如何相互转换?正确答案:一个SCN值总是发生在某一个特定的时刻,只不过由于粒度的不一样,通常会存在多个SeN对应同一个时间戳的情况。OracleIOg提供了两个新函数用于SCN和时间戳进行相互转换,这两个函数分别是SCN_TO_TJMESTAMP和TIMESTAMPjc1.SC1.通过对SCN和时间戳进行转换,极大方便了Oraele的很多备份和恢复过寝。DSCNTOTIMESTAMP(sennumber):将SCN转换成时间戳。2) TIMESTAMPTOSCN(timestamp):将时间践转换成SCN0通过以上这两个函数,最终OraCIe将SCN和时间的关系建立起来。在OracleIOg之前,是没有办法通过函数转换得到SCN和时间的对应关系的,般可以通过1.ogMiner分析口志获得。但是这两种函数转换要依赖于数据库内部表SMON_SCN_TIME,对于久远的SCN则不能转换。考点RMAN14. 恢复分为哪些类型?正确答案:恢熨分为实例恢妥和介质恢复,具体分类如下图所示。1.实例恢复完全恢k也三gttffi三翦一阶品缓存恢梵(CxheRecover)-)或前沼(ROmngFOrWard)K二阶凯国法(RoIIingBxkI或事务恢呈(TransaciionReco)不完全坎复基千SCN的恢复基干胸的帙究Sfowmi基拜消的瞰考点RMAN15. Oracle数据库的介质恢其包含哪两个过程?正确答案:介质恢豆是基于物理备份恢复数据,它是Oracle数据库出现介质故障时恢复的重要保障。介质恢红包括块恢竟、数据文件恢第、表空间恢复和整个数据库的恢复。介质恢复主要是针对错误类型中的介质失败,如果是少量的块失败,那么可以使用介质恢复中的块恢复来快速修复:但如果是其他情况的丢失,那么需要根据具体情况,可使用数据文件恢复、表空间恢复甚至全库恢复。Oracle数据库的介质恢复实际上包含了两个过程:数据库还原(RESTORE)与数据库恢复(RECOVER),具体如下:1)数据库还原是指利用备份的数据库文件来替换已经损坏的数据库文件或者将其恢复到一个新的位置。RMAN在进行还原操作时,会利用恢复目录(有建立恢复目录的话就使用目标数据库的控制文件)来获取备份信息,并从中选择最合适的备份进行修赁操作。当选择备份时,有以下两个原则:选择距离恢熨目录时刻最近的备份;优先选择镜像熨制,其次才是备份集。2)数据库恢复是指数据文件的介质恢复,即为修复后的数据文件应用联机或归档日志,从而将修复的数据库文件更新到当前时刻或指定时刻卜的状态。在执行恢复数据库时,需要使用RECOVER命令。还原是将某个时间点的数据文件的副本再拷贝回去,还原后的数据库处于不一致的状态,或不是最新的状态,还需要执行恢复操作。恢复就是使用归档口志文件和联机RedO口志文件将不一致的数据库应用到一致性状态。需要注意的是,还原只是建立在数据库备份的基础版木上,例如,如果数据库备份包括0级备份和很多1级备份,还原只是应用0级备份,恢复过程会根据情况自动应用1级备份或RCdo日志将数据库恢复到一致性的状态。考点RMAN16. 数据库的恢熨过程分为哪两类?正确答案:数据库的恢梵过程根据恢复数据的程度又分为好恢复(COinPIeteReCove“)和不完全恢复(InCOmnleteRecoverv),如下图所示。回1)完全恢复是一种没有数据丢失的恢复方式,能够恢复到最新的联机Redo日志中已提交的数据。在传统恢复方式中,因介质失败破坏了数据文件之后,可以在数据库、表空间和数据文件上执行完全介质恢复。2)不完全恢复是一种与完全恢复相反的恢复方式,是一种丢失数据的恢复方式,也称为数据库基于时间点恢旦(POintin-TimeRecovery),是将整个数据库恢第到之前的某个时间点、日志序列号或者SCN号。如果是完全恢复,那么数据库就是最新的一致性状态;如果是不完全恢复,那么数据库就是非最新的一致性状态。对于非归档模式的数据库来说,不能执行不完全恢复。不完全恢复意味着会缺失一些事务处理,即恢复目标时间和当前时间之间所做的所有数据修改都会丢失。在很多情况下,这正是想要的结果,因为可能需要撤销对数据库进行的一些更改。恢复到过去的某一时间点是删除误更改的一种方法。不完全恢复的选项见下表。不完全恢复方式RMAN选项用户管理备份选项恢复到某个时间点UNTI1.TIMEUNTI1.TIME恢复到某个日志序列号untilsuquenceUNTI1.CANCE1.恢复到某个sc号UNTI1.SCNUNTI1.CHANGE考点RMAN17. Oracle数据库的不完全恢复有哪些类型?正确答案:不完全恢复的几种类型见下表。分类IfHfnlW(Time-teedRcowoy)利战欣妙雕期月届SETUNn1.TIME附舸以也用多片表示方.科叱DATEM模徜M.ifm三SYSDATE-1m刖RuNA1.1.OCATECHANNEICITYPEDK;A1.1.OCATECHANNE1.C2TYPEDISK;STARTITFORCEMOUNT;SQl'A1.TERSESSIONSETN1.S.DATE.FORMAT=rYYY-MMDOHH24:MI:SS"Setuntiltime-TO_DATEC加勺-及OJYYYY-MM-DDHH245fl:SST;RESTOREDATABASE;RECOVERDATAB.SE;A1.TERDATABASEOPENRESET1.OGS;RE1.EASECHANNaCl;RE1.EASECHANNE1.e2;SCi三M(CtangetesedItona)格翻处解蚓SCNRUNShutdownimmediate;STARTOPMOUNT;SErUKn1.SeN324394;RESTOREDAABASE;RECOVERDxrABASEA1.TERDATABASEOPENRESET1.OGS;)ftftOS三½ttRcdoBl号(WtffiRMANIfflR),IfffW由坏完钺JI须雕某个R曲线股呼朋.1:么税个物号嬷晌MR的所有好的邠EU眼要的,¥个岫版好同,炖麴的将列号可售比折定的Iwo自助切号胱好日娜朋触(期SqutKCRtCOvay)RfNSHUTDOWNIMMEDIATtSARWPMOUNT;SETUN111.SEQUENCE!O35OTHREADI;RESTOREDIABASE;RECO三DATABASE:A1.TIRDATABASEOPENRESET1.OGS:)奸取福触当用户荚交CANCE1.后仲止恢矍(Cd-taedrmanwj».oRECoVERDEBASEUN111.CANCT1.USINGBACKUPCOKntO1.H1.E;RaoVay)ffiSQ1.Plus)考点RMAN18. 什么是实例恢复?正确答案:实例恢复可确保数据库在一个实例失败后仍能回到一个一致性的状态。Reclo志记录了对实例的所有更改。单实例数据库拥有一个重做线程,而一个RAC数据库拥有多个重做线程,且RAC数据库的每个实例拥有一个重做线程。当事务提交时,1.GWR将内存中的重做条目和事务SCN同时写入联机RCdO日志。但是,DB际进程只在最有利的时机将已修改的数据块写入数据文件。所以,未提交的更改可能会暂时存在于数据文件中,而已提交的更改也可能还不在数据文件中。当数据库突然崩溃,而还没有来得及将BUfferCaChe里的脏块刷新到数据文件里,同时在实例崩溃时正在运行着的事务被突然中断,则事务为中间状态,也就是既没有提交也没有回滚。这时数据文件里的内容不能体现实例崩溃时的状态。这样关闭的数据库是不一致的。当下次启动实例时,OraCIe会由SMON进程H动进行实例恢复。实例启动时,SM0进程会去检查控制文件中所记杀的、每个在线的、可读写的数据文件的EndSCN号。在数据库正常运行过程中,该EndSCN号始终为NU1.1.,而当数据库正常关闭时,会进行完全检查点,并用检查点SCN号更新该字段,所以可以通过EndSCN号是否为NU1.1.来判断是否需要实例恢熨。在数据库实例崩溃时,OraCIe还来不及更新该字段,则该字段仍然为NIJ1.1.。当数据库再次启动时,SMoN进程发现该字段为空时,就知道实例在上次没有正常关闭,于是由SMoN进程就开始进行实例恢熨了。对于单实例的数据库而言,实例恢复一般是在数据库实例异常故障后、数据库重启时进行,当数据库执行了SHUTI)OW'ABORT或者由于操作系统、主机等原因宕机重启后,在执行A1.TERDATABASEOPEN的时候,就会自动做实例恢复。在RAC环境中,如果某个实例宕机了,那么剩下的实例将会代替宕掉的实例做实例恢复。除非是所有的实例都宕机了,这样的话,第一个执行A1.TERDATABASEOPEN的实例将会做实例恢复。这也是在RAC环境中,RedoR志是实例私有的组件,但是Redo日志的文件必须存放在共享存储上的原因。考点RMAN19. Oracle数据库的实例恢更分为哪两个阶段?正确答案:实例恢复的第一阶段称为前滚(RollingForward)或者缓存恢复(CacheRecovery):实例恢复的笫二阶段称为回滚(RollingBaCk)或者事务恢复(TransactionRecovery)0前滚和回滚是OraCIe数据库实例发生意外崩溃、重新启动的时候,由SMON进行的自动恢复的过程。所谓的前滚,是应用Redo来恢复BUfferCaChe的数据,将BUfferCaChe恢复到CraSh之前状态,所以此时BUfferCaChe中既有崩溃时已经提交但还没有写入数据文件的脏块,还有事务被突然终止而导致的既没有提交又没有回滚的事务的脏块(也就是没有CoMMIT,但是DB际已经将改变的数据刷新到底层磁盘)。前滚完成之后就可以确保联机RedoR志中所有己提交的事务操作的数据写回到数据文件中。接下来,前滚之后,任何未提交的更改必须被撤销,而回滚是在数据库做完前滚操作后并打开数据库的情况下完成的,SMON会利用Undo信息将未提交的事务全部进行回滚。具体来说,SMON进程在完成前滚后,查看Undo段头(Und。段的第1个数据块)记录的事务表(每个事务在使用Undo块时,首先要在该Undo块所在的Undo段头记录一个条目,该条目里记录了该事务相关的信息,其中包括是否提交等),将其中既没有提交也没有回滚,而是在实例崩溃时被异常终止的事务全部回滚。考点RMAN20. 实例恢复和介质恢复的区别是什么?正确答案:Reclo口志是OraCIe为确保已经提交的事务不会丢失而建立的一种机制。实际上,Redo日志的存在是为两种场景准备的,一种称为实例恢复(InStanCeRecovery),另种称为介质恢复(VediaRecovery)<.Red。日志的数据是按照THREAD来组织的,对于单实例系统来说,只有一个THREAD;对于RAC系统来说,可能存在多个THREA及每个数据库实例拥有一组独立的Rcdo日志文件,拥有独立的1.OgBuffer,记录到一个THREAD的Redo日志文件中。有关实例恢复和介质恢复的区别见卜表。分类实例恢复数据库没有正常关闭(即非一致性关闭,例如断电、硬件故障、关键后台进程出现故障(PMON、1.GWR等),执行了SHUTDOWNABORT或STARTUPEORCE命令)会导致数据库实例在重启时自动使用联机Redo日志和Undo数据执行实例恢复,具体恢复的工作是由SMO这个后台进程来完成的,SMON自动福益应用联机RedO口志文件中的条目和读取UndO表空间中的数据完成实例恢复而不需要任何用户干侦。一个单实例数据库或者RAC数据库所有实例失败之后,第一个打开数据库的实例会自动执行实例恢熨,这种形式的实例恢且称为崩溃恢竟(CrashRecovery)<.在RAC环境中,若RAC数据库的一部分但不是所有实例失败后,在RAC中幸存的实例自动执行失败实例的恢复某个实例的变化会被独立地介质恢熨介质恢复是当存储的数据文件出现故障(例如,数据文件丢失、损坏)的时候进行的,介质恢复无法自动进行,必须手动执行RECOVERDATABASE或者RECOVERDATAFl1.E命令来实施。在做介质恢复的时候,需要使用归档日志。介质恢复是基于物理备份恢复数据,是OraCIe数据库出现介质故障时恢复的重要保障当SystemCheckpointSCN.Datafile发生当EndSCN不等于StartSCN的时候,数据时机库需要做实例恢复。若数据库异常复目用源程否动否要归恢的的利资过是自完成是需开启档关闭,则EndSC号将为空,数据库就需要做实例恢复在数据库发生故障时,确保BUfferCaehe中的数据不会丢失:确保数据库可以处于一致性状态。只有当联机Red。口志文件和UndO表空间的介质没有被破坏才能确保实例恢复能够成功OnlineRedo、ActiveRedO和UndO利用Red。前滚(重做);打开数据库;利用Undo回滚自动完成不需要开启归档模式CheckpointSCN和StartSCN三者中有一个不同时就需要做介质恢复当数据文件发生故障时,能够恢复数据BackupSet、Archive1.og,OnIine和InaCtiVeRedo等RESTORE:RECOVER手动恢复,需要DBA干预,分为完全和不完全恢复需要开肩归档模式在系统重启后发现数据库中数据文件被rm删除了,这个时候需要执行RESTOREDATABASE和RECOVERDATABASE命令进行介侦恢复用户在8:30:00触发了5个事务,分别是TkT2、T3、T4、T5o在8:38:00之前,T3和T5完成,在8:38:00产生了一个检查点事件,此时系统将对数据的更改都写入数据文件中。在8:38:27时,出现故障,导致实例异常关闭,在8:38:00至8:38:27之间的操作仅仅记录在Rcdo日志中,并没有将这些更改写入数据文件中。当实例重新启动时,SMON将执行实例恢复。例如,在8:43:00分重启实例,SMON执行实例帙复,整个执行过程可以分为两个部分:前滚和回滚。前滚是指8:38:00至8:38:27:00之间的操作应用到数据文件上,由于这些操作都记录在Red。口志中,因此只需要从RedoH志中读取这些操作并执行即可。前滚执行完毕后,SMON进程立即打开数据库,此时,数据库处于实例异常关闭前的状态。打开数据库后进入回滚,回滚阶段是指将未提交的事务回滚,即将示例中Tl、T2和T4回滚,在8:45:00时,实例恢复执行完毕考点RMAN21. DE1.ETE/一条数据并且提交了,该如何找回?正确答案:在OraCle中可以通过闪回技术来找回已经删除并且提交,的数据。当然,除了闪回技术外还可以采用1.ogMincN使用该工具可以轻松获得RCdo日志文件包含归档日志文件中的具体内容)进行日志挖掘,找出其撤销SQ1.并执行就可以找回DE1.ETE语句删除的数据。考点RMAN22. rm-rf误操作后如何恢复数据库?正确答案:如果执行了rm-rf操作删除了所有的基于FS的数据文件,但是数据库还处于OPEN状态,那么,在这种情况下如何快速地恢复数据库呢?这里的前提条件是没有任何可用的RMAN备份、数据库冷备份等,也就是说,没有任何备份。在这种情况下可以通过系统的文件句柄号来恢复数据文件。考点RMAN23. 在丢失归档的情况下如何进行数据文件的恢熨?正确答案:如果一个表空间的数据文件损坏,在有备份的情况卜.,那么可以使用数据文件的备份进行还原,但是还需要归档文件进行恢复,才能使数据文件到达一个最新的一致性状态,从而才能打开数据库。如果需要的归档文件无法提供,比如被删除了,那么在这种情况下如何打开数据库呢?在这种情况下由于缺少归档,数据库无法恢复,但是如果与该表空间相关的数据改变很少或者基本没有改变的情况下可以通过改变数据文件头的SCN号,让其和SyStemCheckpointSCN,DatafileCheckpointSCN号一致,就可以让OraCle避开对该文件的检查,OraClC就不会去做介质恢复,而只做实例恢复,这样就可以实现完全恢复,及时打开数据库。一般来说,推进数据文件头的SCN号有两种处理办法:第一,利用BBED(BlockBrowerandEdilOr)修改数据文件头,推进SCY号来打开数据库;第二,设置隐含参数“A1.1.OWRESET1.OGSCORRUPTION*为TRUE来打开数据库,该参数默认为FA1.SE,待数据库打开后,要将该参数从参数文件中去掉,命令如下:A1.TERSYSTEMSETA1.I.OW_RESET1.OGS_CORRUPTION*=TRUESCOPE=SPFI1.E;一跳过数据库一致性检查A1.TERSYSTEMRESET"A1.1.OWRESET1.OGSCORRUPT10SCOPE=SPFI1.ESID='*'一取消该参数考点RMAN24. 数据文件OFF1.INE之后必须要做的一件事是什么?正确答案:数据文件0EE1.1NE之后必须要做的一件事就是立刻执行一次RECOVER操作,这样无论过了多久之后,在ON1.lNE该数据文件的时候就不需要执行RECOVER操作了。考点RMAN25. 差异增量备份和累积增量备份的区别是什么?正确答案:数据库备份可以分为完全备份和增量备份。完全数据文件备份是包含文件中所有已用数据块的备份。RMAN将所有块复制到备份集或映像副本中,仅跳过从未使用的数据文件块。完全映像副本可准确地再现整个文件的内容。完全备份不能成为增量备份策略的一部分,它也不能作为后续增量备份的基础。增量备份就是将那些与前一次备份相比发生变化的数据块复制到备份集中。通过RMAN可以为单独的数据文件、表空间或者整个数据库进行增量备份。增量备份是0级备份,其中包含数据文件中除从未使用的块之外的所有块;或者是1级备份,其中仅包含自上次备份以来更改过的那些块。级增量备份在物理上与完全备份完全一样。唯一区别是0级备份可用作1级备份的基础,但完全备份不可用作1级备份的基础。要使用增量备份,必须先执行0级增量备份。通过BACKUP命令中的INCREMENTA1.关健字可指定增量备份,可以指定INCREMENTA1.1.EVE1.0lo在RMAN中建立的增量备份可以具有不同的级别,每个级别都使用一个不小于0的整数来标识,也就是在BACKUP命令中使用1.EVE1.关键字指定的,例如,1.EVE1.=O表示备份级别为0,1.EVE1.=I表示备份级别为1。每次进行增量备份仅操作那些发生了“变化”的数据块。RMAN中增量备份有两种:差异增量备份(DlFFERENTlA1.)和累计增量备份(CUMU1.ATIVE),它们的区别见下表。方式关键字:说明差异增DirFERENTIA1.是将备份上次进行的同级或低级备份以来所有变化的量备份数据块,有同级备份同级,无同级备份低级馥%CUMU1.ATIVEBitfrfzr否将备份上次进行的低级备份以来所有变化的数据块差异增量备份和累计增量备份如下图所示。墓异般省份品计恤备份1)执行O级增量备份的命令为RMAN>BACKUPINCREMENTA1.1.EVE1.ODATABASE;2)执行差异增量备份的命令为RMAN>BACKUPINCREMENTA1.1.EVE1.1DATABASE;。3)执行累积增量备份的命令为RMN>BACKuPINCREMENTA1.1.EVE1.1CUMU1.ATIVEDATABASE;。可以对处于NOARCHIVE1.OG模式的数据库执行任何类型的备份(完全或增量)。当然,前提条件走数据库处于未打开状态。需要注意的是,数据库只能恢复到上次备份时的状态。只有当数据库处于ARCHlVE1.OG模式时,才可以将其恢复到上次提交事务处理时的状态。考点RMAN