oracle数据库技术第12章恢复_第1页
oracle数据库技术第12章恢复_第2页
oracle数据库技术第12章恢复_第3页
oracle数据库技术第12章恢复_第4页
oracle数据库技术第12章恢复_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十二章RMAN,可以运行RMANRECOVER命令执行恢复。状态。因为恢复和实例恢复都是自动的,所以这里不讨论这些过程。数据库的序列,控制同时发生和重做日志的定制。恢复(只对于RecoveryManager):它是由RecoveryManger使用和的信Oracle实时应用集群中通过一个活动的实例恢复一个故障的实例。文件的标记表明没有进行正常关闭,Oracle会自动执行恢复。需要恢复的文件,介质恢复会发现无事可做并且标记"norecoveryrequired"错误。需要恢复的文件,介质恢复会发现无事可做并且标记"norecoveryrequired"错误。SGA的高速缓存中的数据库缓冲区只在需要的时候才写到磁盘上,采用和回滚段,无论这些修改是否提交。对Oracle数据库的所有修改记录在联机日志上。

是等待SMON回滚死的事务,新事务可以自动恢复堵住的事务获取它们需要的行锁。实施完全恢复,无论使用那么RMANSQL*Plus,用户都必须:据库其余部分的及时点。TSPITR在用户要进行下列操作时最有用:RMANrestorerecoverRESTORE从备份集或磁盘上的映RMAN自动进行备份和拷贝的恢复和重建。例如在RMAN下执行下面令,重建和恢复SHUTDOWNIMMEDIATE;#shutsdowndatabaseRESTOREDATABASE;#restoresallRECOVERDATABASE;#recoversdatabaseusingallavailableredoALTERDATABASEOPEN;#reopensthedatabase查询返回一个错误告诉这个文件丢失)时,第一步就是使users表空间脱机,输入如下:SQL>ALTERTABLESPACEusersOFFLINESQL>RECOVERAUTOMATICDATAFILESQL>ALTERTABLESPACEusers空间及时点恢复的情况,使用Import命令。alert_SID.log显示一个或多个表包含错误的数据,怎么办?使用RMANRMANVALIDATEBACKUPRESTORE命令。测试是否可以重建一个RMAN备份。注意,这些命令不能产生任何实际的输出文件。)据情况的不同而不同。表12-1列出了各种情况和策略。丢失自备份以后所作的所有改变。带(TSDPITR种类 件中并回滚未提交数据。最后Oracle使数据文件和控制文件同步,并打开数据库。SELECT*FROM14015FILENOT021OFFLINE0示是不能用的。一个恢复的或是新建的控制文件不包含Oracle所需的正确填写FROMV$DATAFILEd,V$TABLESPACEtWHEREt.TS#=d.TS#ANDd.FILE#IN(14,15,21);#usevaluesobtainedfromV$RECOVER_FILE COLdf#FORMATCOLdf_nameFORMATa20COLstatusFORMATa7COLerrorFORMATa10SELECTr.FILE#ASdf#,d.NAMEASdf_name,t.NAMEAStbsp_name,d.STATUS,r.ERROR,r.CHANGE#,r.TIMEWHEREt.TS#=d.TS#ANDd.FILE#=/DF# TBSP_NAMESTATUS CHANGE# OFFLINE OFFLINE OFFLINE CREATETABLEASSELECTOracle将表和ALTERDATABASEBACKUPCONTROLFILETO换的磁盘上重建文件),那么在相关数据库的控制文件中必须说明这些文件的新位置。ALTERTABLESPACEusersOFFLINE重建csi_14.f文件,可以发出如下命令:ALTERTABLESPACEusersALTERDATABASECREATEDATAFILE'disk1users1'AS'disk2RECOVERDATAFILE'disk2行,直至Oracle的进程第一次需要控制文件,此时数据库和实例自动关闭。%cp/oracle/good_cf.f到其它地方。例如要把good_cf.fnew_cf.f,用户可以输入:并把没有重建的所有控制文件排除在外。例如要加入new_cf.f,可以输入:ORA-00205:errorinidentifyingcontrolfile,checkalertlogformore 带RESETLOGS打开数据库可,带RESETLOGS打开数据库重建备份控制文件到初始化参数CONTROL_FILES指定的位置。例如,如果%cp/backup/cf.bak%cp/backup/cf.bakSTARTUP不完全恢复,指定UNTILCANCEL参数,例如输入:RECOVERDATABASEUSINGBACKUPCONTROLFILEUNTILORA-00279:change55636generatedat06/08/200016:59:47neededforthread1ORA-00289:suggestion:/oracle/work/arc_dest/arcr_1_112.arcORA-00280:change55636forthread1isinsequenceSpecifylog:{<RET>=suggested|filename|AUTO|Logapplied.MediarecoveryALTERDATABASEOPEN地方都可用。如果不的话,那么Oracle使不能装配数据库。RESETLOGS选项打开数据库。CONTROLFILECONTROLFILE语句的参数。STARTUPMAXLOGFILES32GROUPGROUP2(;那么在用户对数据库进行的结构改变以后且用户已经保存了SQL命令输出后,执行了ALTERDATABASEBACKUPCONTROLFILETOTRACE行了ALTERDATABASEBACKUPCONTROLFILETOTRACE编辑ALTERDATABASEBACKUP据库中加入一个数据文件就把该文件加到CREATECONTROLFILE语句的DATAFILE子句中TOTRACE选项备份控制文ALTERDATABASEBACKUPCONTROLFILE的filenameALTERDATABASEBACKUPCONTROLFILETOTOTRACE格式或TOfilename格RECOVERALTERDATABASE LOG_ARCHIVE_DEST_1LOG_ARCHIVE_DEST指明的位SETLOGSOURCE/disk2/temp#setlocationusingSETALTERDATABASERECOVERFROM"/disk2/temp"DATABASE;#setinRECOVER %rm的名称,尽管如此你也可以用SQLALTERDATABASERECOVER语句。redo工作。例如在SQL提示下发出如下命令可整体恢复数据库:RECOVEREXCLUSIVE方式装载并关闭。RECOVERDATAFILE语句列举所有需要恢复的数据文件。例如要恢复因为需要有日志文件,Oracle会提示日志文件的名称。下面是SQL*Plus返回的信息提ORA-00279Change####generatedatDD/MM/YYHH:MM:SSneededforthread#ORA-00289SuggestionlogfileORA-00280Chang####forthread#isinsequenceSpecifylog[<RET>forsuggested|AUTO|FROMlogsource|CANCELOracle通过连接初始参数LOG_ARCHIVE_DEST_1或LOG_ARCHIVE_DEST,与LOG_ARCHIVE_FORMAT=r_%t_%s.arcLOG_ARCHIVE_DEST_1或LOG_ARCHIVE_DEST指示的目的地,而且LOG_ARCHIVE_FORMAT的值从来未改变Oracle可以提示并把日志文件自动用于磁盘数据的完全恢复。%cp/oracle/arc_dest/*STARTUPRECOVER向Oracle指明变更后的位置,可以用SET语句的LOGSOURCE参数或是ALTERDATABASERECOVER...FROMSETLOGSOURCE境变量),使其成为到多个位置的搜索路径。SQL>SETAUTORECOVERY ORA-00279:change53577generatedat01/26/9919:20:58neededforthread1ORA-00289:suggestion:/oracle/work/arc_dest/arcr_1_802.arcORA-00280:change53577forthread1isinsequence#802Logapplied.ORA-00279:change53584generatedat01/26/9919:24:05neededforthread1ORA-00289:suggestion:/oracle/work/arc_dest/arcr_1_803.arcORA-00280:change53584forthread1isinsequenceforthisrecoveryLogORA-00279:change53585generatedat01/26/9919:24:14neededforthread1ORA-00289:suggestion:/oracle/work/arc_dest/arcr_1_804.arcORA-00280:change53585forthread1isinsequenceforthisrecoveryLogMediarecoverySQL语句执行数据恢复时,Oracle在操作开始后不会提示日志文件名。你必ALTERDATABASERECOVERLOGFILEORA-00279:Change####generatedatDD/MM/YYHH:MM:SSneededforthread#ORA-00289:Suggestion:logfile1ORA-00280:Change####forthread#isinsequence#SQL>ALTERDATABASERECOVERLOGFILE'logfile1';ORA-00279:Change####generatedatDD/MM/YYHH:MM:SSneededforthread#<D%0>ORA-00289:Suggestion:logfile2ORA-00280:Change####forthread#isinsequence#SQL>ALTERDATABASERECOVERLOGFILE'logfile2';…Statementprocessed.SQL>ALTERTABLESPACEusersORA-00279:Change####generatedatDD/MM/YYHH:MM:SSneededforthread#ORA-00289:Suggestion:logfile1ORA-00280:Change####forthread#isinsequence#注意:在发出ALTERDATABASERECOVERV$RECOVERY_FILE_STATUESV$RECOVERY_STATUE中每个文件的状态。但在恢复工作结束后,就不能再对它们进行了。SQL*Plus的恢复选项(SQL语句Oralce完成一个日LogORA-27037unabletoobtainfilestatusSVR4Error2NosuchfileordirectoryAdditionalinformation3obtainfilestatusORA-27047:unabletoreadtheheaderblockoffile生"fileinconsistent"的错误。NOARCHIVELOG模式的不利因素是,进行数据恢复时,从最后一次备份到发生故障ALTERDATABASERECOVERDATABASEUNTILALTERDATABASEOPEN%cp/disk2/BACKUP/tbs*%cp/disk2/BACKUP/cf.fCONTROL_FILES=用初始化文件initPROD1.ora装载数据库STARTUPMOUNTALTERDATABASERECOVERDATABASEUNTILALTERDATABASERECOVERALTERDATABASEOPENALTERDATABASERECOVER法,异步I/O生效的系统操作与并行块恢复相比,一般少有改进。RECOVERDEGREE RECOVERDEGREE用操作系统指令在缺省位置或新的位置重建文件。例如UNIX用户重建STARTUPSELECTnameFROMSPOOLSPOOLOFFRECOVERTABLESPACEusers#恢复指定的表空间ALTERDATABASEDBWR不能再对文件写入,Oracle会自动将被损坏的文件卸载。但注意不导致任何一个SYSTEM表空间中的文件出现损坏,Oracle会自动将整个数据库卸载。以表空间USER为例:ALTERTABLESPACEUSEROFFLINE%sqlplus ALTERTABLESPACEtbs_1%sqlplusSTARTUPRECOVERDATABASEUNTIL的RECOVER命令:RECOVERDATABASEUNTILCANCELUSINGBACKUPOracleLOG_ARCHIVE_DEST_1LOG_ARCHIVE_DEST中找到的文件OPS配置且执行的是不完全恢复,或是使用了控制文件的备份,那么文件前的日志文件后,通过下面令中止恢复操作:ALTERDATABASEOPENALTERDATABASEOPEN例如要恢复到SCN100处可以用如下令:RECOVERDATABASEUNTILECHANGE的数据文件进行重构,除非文件的应用是自动运行的,否则Oracle会提示它从ALTERDATABASEOPENRESETLOGS选项打开一个数据库,所有数据文件都会产生一个新的如果是不完全的数据恢复,或是使用控制文件的备份进行的数据恢复,就要用到 只要使用了备份的控制文件,那么不管是完全恢复还是不完全恢复都要指定ALTERDATABASEOPENALTERDATABASEOPEN全恢复,在alert.log中会有如下信息:RESETLOGSaftercompleterecoverythroughchangeRESETLOGS pleterecoveryUNTILchange要使MISSINGnnnn代表的实际存在的数据文件能被,可以用改名的办法把在表空间设成只读后对它的备份(RESETLOGS前没用被再次设为读写方%cp/oracle/dbs/*%cp/oracle/backup/*STARTUPRECOVERDATABASEUNTILALTERDATABASEOPEN%cp/oracle/backup/*用RESETLOGS打开数据库后仍然有效。RECOVERDATABASESYSTEM表空间的数SYSTEM表空间的Oracle使受影响数据文件脱和/db/db3.f的新表空间。如果用户后来重建了一个控制文件备份,并通过CREATETABLESPACE操作实施介质恢复,OracleCREATETABLESPACE重做数据时ORA-00283:recoverysessioncanceledduetoORA-01110:datafile3:'/db/db2.f'ORA-01110:datafile2: ALTERDATABASERENAMEFILE'/db/UNNAMED00003'TO%cp/backup/users.dbf恢复时,Oracle可能发出ORA-01244信号。在这种情况下应使用“通过ADDDATAFILE操WHERESTATUS='INVALID'; ALTERDATABASEDROPLOGFILEMEMBERALTERDATABASEADDLOGFILEMEMBER'/oracle/dbs/log2c.f'TOGROUPALTERDATABASEADDLOGFILEMEMBER'/oracle/dbs/log2b.f'REUSETOGROUP SELECTGROUP#,MEMBERS,STATUS,ARCHIVEDFROM222骤取决户是否修复破坏不活动重做日志组的介质问题。STARTUPALTERDATABASECLEARLOGFILEGROUPSTARTUPALTERDATABASECLEARLOGFILEUNARCHIVEDGROUP如果有一个需要清除的未归档日志使脱机的数据数据联机,那么需要关键字ALTERDATABASECLEARLOGFILEUNARCHIVEDGROUP2UNRECOVERABLEALTERDATABASEBACKUPCONTROLFILETO发生I/O错误,这时应该:;V$LOG.CLEARING_CURRENT中。如果数据库仍然运行且丢失的活动日志不是当前日志,那么就发出ALTERSYSTEMLGWRLGWRI/OLGWR结%cp/disk2/backup/*.fSTARTUPALTERDATABASEOPEN 找RESETLOGS消息。如果该消息是“RESETLOGSafter DBMS_TTS.TRANSPORT_SET_CHECK过程检查自包含。二、TSPITR而传统的方法现在经常被(尽管现在还支持)。UNIONALLUNIONALLSELECTNAMEFROMSYSTEM和恢复集表空间上数据文件的文件名,执行下面的查询并且用SELECTt.NAMEAS"reco_tbs",d.NAMEAS"dbf_name"FROMV$DATAFILEd,V$TABLESPACEtWHEREt.TS#=ANDt.NAMEIN('SYSTEM','RECO_TBS_1',FROMDBA_ROLLBACK_SEGSr,DBA_DATA_FILESdWHEREFROMDBA_UNDO_EXTENTSu,DBA_DATA_FILESdWHERE在主数据库上查询TS_PITR_OBJECTS_TO_BE_DROPPED。视图的内容描述如下:TO_CHARTO_DATETS_1TS_2FROMSYS.TS_PITR_OBJECTS_TO_BE_DROPPEDORDERBYTABLESPACE_NAME,CREATION_TIME;化参数ENQUEUE_RESOURCES,它从共享池中分配内存。DB_NAME=LOCK_NAME_SPACE=auxDB_NAME=CONTROL_FILES=/oracle/aux/cf1.fLOG_ARCHIVE_FORMAT=r_%t_%s.arc表空间sales_2包括数据文件/fs2/sales_2.f辅助集包括系统表空间数据文件/oracle/dbs/system.f,取消表空间数据文件,包含在/oracle/dbs,准备把辅助数据重新安装到/oracle/dbs/aux。因此,设置件名到/oracle/dbs/aux下。 #control #datafileinundo #datafileinSYSTEM/oracle/dbs/sales_1.f#datafileinsales_1/oracle/dbs/sales_2.f#datafileinsales_2cp/backup/cf1.f/aux/cf1.fcp/backup/system.f/aux/system.fSTARTUPNOMOUNTALTERDATABASEMOUNTCLONEUNIONALLUNIONALLSELECTNAMEFROM/ALTERDATABASEDATAFILE/oracle/dbs/aux/system.fONLINE;RECOVERDATABASEUNTILCANCELUSINGBACKUPALTERDATABASEOPENDB_FILE_NAME_CONVERT,尽管需要设置LOG_FILE_NA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论