oracle备份与恢复课程指引_第1页
oracle备份与恢复课程指引_第2页
oracle备份与恢复课程指引_第3页
oracle备份与恢复课程指引_第4页
oracle备份与恢复课程指引_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

备份与恢复课程指南一第二课1LARGE_POOL_SIZE由参数文件中LARGE_POOL_SIZE指定主要用在以下三个方面:I/Oslaves:DBWR_IO_SLAVESBACKUP_TAPE_IO_SLAVESSessionmemoryforthemulti-threadedservers该内存从SAG中分配,如果在参数文件中没有指定,那么ORACLE服务器从共享池中分配。如果LARGE_POOL_SIZE设定了,但不够大那么在进行一些操作时会报错。DBWR_IO_SLAVES:该参数为一个整数值,一般用来模拟异步IO如果该操作系统的异步IO已经打开,也可以设置该参数,那么这时I/Oslaves将使用异步IO。如果DBWR_IO_SLAVES设定为一个非零值那么ARCnprocess,LGWRprocess,andRecoveryManager的辅助进程会自动设为4。BACKUP_TAPE_IO_SLAVES:该参数为一个布尔值(TRUE|FALSE)如果设为TRUE在使用RecoveryManager备份、拷贝、恢复到磁带时使用。2检查点检查点是ORACLE数据库中一个非常重要的概念。检查点的作用:将数据缓存中所有改变的数据块写入数据文件(不管事物是否提交),将数据库文件的头部标为一致,并且在在控制文件当中记录检查点序号。检查点检查点的特点:1)检查点进程始终有效2)检查点完成时更改文件头。3)频繁的检查点可以减少实例恢复的时间,但是会影响性能。检查点发生的时间及原因每一次日志切换时fast-startcheckpointing被设置用来减少恢复时间(实例失败)如fast_startio_target参数被设置,fast_start_io_target:一个动态参数用来控制实例恢复时数据块的IO读写数量。其它影响redolog目标位置的参数:检查点位置不能超过最小日志文件的90%。当实例恢复时将有超过LOG_CHECKPOINT_INTERVAL动态参数的日志块数(即操作系统块通常为512字节)被读时。当从上一次检查点发生后写日志块超过了LOG_CHECKPOINT_TIMEOUT动态参数指定的时间(以秒为单位)数据库关闭时发生(SHUTDOWNABORT除外)当数据库管理员使用以下命令时:altersystemcheckpoint当一个表空间被离线(OFFLINE)时或者在线备份开始时(注意只读数据文件是一个例外,它们的文件头的检查点号被冻结不会改变,所以不会与控制文件的检查点号保持一致。)在ORACLE8中提供了另外一个参数DB_BLOCK_MAX_DIRTY_TARGET它限制了数据缓存当中最大的脏块数,一旦达到该数量就会触发一次检查点操作。但是该参数对实例恢复时间的控制不如fast_start_io_target参数好。所以ORACLE8I推荐使用fast_start_io_target参数。检查点到来时所进行的工作:每当检查点发生,控制文件和数据库文件(日志、数据)头部的检查点号都将被更新。(只读数据文件和离线数据文件除外)控制、日志、数据文件的检查点号一致时被称为一致性数据库。数据库打开时会比较控制文件的检查点号与各数据库(日志、数据)文件的检查点号是否一致,如果有不一致的情况数据库无法正常打开(只读数据文件除外)。实例恢复时检查点标记前的日志记录不会重做(前滚)。3数据库常见错误分析:略4fast_start_parallel_rollback参数说明:ORACLE7后提供了一个功能,数据库在实例失败再启动时先做一些前滚工作,然后在数据库开启时再进行相应的回滚工作。如果一个并行操作时实例失败,那么数据库启动后要发许多时间进行回滚(常规下回滚预定义为一个串行操作)。为了解决这个问题ORACLE提供了调节一个并行回滚的动态参数,它允许SMON进程使用并行查询辅助进程来完成回滚操作。如果一个事务涉及的回滚块超过100,那么并行回滚自动开启。它是一个动态参数主要有三个值:FALSE无并行回滚进程LOW:CPU个数的两倍(缺省)HIGH:CPU个数的四倍。监视并行回滚的视图:V$FAST_START_SERVERS, V$FAST_STARTTRANSACTIONS二第三课备份与恢复配置1归档和非归档方式2几个重要参数LOG_ARCHIVE_DEST指定路径,不能是裸设备。LOG_ARCHIVE_FORMAT=extensionLOG_ARCHIVE_DUPLEX_DEST归档的第二个路径主要是为了归档日志的安全性。可动态修改。%sor%S:在文件名中要包含日志序列号%tor%T:在文件名中要包含线程号%S:日志序列号长度一致,左边加零补齐。3LOG_ARCHIVE_DEST_Nlog_archive_dest_1="location二D:\Oracle\oradata\ora816\archive”动态参数指定了归档路径最多可五个,可动态设定如altersystemsetlog_archive_dest_1='location二d:\oracle';与LOG_ARCHIVE_DEST冲突,推荐使用LOG_ARCHIVE_DEST_N4几个可选参数MANDATORY:表示只有该路径的归档成功后,日志文件才可重用。OPTIONAL:与MANDATORY相反,即使该路径归档没有成功,日志文件也可重用。缺省是OPTIONAL但是至少有一个路径是MANDATORY对于LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST而言,前者是MANDATORY而后者是OPTIONALREOPEN:归档失败后,再次尝试的间隔,以秒为单位。缺省为300秒。log_archive_min_succeed_dest参数指定了一个日志文件可重用前必须归档成功的路径个数它与MANDATORY参数共同作用,只有带MANDATORY参数的路径归档成功了并且归档成功的路径个数大于log_archive_min_succeed_dest时日志文件才可重用。LOG_ARCHIVE_DEST_STATE_n参数log_archive_dest_state_2=DEFER!ENABLE该参数是一个动态参数,如果设为DEFER那么表示log_archive_dest_2路径即使设为MANDATORY,也可以不往该路径下归档缺省为ENABLEo实验方法如下:实验有问题。如果是动态设定log_archive_dest_state_2路径,那么实验不成功,但是如果在参数文件中指定则可以生效可用下面命令屏蔽一个路径。altersystemsetlog_archive_dest_state_2=defer;log_archive_dest_state_3这种参数的设定用动态参数修改好象并不起作用,还是在初始化文件当中设定起作用。7非归档和归档的转化1)正常关闭数据库2)STARTUPMOUNT3)ALTERDATABASEARCHIVELOG(ALTERDATABASENOARCHIVELOG)4)ALTERDATABASEOPEN5)SHUTDOWNIMMEDIATE6)FULLBACKUP8归档进程的控制LOG_ARCHIVE_MAX_PROCESSES:该参数决定了最多可使用的归档进程数最多可指定10个。这是一个动态参数。可用以下命令修改altersystemsetlog_archive_max_processes=3;9自动归档log_archive_start=TRUE手工归档的命令ALTERSYSTEMARCHIVELOGSTARTTO'?/dbs/arch’;手工停止的命令ALTERSYSTEMARCHIVELOGSTOP;手工归档某一个日志文件ALTERSYSTEMARCHIVELOGSEQUENCE052;10显示归档信息的命令archiveloglist三第四课不用RMAN的物理备份1非归档备份冷备份:先把数据库正常关闭(SHUTDOWNABORT除外),然后将控制文件,日志文件和数据文件进行备份。2归档备份热备份:在数据库打开的状态下备份命令:altertablespaceuser_databeginbackup;cpaltertablespaceuser_dataendbackup;查阅备份信息的动态视图:V$BACKUPV$DATAFILE_HEADER3备份控制文件alterdatabasebackupcontrolfileto'controll.bkp';(二进制文件)或者alterdatabasebackupcontrolfiletotrace;(在TRACE文件中可以看到相关信息)4只读数据文件只读数据文件只要做一次备份即可。四第五课不用RMAN的完全恢复1非归档模式把冷备份拷贝回来,如果原路径不能使用可以改名恢复。对控制文件只要在参数文件中指向新的路径即可对日志和数据文件可以用以下方法:startupmountalterdatabaserenamefile'/diskl/data/user_01.dbf'to'/disk2/data/user_01.dbf’;alterdatabaseopen;2归档模式归档模式有以下四种方法:由于丢失的数据文件属于系统表空间所以数据库原始状态是关闭的,并且没有办法先把数据库打开再恢复。所以只能在数据库MOUNT状态进行恢复。步骤如下:A拷贝备份文件到正确路径BMOUNT数据库C使用如下命令:recoverdatafile'/disk2/data/df2.dbf’;DALTERDATABASEOPEN注意:如果恢复时要多个归档文件那么需要使用AUTOMATIC选项或者在SQLPLUS中先SETAUTORECOVERYON所有需要的归档文件拷回LOG_ARCHIVE_DEST数据库某个文件损坏但是数据库依然打开,在数据库打开时进行恢复。步骤如下:A一旦某个文件损坏那么该文件自动变成离线状态,找到该文件,然后把该文件的备份拷回到正确路径B使用以下命令:recoverdatafile'/disk2/backup/df2.dbf’;或者recovertablespaceUSER_DATA;Calterdatabasedatafile'/disk2/data/df2.dbf’online;或者altertablespaceUSER_DATAonline;数据库某个文件损坏导致数据库关闭(但该文件不属于系统表空间并且不包含回滚段),先想办法把数据库打开再进行恢复操作。A先MOUNT数据库STARTUPMOUNTB找到损坏的文件,查看它的状态,如果状态不是离线需要把它变为离线状态并把它的备份文件拷回。C打开数据库ALTERDATABASEOPENDrecoverdatafile'/disk3/data/df2.dbf";、或者recovertablespaceUSER_DATA;Ealterdatabasedatafile'/disk3/data/df2.dbf’online;或者altertablespaceUSER_DATAonline;丢失的数据文件没有备份的恢复方法(不能属于系统表空间或包含回滚段)A先把丢失的数据文件离线然后想办法打开数据库Balterdatabasecreatedatafile'/disk2/DATA/df7.dbf’2asi/diskl/DATA/df7.dbf;CrecovertablespaceTABLE_DATA;DaltertablespaceTABLE_DATAonline;3在备份过程中出现文件丢失错误怎么办?1)找到备份文件select*fromv$backup;2)结束备份状态alterdatabasedatafile2endbackup;3)打开数据库4)用上面讨论过的方法恢复4日志文件丢失或有冲突怎么办?清除冲突日志文件(该文件为当前组,数据库只有两组文件)ASQL>alterdatabaseclearunarchivedlogfilegroup1;注意:如果采用该命令没有产生归档文件那么完全恢复不可能实现,执行该命令后请做一个备份。BSQL>alterdatabaseclearunarchivedlogfilegroup1unrecoverabledatafile;该命令比较罕见,它会清除一个日志文件即使有OFFLINE的数据文件需要该日志文件恢复,一旦使用该命令会产生两个结果:•RESTORE所有的数据文件并执行不完全恢复•删除包含离线数据文件的表空间注意:需要该日志文件来恢复的离线文件会不可用该日志文件不会归档执行该命令后马上做一个备份如果丢失的日志文件不是当前日志文件A先增加一组新的日志文件,再删除有问题的日志文件组,如果日志文件组有三组以上那么可以直接删除有问题的日志文件组B如果一个日志组丢失,而另一个日志组更丢失的日志组大小一样,可以把另一个日志组的日志文件拷贝到丢失日志组位置然后执行以下命令hostcp/diskl/DATA/log2a.rdo/diskl/DATA/logla.rdoalterdatabaseclearlogfile'/diskl/DATA/logla.rdo5查看恢复信息的视图V$RECOVERY_FILE_STATUS>V$RECOVERY_STATUS五第六课归档模式下的不完全恢复1只能实现不完全恢复的原因1)用户原因•用户错误删除了一个重要的表•用户插入了错误的数据并且已经提交2)某些需要用到的归档文件丢失3)所有的控制文件丢失4)丢失了所有非归档的在线日志文件和一个数据文件2不完全恢复的类型不完全恢复与完全恢复差别很大,完全恢复是把某一个数据文件或某一个表空间离线恢复后再使之在线。1)Time-basedrecovery可以通过LOGMINER工具来找到错误操作发生的时间,这样可以更精确的进行基于时间的不完全恢复recover[AUTOMATIC]databaseuntiltime'1999-03-04:14:22:03’;恢复步骤如下:Shutdownandbackupthedatabase.(做一个完全的冷备份)Restorealldatafiles.Donotrestorethecontrolfile,redologs,passwordfiles,orparameterfiles.Mountthedatabaseandrecoverthedatafilesbeforethetimeoffailure.OpenthedatabasewithRESETLOGS.Performacloseddatabasebackup.2)Cancel-basedrecovery当前在线日志文件丢失或者某些归档文件丢失时可以采用这种方式recoverdatabaseuntilcancel;恢复步骤:Shutdownthedatabase.Youalreadyhaveavalidbackup,somounttheinstance.Restorealldatafilesfromthemostrecentbackup.recoverdatabaseuntilcancelOpenthedatabasebyusingtheRESETLOGSoption.)Recoveryusingabackupcontrolfile所有的控制文件丢失只有一个二进制备份时采用这种方式,或者用户在进行一个基于时间点的恢复而该时间点和现在数据库的结构不一样了。这时也必须使用备份控制文件。如果用户BACKUPTOTRACE保存了一条CREATECONTROLFILE语句时可以避免。recoverdatabaseuntiltime'1999-03-04:14:22:03’usingbackupcontrolfile;EXAMPLE:用户在某一个时间点错误地删除了一个表空间droptablespaceemp_tsincludingcontents;恢复步骤如下:•Shutdownthedatabase,backupcontrolfiles,thenrestorealldatafilesandcontrolfilesforthedatabaseatatimewhenthetablespaceexisted.•因为控制文件和日志文件不同步所有无法正常打开数据库。用户需要执行以下命令:select*fromv$recover_file;alterdatabasedatafile4online;(必须要让所有的数据文件在线)recoverdatabaseuntiltime’1999-03-09:11:44:00’usingbackupcontrolfile;alterdatabaseopenresetlogs;)Change-basedrecovery与基于时间点的恢复类似,这种方式恢复需要提供一个SCN号。3当前在线日志文件丢失的方法:当前在线日志文件丢失后数据库有可能处于两种状态数据库依然打开但是HANG住,但是还能进行一些管理操作。用以下方法恢复清除日志文件组alterdatabaseclearunarchivedlogfilegroup1;数据库关闭用以下方法恢复ASTARTUPMOUNTBalterdatabaseclearunarchivedlogfilegroup2;Crecoverdatabaseuntilcancel;DALTERDATABASEOPENRESETLOGS4数据库恢复后以RESETLOGS方式打开后再出现问题的恢复方法所有的归档日志均存在,OPENRESETLOGS前后的控制文件都存在。OPENRESETLOGS之前的备份存在,之后无备份恢复步骤如下:拷贝现在的控制文件到别的位置Copythecurrentdatabasecontrolfilestoanotherlocation.把OPENRESETLOGS之前的备份拷回来RestorethedatafilesandcontrolfilesfromabackupbeforethelastRESETLOGSoperation.Mountthedatabase.从警告日志文件当中找到OPENRESETLOGS的SCN号IncompleterecoverydoneUNTILCHANGE309121MediaRecoveryCompleterecoverdatabaseuntilchange309121usingbackupcontrolfile;Shutdownthedatabaseusingthe“normal”option.Restorethecurrentcontrolfilesfromthelocationspecifiedinstep1.Mountthedatabase.RecoverthedatabaseusingtheappropriateoptioninRECOVERDATABASEcommand.Openthedatabase.六第七课EXPORT和IMPORT使用指南1EXP的各个参数我们在DBA那么课程中已经讲得很详细,现在来讨论完全、增量和累积备份这三种备份的前提是做一个全库备份即FULL二Y增量备份increament增量备份只备份上一次备份(可以是完全、增量或累积备份)后改变的对象增量备份在数据库有许多被修改的小表时使用,如果数据库中只有几个大表则不太合适。EXAMPLE:expsystem/managerFULL=yinctype=Incrementalfile=expinc1.dmp累积备份累积备份只备份上一次备份(完全或累积备份)后改变的对象。EXAMPLE:cumulativeexpsystem/managerFULL=yinctype=cumulativefile=expcum1.dmp2针对增量备份和累积备份的导入操作(IMP)。Performthefollowingstepsintheordergiven:RuntheimportoptionwithFULL=YandINCTYPE=systemonthemostrecentdatabaseexport.RunimportagainwithFULL=YandINCTYPE=restoreusingthemostrecentcompleteexport.Runallcumulativeexportsinorderstartingwiththefirstcumulativeexportafterthemostrecentcompleteexport.Runallincrementalexportsinorderstartingwiththemostrecentcumulativeexport.EXAMPLE:OnFridaymorning,youdropallthetables.TheMOSTRECENTexportwasanincrementalonThursday.ApplythatexportwithSYSTEMoption.(Impfile='thurs.dmp'userid=DBA/passwordfull=yinctype=system)ApplymostrecentCOMPLETEexportwhichwastakenSaturday.(Impfile='sat.dmp'userid=DBA/passwordfull=yinctype=restore)AcumulativeexportwastakenWednesday.Applyit.(Impfile='wed.dmp'userid=DBA/passwordfull=yinctype=restore)ReapplytheThursdayincrementalwiththeRESTOREoption.(Impfile='thurs.dmp'userid=DBA/passwordfull=yinctype=restore)3如何导出一个表部分符合某一条件的数据?EXAMPLE:NTExpsystem/managerquery="""whereempno>7900"""tables=empfile=d:\test\emptb.dmplog=emp.logUNIXExpsystem/managerquery=\"enamelike\'ABC%\'\"tables=empfile=d:\test\emptb.dmplog=emp.log七第八课恢复的附加信息并行恢复(Parallelrecovery)参数RECOVERY_PARALLELISM指定了实例恢复时使用的恢复进程。它不能超过参数PARALLEL_MAX_SERVERS指定的值RECOVERDATABASEPARALLEL(DEGREE2在恢复命令中指定并行度它会覆盖RECOVERY_PARALLELISM参数指定的值。2丢失一个数据文件的恢复方法参看LEGATO和RMAN使用指南。对非归档模式,在数据库MOUNT阶段执行以下命令:ALTERDATABASEDATAFILE‘/users/dba00/u01/user01.dbfOFFLINE;对归档模式,需执行以下命令:ALTERDATABASEDATAFILE‘/users/dba00/u01/user01.dbfOFFLINEIMMEDIATE;对某些表空间不需要恢复只要重建即可这时可以在数据库MOUNT阶段执行以下命令:ALTERDATABASEDATAFILE‘/users/dba00/u01/user01.dbf2OFFLINEDROP;3丢失控制文件的恢复方法有镜像的控制文件,只要把控制文件拷贝一份就行。备份到TRACE文件中,先把数据库开启到NOMOUNT状态然后再创建控制文件即可。备份成二进制文件,在MOUNT阶段执行以下命令了:recoverdatabaseusingbackupcontrolfile;然后alterdatabaseopenresetlogs;即可。3只读表空间的恢复表空间备份前后始终处于只读状态,这时只要把备份文件拷回来就行。表空间备份时是只读状态后来变成读写模式需要把备份拷回然后进行恢复表空间备份时是读写模式后来变成只读模式一般表空间变为只读模式后一定要备份,否则只有把老的备份拷回然后将表空间恢复到只读的时刻。八第九课ORACLE解决故障的一些实用工具1警告日志文件和TRACE文件可以帮助我们发现问题2数据坏块的诊断数据坏块是ORACLE数据库一个比较常见的故障两个重要的参数DB_BLOCK_CHECKSUM:TRUEIFALSE用来控制数据库在数据块和日志块修改前是否检查。该参数在数据块和日志块读写时都检查,对系统性能影响较大。如果有冲突报ORA-01578错误。DB_BLOCK_CHECKING:TRUE|FALSE用来控制数据库在数据块和索引块修改前是否检查。只在数据块写的时候检查。对性能影响较小。DBVERIFYUtility用来检查数据文件是否含有坏块。对数据库的性能影响较少在需要的时候执行。dbvfile二/users/DBA00/data01.dbflogfile=dbv.log也可以只检查数据文件的一部分dbv/users/DB00/u03/data01.dbfstart=1end=500如果检查的数据文件是裸设备,那么应该加上“END二”,如:dbv/dev/rdrd/system01end=500用DBMS_REPAIR包来诊断坏块。A用户可以用SYS用户登陆到数据库当中然后运行

