您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > oracle备份与恢复课程指南
备份与恢复课程指南一第二课1LARGE_POOL_SIZE由参数文件中LARGE_POOL_SIZE指定主要用在以下三个方面:1)I/Oslaves:DBWR_IO_SLAVES2)BACKUP_TAPE_IO_SLAVES3)Sessionmemoryforthemulti-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)频繁的检查点可以减少实例恢复的时间,但是会影响性能。检查点发生的时间及原因1)每一次日志切换时2)fast-startcheckpointing被设置用来减少恢复时间(实例失败)如fast_startio_target参数被设置,fast_start_io_target:一个动态参数用来控制实例恢复时数据块的IO读写数量。其它影响redolog目标位置的参数:检查点位置不能超过最小日志文件的90%。3)当实例恢复时将有超过LOG_CHECKPOINT_INTERVAL动态参数的日志块数(即操作系统块通常为512字节)被读时。4)当从上一次检查点发生后写日志块超过了LOG_CHECKPOINT_TIMEOUT动态参数指定的时间(以秒为单位)5)数据库关闭时发生(SHUTDOWNABORT除外)6)当数据库管理员使用以下命令时:altersystemcheckpoint7)当一个表空间被离线(OFFLINE)时或者在线备份开始时(注意只读数据文件是一个例外,它们的文件头的检查点号被冻结不会改变,所以不会与控制文件的检查点号保持一致。)8)在ORACLE8中提供了另外一个参数DB_BLOCK_MAX_DIRTY_TARGET它限制了数据缓存当中最大的脏块数,一旦达到该数量就会触发一次检查点操作。但是该参数对实例恢复时间的控制不如fast_start_io_target参数好。所以ORACLE8I推荐使用fast_start_io_target参数。检查点到来时所进行的工作:1)每当检查点发生,控制文件和数据库文件(日志、数据)头部的检查点号都将被更新。(只读数据文件和离线数据文件除外)2)控制、日志、数据文件的检查点号一致时被称为一致性数据库。3)数据库打开时会比较控制文件的检查点号与各数据库(日志、数据)文件的检查点号是否一致,如果有不一致的情况数据库无法正常打开(只读数据文件除外)。4)实例恢复时检查点标记前的日志记录不会重做(前滚)。3数据库常见错误分析:略4fast_start_parallel_rollback参数说明:ORACLE7后提供了一个功能,数据库在实例失败再启动时先做一些前滚工作,然后在数据库开启时再进行相应的回滚工作。如果一个并行操作时实例失败,那么数据库启动后要发许多时间进行回滚(常规下回滚预定义为一个串行操作)。为了解决这个问题ORACLE提供了调节一个并行回滚的动态参数,它允许SMON进程使用并行查询辅助进程来完成回滚操作。如果一个事务涉及的回滚块超过100,那么并行回滚自动开启。它是一个动态参数主要有三个值:FALSE无并行回滚进程LOW:CPU个数的两倍(缺省)HIGH:CPU个数的四倍。监视并行回滚的视图:V$FAST_START_SERVERS,V$FAST_START_TRANSACTIONS二第三课备份与恢复配置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秒。5log_archive_min_succeed_dest参数指定了一个日志文件可重用前必须归档成功的路径个数它与MANDATORY参数共同作用,只有带MANDATORY参数的路径归档成功了并且归档成功的路径个数大于log_archive_min_succeed_dest时日志文件才可重用。6LOG_ARCHIVE_DEST_STATE_n参数log_archive_dest_state_2=DEFER|ENABLE该参数是一个动态参数,如果设为DEFER那么表示log_archive_dest_2路径即使设为MANDATORY,也可以不往该路径下归档缺省为ENABLE。实验方法如下:实验有问题。如果是动态设定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$BACKUP、V$DATAFILE_HEADER3备份控制文件alterdatabasebackupcontrolfileto‘control1.bkp`;(二进制文件)或者alterdatabasebackupcontrolfiletotrace;(在TRACE文件中可以看到相关信息)4只读数据文件只读数据文件只要做一次备份即可。四第五课不用RMAN的完全恢复1非归档模式把冷备份拷贝回来,如果原路径不能使用可以改名恢复。对控制文件只要在参数文件中指向新的路径即可对日志和数据文件可以用以下方法:startupmountalterdatabaserenamefile‘/disk1/data/user_01.dbf’to‘/disk2/data/user_01.dbf’;alterdatabaseopen;2归档模式归档模式有以下四种方法:1)由于丢失的数据文件属于系统表空间所以数据库原始状态是关闭的,并且没有办法先把数据库打开再恢复。所以只能在数据库MOUNT状态进行恢复。步骤如下:A拷贝备份文件到正确路径BMOUNT数据库C使用如下命令:recoverdatafile‘/disk2/data/df2.dbf‘;DALTERDATABASEOPEN注意:如果恢复时要多个归档文件那么需要使用AUTOMATIC选项或者在SQLPLUS中先SETAUTORECOVERYON所有需要的归档文件拷回LOG_ARCHIVE_DEST2)数据库某个文件损坏但是数据库依然打开,在数据库打开时进行恢复。步骤如下:A一旦某个文件损坏那么该文件自动变成离线状态,找到该文件,然后把该文件的备份拷回到正确路径B使用以下命令:recoverdatafile‘/disk2/backup/df2.dbf‘;或者recovertablespaceUSER_DATA;Calterdatabasedatafile‘/disk2/data/df2.dbf‘online;或者altertablespaceUSER_DATAonline;3)数据库某个文件损坏导致数据库关闭(但该文件不属于系统表空间并且不包含回滚段),先想办法把数据库打开再进行恢复操作。A先MOUNT数据库STARTUPMOUNTB找到损坏的文件,查看它的状态,如果状态不是离线需要把它变为离线状态并把它的备份文件拷回。C打开数据库ALTERDATABASEOPENDrecoverdatafile‘/disk3/data/df2.dbf‘;、或者recovertablespaceUSER_DATA;Ealterdatabasedatafile‘/disk3/data/df2.dbf‘online;或者altertablespaceUSER_DATAonline;4)丢失的数据文件没有备份的恢复方法(不能属于系统表空间或包含回滚段)A先把丢失的数据文件离线然后想办法打开数据库Balterdatabasecreatedatafile‘/disk2/DATA/df7.dbf’2as‘/disk1/DATA/df7.dbf‘;CrecovertablespaceTABLE_DATA;DaltertablespaceTABLE_DATAonline;3在备份过程中出现文件丢失错误怎么办?1)找到备份文件select*fromv$backup;2)结束备份状态alterdatabasedatafile2endbackup;3)打开数据库4)用上面讨论过的方法恢复4日志文件丢失或有冲突怎么办?1)清除冲突日志文件(该文件为当前组,数
本文标题:oracle备份与恢复课程指南
链接地址:https://www.777doc.com/doc-1917419 .html