DBMS_REPAIR包来诊断表、分区、索引中是否含有坏块。首先创建一个REPAIR_TABLE表来存储诊断信息,它属于SYS用户和TEST表空间execute dbms_repair.admin_tables('REPAIR_TABLE',DBMS_REPAIR.REPAIR_TABLE,DBMS_REPAIR.CREATE_ACTION,'test');B然后再诊断某一个具体的对象。先在SQLPLUS中运行SQL>variableccnumberSQL>execute dbms_repair.check_object('SCOTT','EMP',corrupt_count=>:cc);用以下命令可以看出CC的值SQL>PRINTCCC查询诊断信息SELECTobject_name,relative_file_id,block_id,marked_corrupt,corrupt_description,repair_descriptionFROMrepair_table;D对有冲突的数据块做一个标记executedbms_repair.fix_corrupt_blocks('SCOTT','EMP',executedbms_repair.fix_corrupt_blocks('SCOTT','EMP',fix_count=>:fc);E忽略有冲突的数据块executedbms_repair.skip_corrupt_blocks('SCOTT','EMP');F如果文件头部冲突导致FREELIST冲突,可以用以下命令解决REBUILD_FREELISTS.GANALYZEVALIDATESTRUCTURE该命令可以检查表或索引的一致性及完整性,缺省结果记录在表INVALID_ROWS中该表是由utlvalid.Sql脚本创建也可以指定即在命令的最后加上INTOSCHEMA.TABLEANALYZEINDEXparts_indexVALIDATESTRUCTURE;分析表及所有的索引命令如下,加上CASCADE关键字ANALYZETABLEempVALIDATESTRUCTURECASCADE;九第十课RMAN概述RMAN是ORACLE8以后提供的一个备份和恢复工具。在ORACLE7中使用的EBU工具。所以当你的数据库是ORACLE734版本时是不可能采用RMAN来备份和恢复的。1RMAN使用的包DBMS_RCVCAT:用来维护资料库的信息。DBMS_RCVMAN:用来查询控制文件或资料库DBMS_BACKUP_RESTORE:用来提供数据库和操作系统的接□。该包由dbmsbkrs.Sql和prvtbkrs.plb文件生成。2决定RMAN信息在控制文件中保留日期的设定CONTROL_FILE_RECORD_KEEP_TIME:以天为单位,在设定的日期后备份和恢复的信息将被清除。缺省为7天,如果使用了RMAN资料库,可以把该值设得小一些。当然如果使用资料库,再同步的频率应该高于控制文件被刷新的频率。RMAN每做一次备份和恢复工作都会自动同步RMAN资料库,所以我们可以这样理解做备份工作的频率要大于CONTROL_FILE_RECORD_KEEP_TIME日期,当然它还受控制文件创建时的MAXLOGHISTORY限制。RMAN备份时归档文件时可能会出现某一个归档文件找不到的情况,这时可以加上fromtime'sysdateT’这样的语句,注意在某些时候‘sysdateT之间不能有空格,也可以为‘sysdate-1/24,3控制文件的镜像RMAN在进行备份工作时,数据库的控制文件很有可能会发生结构变化,如增加一个数据文件,为了解决这个问题,RMAN在备份时先生成一个镜像文件。却省路径和名称为:$ORACLE_HOME/dbs/snapcf_<dbname>.F(UNIX)$ORACLE_HOME/database/SNCF<dbname>.ORA或者可以用以下方法改变位置RMAN>setsnapshotcontrolfilenameto'/disk1/backup/ctl_300.snp';对OPS备份时情况可能复杂一些,如果不采用NFS方式,需要创建一个裸设备用来存放控制文件的镜像。4不用RMAN资料库的备份方法rmannocatalogtargetsystem/managerRMAN运行的几种模式交互式rmantargetsys/sys_pwd@db1catalogrman_db1/rman_db1@catdbRMAN>run{2>allocatechanneld1typedisk;3>backupdatabase;4>releasechanneld1;}批处理式,RMAN的备份或恢复命令存放在tbsbk.Rcv文件中rmantargetinternal/oracle@ora816catalogrman/rman@rman@d:\test\tbsbk.rcvmsglogd:\test\tbs.logtbsbk.rcv文件内容如下:run{allocatechannelc1typedisk;backupfilesperset20format'd:\test\ysh%s:%t.arc'(archivelogfromtime'SYSDATE-1/24'untiltime'SYSDATE'deleteinput);releasechannelc1;)测试式rmancmdfile"d:\test\backtest.txt"backtest.txt内容如下:connecttargetinternal/oracle@ora816connectcatalogrman/rman@rmanrun{allocatechannelc1typedisk;backupfilesperset20format'd:\test\ysh%s:%t.arc'(archivelogfromtime'SYSDATE-1/24'untiltime'SYSDATE'deleteinput);releasechannelcl;)RMAN命令如下:RMAN命令有两种类型:单独型特点:独立执行与操作系统没有关联,不用分配通道。如:ChangeConnectCreateCatalog,ResyncCatalogCreateScript,DeleteScript,ReplaceScript工作型:特点:作为一个组执行,与操作系统交互,需要分配通道如:包含在“RUN”中的所有命令。REPORT命令详解reportschema;reportschemaattime'SYSDATE-7';reportneedbackup[incremental0|days3|redundancy2]reportneedbackupincremental5database;reportneedbackupdays2tablespacesystem;reportunrecoverable列出不能恢复的备份集) reportobsolete;列出不需要的备份集,可以删除LIST命令详解listincarnationofdatabase;9存储脚本先创建一个脚本命令如下RMAN>createscriptLevel0Backup{allocatechanneld1typedisk;backupincrementallevel0format'd:\test\%d_%s_%p'filesperset5(databaseincludecurrentcontrolfile);sql'alterSYSTEMarchivelogcurrent';releasechanneld1;}注意:教材上有一个错误filesperset被印成了filepersetsql'alterdatabasearchivelogcurrent';也不对应该为:sql'alterSYSTEMarchivelogcurrent';然后再运行该脚本run{executescriptLevel0Backup;}10RUN的命令示例RUN关键字后可接许多命令常用的命令如下:RMAN>run{host“ls-1”;}run{host"dir/w";}3)RMAN>run{sql“altersystemswitchlogfile”;}十一第十一课RMAN资料库的创建和维护RecoveryCatalog是RMAN工具中一个重要的组件。1创建恢复资料库的步骤如下:创建资料库把目标数据库注册进恢复资料库将恢复资料库与目标数据库的控制文件同步将数据库备份重置到某一个实体状态改变某些备份恢复文件的信息执行一个备份和恢复操作2常用命令1)创建表空间(在资料数据库中)createtablespacerman_tsdatafile'<directory>/<name>’>size20Mdefaultstorage(initial100Knext100Kpctincrease0);创建用户(在资料数据库中)createuserrman_db1identifiedbyrman_db1defaulttablespacerman_tstemporarytablespacetempquotaunlimitedonrman_ts;授权(在资料数据库中)grantrecovery_catalog_ownertorman_db1;grantconnect,resourcetorman_db1;5)为资料数据库RMAN用户创建一些必须的对象rmancatalogrman_db1/rman_db1@catdbmsglog=catalog.logRMAN>createcatalogtablespacerman_ts;6)注册目标数据库到资料库中RMAN>registerdatabase;7) 再同步问题资料库的许多信息是从控制文件读出来的当数据库的结构发生变化时,控制文件和资料库的信息就会出现不一致现象。这时就需要进行一个再同步工作。在以下四种情况下需要进行再同步操作:AddordropatablespaceAddordropadatafileAddordroparollbacksegmentRelocateanydatabasefile命令如下:$rmantargetscott/tiger@db01catalogrman/rman@catdbRMAN>resynccatalog;下面的因素影响了再同步的频率:Thefollowingfactorsmayinfluencehowoftenyouresync:TherateofarchivelogcreationFrequencyofdatabasestructurechangesTheneedforfasterresynchronizations再同步命令的操作结果如下:Logswitchrecords:日志切换记录Archivedlogcopyrecords:归档日志拷贝记录Backuphistoryrecords:备份历史记录3CHANGE命令让一个备份有效的命令CHANGEBACKUPSET12AVAILABLE;CHANGEDATAFILECOPY’/u01/db01/backup/systbs.bak’available;在资料库中删除一个备份信息的命令changearchivelog'/diskl/archive/arch_123.rdoiuncatalog;RMAN>changedatafilecopy4833uncatalog;CHANGE力口上CROSSCHECK选项:检查资料库中记载的备份信息在物理上是否存在命令如下:CHANGEDATAFILECOPY'/u01/db01/backup/systbs.bak’CROSSCHECK;物理删除一个备份集的命令如下:rmantargetsys/change_on_install@db01RMAN>connectcatalogrman_db1/rman_db1@catdbRMAN>allocatechannelfordeletetypedisk;RMAN>changedatafilecopy'/u01/db01/backup/system01.bakdelete;RMAN>releasechannel;5常用的数据字典如下:当使用恢复资料库时,可以使用一些数据字典来查询恢复资料库中的信息。常用的字典如下:1)select*fromrc_database;看资料库中注册数据库的信息2)selectDB_KEY,DBINC_KEY,DB_NAME,TS#,NAME,CREATION_CHANGE#CHANGE#,CREATION_TIMECRE_DATEfromrc_tablespace;看目标数据库的表空间备份信息3)select*fromrc_stored_script;看恢复资料库中存储的脚本。4)还有几个相关的数据字典如下:RC_DATAFILERC_STORED_SCRIPT_LINERC_ARCHIVED_LOGRC_BACKUP_CONTROLFILERC_BACKUP_CORRUPTIONRC_BACKUP_DATAFILERC_BACKUP_PIECERC_BACKUP_SETRC_CONTROLFILE_COPYRC_COPY_CORRUPTIONRC_DATABASE_INCARNATIONRC_DATAFILE_COPY第十二课用RMAN来备份数据库1全备份:冷备份或热备份用RMAN备份的两种方式:镜像方式和备份集方式2通道的概念BACKUP,RESTORE,orRECOVER命令至少需要一个通道,对多DRIVER的带库而言我们可以分配多个通道。RMAN使用通道进程来联系ORACLESERVER进程和操作系统。通道存储介质的类型:通过下面查询可以看出ORACLE支持的通道类型select*fromv$backup_device(以系统用户查询)可以对通道进行一些限制,常见的限制命令如下:setlimitchannelclkbytes=9000;setlimitchannelc1readrate=integersetlimitchannelc1maxopenfiles=integer并行度是由通道的个数决定的。如:connecttargetinternal/oracle@ora816connectcatalogrman/rman@rmanrun{allocatechannelc1typedisk;allocatechannelc2typedisk;allocatechannelc3typedisk;backupincrementallevel=0format'/disk1/backup/df%s%p.bak'(datafile1,4,5channelc1tag=DF1)(datafile2,3,9channelc2tag=DF2)(datafile6,7,8channelc3tag=DF3);sql

温馨提示

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

评论

0/150

提交评论