为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

oracle备份与恢复课程指南

2011-07-13 41页 doc 121KB 17阅读

用户头像

is_646998

暂无简介

举报
oracle备份与恢复课程指南备份与恢复课程指南 备份与恢复课程指南 一 第二课 1 LARGE_POOL_SIZE 由参数文件中LARGE_POOL_SIZE指定主要用在以下三个方面: 1)​ I/ O slaves: DBWR_IO_SLAVES 2)​ BACKUP_TAPE_IO_SLAVES 3)​ Session memory for the multi-threaded servers 该内存从SAG中分配,如果在参数文件中没有指定,那么ORACLE服务器从共享池中分配。如果LARGE_POOL_SIZE设定了,但不够大那么在进行一些操作时会...
oracle备份与恢复课程指南
备份与恢复课程指南 备份与恢复课程指南 一 第二课 1 LARGE_POOL_SIZE 由参数文件中LARGE_POOL_SIZE指定主要用在以下三个方面: 1)​ I/ O slaves: DBWR_IO_SLAVES 2)​ BACKUP_TAPE_IO_SLAVES 3)​ Session memory for the multi-threaded servers 该内存从SAG中分配,如果在参数文件中没有指定,那么ORACLE服务器从共享池中分配。如果LARGE_POOL_SIZE设定了,但不够大那么在进行一些操作时会报错。 DBWR_IO_SLAVES:该参数为一个整数值,一般用来模拟异步IO如果该操作系统的异步IO已经打开,也可以设置该参数,那么这时I/ O slaves将使用异步IO。如果DBWR_IO_SLAVES设定为一个非零值那么ARCn process, LGWR process, and Recovery Manager 的辅助进程会自动设为4。 BACKUP_TAPE_IO_SLAVES:该参数为一个布尔值(TRUE|FALSE)如果设为TRUE在使用Recovery Manager 备份、拷贝、恢复到磁带时使用。 2 检查点 检查点是ORACLE数据库中一个非常重要的概念。 检查点的作用:将数据缓存中所有改变的数据块写入数据文件(不管事物是否提交),将数据库文件的头部标为一致,并且在在控制文件当中检查点序号。 检查点检查点的特点: 1) 检查点进程始终有效 2) 检查点完成时更改文件头。 3) 频繁的检查点可以减少实例恢复的时间,但是会影响性能。 检查点发生的时间及原因 1)​ 每一次日志切换时 2)​ fast- start checkpointing被设置用来减少恢复时间(实例失败) 如fast_start io_target参数被设置,fast_start_io_target:一个动态参数用来控制实例恢复时数据块的IO读写数量。其它影响redo log 目标位置的参数:检查点位置不能超过最小日志文件的90%。 3)​ 当实例恢复时将有超过LOG_CHECKPOINT_INTERVAL动态参数的日志块数(即操作系统块通常为512字节)被读时。 4)​ 当从上一次检查点发生后写日志块超过了LOG_ CHECKPOINT_ TIMEOUT动态参数指定的时间(以秒为单位) 5)​ 数据库关闭时发生(SHUTDOWN ABORT除外) 6)​ 当数据库管理员使用以下命令时:alter system checkpoint 7)​ 当一个空间被离线(OFFLINE)时或者在线备份开始时(注意只读数据文件是一个例外,它们的文件头的检查点号被冻结不会改变,所以不会与控制文件的检查点号保持一致。) 8)​ 在ORACLE8中提供了另外一个参数DB_BLOCK_MAX_DIRTY_TARGET 它限制了数据缓存当中最大的脏块数,一旦达到该数量就会触发一次检查点操作。但是该参数对实例恢复时间的控制不如fast_start_io_target 参数好。所以ORACLE8I推荐使用fast_start_io_target参数。 检查点到来时所进行的工作: 1)​ 每当检查点发生,控制文件和数据库文件(日志、数据)头部的检查点号都将被更新。(只读数据文件和离线数据文件除外) 2)​ 控制、日志、数据文件的检查点号一致时被称为一致性数据库。 3)​ 数据库打开时会比较控制文件的检查点号与各数据库(日志、数据)文件的检查点号是否一致,如果有不一致的情况数据库无法正常打开(只读数据文件除外)。 4)​ 实例恢复时检查点标记前的日志记录不会重做(前滚)。 3数据库常见错误: 略 4 fast_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 = extension LOG_ ARCHIVE_DUPLEX_DEST 归档的第二个路径主要是为了归档日志的安全性。可动态修改。 % s or % S: 在文件名中要包含日志序列号 % t or % T: 在文件名中要包含线程号 % S: 日志序列号长度一致,左边加零补齐。 3 LOG_ARCHIVE_DEST_N log_archive_dest_1 = "location=D:\Oracle\oradata\ora816\archive" 动态参数指定了归档路径最多可五个,可动态设定如 alter system set log_archive_dest_1='location=d:\oracle'; 与LOG_ARCHIVE_DEST冲突,推荐使用LOG_ARCHIVE_DEST_N 4 几个可选参数 MANDATORY:表示只有该路径的归档成功后,日志文件才可重用。 OPTIONAL:与MANDATORY相反,即使该路径归档没有成功,日志文件也可重用。 缺省是OPTIONAL但是至少有一个路径是MANDATORY 对于LOG_ARCHIVE_DEST和LOG_ ARCHIVE_DUPLEX_DEST而言,前者是MANDATORY而后者是OPTIONAL REOPEN:归档失败后,再次尝试的间隔,以秒为单位。缺省为300秒。 5 log_archive_min_succeed_dest 参数 指定了一个日志文件可重用前必须归档成功的路径个数它与MANDATORY参数共同作用,只有带MANDATORY参数的路径归档成功了并且归档成功的路径个数大于log_archive_min_succeed_dest时日志文件才可重用。 6 LOG_ARCHIVE_DEST_STATE _n 参数 log_archive_dest_state_2 = DEFER| ENABLE 该参数是一个动态参数,如果设为DEFER那么表示log_archive_dest_2路径即使设为MANDATORY,也可以不往该路径下归档缺省为ENABLE。 实验方法如下: 实验有问题。如果是动态设定log_archive_dest_state_2路径,那么实验不成功,但是如果在参数文件中指定则可以生效可用下面命令屏蔽一个路径。 alter system set log_archive_dest_state_2=defer; log_archive_dest_state_3这种参数的设定用动态参数修改好象并不起作用,还是在初始化文件当中设定起作用。 7 非归档和归档的转化 1)​ 正常关闭数据库 2)​ STARTUP MOUNT 3)​ ALTER DATABASE ARCHIVELOG(ALTER DATABASE NOARCHIVELOG) 4)​ ALTER DATABASE OPEN 5)​ SHUTDOWN IMMEDIATE 6)​ FULL BACKUP 8 归档进程的控制 LOG_ARCHIVE_MAX_PROCESSES:该参数决定了最多可使用的归档进程数 最多可指定10个。这是一个动态参数。可用以下命令修改 alter system set log_archive_max_processes=3; 9 自动归档 log_archive_start=TRUE 手工归档的命令 ALTER SYSTEM ARCHIVE LOG START TO ‘?/ dbs/ arch’; 手工停止的命令 ALTER SYSTEM ARCHIVE LOG STOP; 手工归档某一个日志文件 ALTER SYSTEM ARCHIVE LOG SEQUENCE 052; 10 显示归档信息的命令 archive log list 三 第四课 不用RMAN的物理备份 1 非归档备份 冷备份:先把数据库正常关闭(SHUTDOWN ABORT除外),然后将控制文件,日志文件和数据文件进行备份。 2 归档备份 热备份:在数据库打开的状态下备份 命令:alter tablespace user_data begin backup; cp alter tablespace user_data end backup; 查阅备份信息的动态视图:V$BACKUP 、 V$DATAFILE_HEADER 3 备份控制文件 alter database backup controlfile to ‘ control1. bkp`;(二进制文件) 或者 alter database backup controlfile to trace;(在TRACE文件中可以看到相关信息) 4 只读数据文件 只读数据文件只要做一次备份即可。 四 第五课 不用RMAN的完全恢复 1 非归档模式 把冷备份拷贝回来,如果原路径不能使用可以改名恢复。 对控制文件只要在参数文件中指向新的路径即可 对日志和数据文件可以用以下方法: startup mount alter database rename file ‘/ disk1/ data/ user_01. dbf’ to ‘/ disk2/ data/ user_01. dbf’; alter database open; 2 归档模式 归档模式有以下四种方法: 1)​ 由于丢失的数据文件属于系统表空间所以数据库原始状态是关闭的,并且没有办法先把数据库打开再恢复。所以只能在数据库MOUNT状态进行恢复。 步骤如下: A 拷贝备份文件到正确路径 B MOUNT 数据库 C 使用如下命令:recover datafile ‘/ disk2/ data/ df2. dbf‘; D ALTER DATABASE OPEN 注意:如果恢复时要多个归档文件那么需要使用AUTOMATIC选项 或者在SQLPLUS中先SET AUTORECOVERY ON 所有需要的归档文件拷回LOG_ARCHIVE_DEST 2)​ 数据库某个文件损坏但是数据库依然打开,在数据库打开时进行恢复。 步骤如下: A 一旦某个文件损坏那么该文件自动变成离线状态,找到该文件,然后把该文件的备份拷回到正确路径 B 使用以下命令:recover datafile ‘/ disk2/ backup/ df2. dbf‘; 或者recover tablespace USER_DATA; C alter database datafile ‘/ disk2/ data/ df2. dbf‘ online; 或者alter tablespace USER_DATA online; 3)​ 数据库某个文件损坏导致数据库关闭(但该文件不属于系统表空间并且不包含回滚段),先想办法把数据库打开再进行恢复操作。 A 先MOUNT数据库STARTUP MOUNT B 找到损坏的文件,查看它的状态,如果状态不是离线需要把它变为离线状态并把它的备份文件拷回。 C 打开数据库ALTER DATABASE OPEN D recover datafile ‘/ disk3/ data/ df2. dbf‘;、 或者recover tablespace USER_ DATA; E alter database datafile ‘/ disk3/ data/ df2. dbf‘ online; 或者alter tablespace USER_ DATA online; 4)​ 丢失的数据文件没有备份的恢复方法(不能属于系统表空间或包含回滚段) A 先把丢失的数据文件离线然后想办法打开数据库 B alter database create datafile ‘/ disk2/ DATA/ df7. dbf’ 2 as ‘/ disk1/ DATA/ df7. dbf‘; C recover tablespace TABLE_ DATA; D alter tablespace TABLE_ DATA online; 3 在备份过程中出现文件丢失错误怎么办? 1)​ 找到备份文件select * from v$ backup; 2)​ 结束备份状态alter database datafile 2 end backup; 3)​ 打开数据库 4)​ 用上面讨论过的方法恢复 4 日志文件丢失或有冲突怎么办? 1)​ 清除冲突日志文件(该文件为当前组,数据库只有两组文件) A SQL > alter database clear unarchived logfile group 1; 注意:如果采用该命令没有产生归档文件那么完全恢复不可能实现,执行该命令后请做一个备份。 B SQL > alter database clear unarchived logfile group 1 unrecoverable datafile; 该命令比较罕见,它会清除一个日志文件即使有OFFLINE的数据文件需要该日志文件恢复,一旦使用该命令会产生两个结果: ·RESTORE所有的数据文件并执行不完全恢复 ·删除包含离线数据文件的表空间 注意: 需要该日志文件来恢复的离线文件会不可用 该日志文件不会归档 执行该命令后马上做一个备份 2)​ 如果丢失的日志文件不是当前日志文件 A 先增加一组新的日志文件,再删除有问题的日志文件组,如果日志文件组有三组以上那么可以直接删除有问题的日志文件组 B 如果一个日志组丢失,而另一个日志组更丢失的日志组大小一样,可以把另一个日志组的日志文件拷贝到丢失日志组位置然后执行以下命令 host cp / disk1/ DATA/ log2a. rdo / disk1/ DATA/ log1a. rdo alter database clear logfile ‘/ disk1/ DATA/ log1a. rdo‘; 5 查看恢复信息的视图 V$RECOVERY_FILE_STATUS、V$RECOVERY_STATUS 五 第六课 归档模式下的不完全恢复 1​ 只能实现不完全恢复的原因 1)用户原因 · 用户错误删除了一个重要的表 · 用户插入了错误的数据并且已经提交 2) 某些需要用到的归档文件丢失 3) 所有的控制文件丢失 4) 丢失了所有非归档的在线日志文件和一个数据文件 2​ 不完全恢复的类型 不完全恢复与完全恢复差别很大,完全恢复是把某一个数据文件或某一个表空间离线恢复后再使之在线。 1) Time- based recovery 可以通过LOGMINER工具来找到错误操作发生的时间,这样可以更精确的进行基于时间的不完全恢复 recover [AUTOMATIC] database until time ‘ 1999- 03- 04: 14: 22: 03’; 恢复步骤如下: · Shut down and back up the database.(做一个完全的冷备份) · Restore all data files. · Do not restore the control file, redo logs, password files, or parameter files. · Mount the database and recover the data files before the time of failure. ·Open the database with RESETLOGS. · Perform a closed database backup. 2) Cancel- based recovery 当前在线日志文件丢失或者某些归档文件丢失时可以采用这种方式 recover database until cancel; 恢复步骤: · Shut down the database. · You already have a valid backup, so mount the instance. · Restore all data files from the most recent backup. · recover database until cancel · Open the database by using the RESETLOGS option. 3) Recovery using a backup control file 所有的控制文件丢失只有一个二进制备份时采用这种方式,或者用户在进行一个基于时间点的恢复而该时间点和现在数据库的结构不一样了。这时也必须使用备份控制文件。如果用户BACKUP TO TRACE保存了一条CREATE CONTROLFILE 语句时可以避免。 recover database until time ‘ 1999- 03- 04: 14: 22: 03’ using backup controlfile; EXAMPLE:用户在某一个时间点错误地删除了一个表空间drop tablespace emp_ ts including contents; 恢复步骤如下: · Shut down the database, back up control files, then restore all data files and control files for the database at a time when the tablespace existed. · 因为控制文件和日志文件不同步所有无法正常打开数据库。用户需要执行以下命令:select * from v$ recover_ file; alter database datafile 4 online;(必须要让所有的数据文件在线) recover database until time ’ 1999- 03- 09: 11: 44: 00’ using backup controlfile; alter database open resetlogs; 4) Change- based recovery 与基于时间点的恢复类似,这种方式恢复需要提供一个SCN号。 3​ 当前在线日志文件丢失的方法: 当前在线日志文件丢失后数据库有可能处于两种状态 1)​ 数据库依然打开但是HANG住,但是还能进行一些管理操作。 用以下方法恢复 清除日志文件组alter database clear unarchived logfile group 1; 2)​ 数据库关闭 用以下方法恢复 A STARTUP MOUNT B alter database clear unarchived logfile group 2; C recover database until cancel; D ALTER DATABASE OPEN RESETLOGS 4​ 数据库恢复后以RESETLOGS 方式打开后再出现问题的恢复方法 所有的归档日志均存在,OPEN RESETLOGS前后的控制文件都存在。OPEN RESETLOGS之前的备份存在,之后无备份 恢复步骤如下: 1)​ 拷贝现在的控制文件到别的位置 Copy the current database control files to another location. 2)​ 把OPEN RESETLOGS之前的备份拷回来 Restore the data files and control files from a backup before the last RESETLOGS operation. 3)​ Mount the database. 4)​ 从警告日志文件当中找到OPEN RESETLOGS的SCN号 Incomplete recovery done UNTIL CHANGE 309121 Media Recovery Complete 5)​ recover database until change 309121 using backup controlfile; 6)​ Shut down the database using the “ normal” option. 7)​ Restore the current control files from the location specified in step 1. 8)​ Mount the database. 9)​ Recover the database using the appropriate option in RECOVER DATABASE command. 10)​ Open the database. 六 第七课 EXPORT和IMPORT使用指南 1 EXP的各个参数我们在DBA那么课程中已经讲得很详细,现在来讨论完全、增量和累积备份 这三种备份的前提是做一个全库备份即 FULL=Y 1)​ 增量备份increament 增量备份只备份上一次备份(可以是完全、增量或累积备份)后改变的对象 增量备份在数据库有许多被修改的小表时使用,如果数据库中只有几个大表则不太合适。 EXAMPLE: exp system/ manager FULL= y inctype= Incremental file= expinc1.dmp累积备份 累积备份只备份上一次备份(完全或累积备份)后改变的对象。 EXAMPLE: cumulative exp system/ manager FULL= y inctype= cumulative file= expcum1.dmp 2 针对增量备份和累积备份的导入操作(IMP)。 Perform the following steps in the order given: 1) Run the import option with FULL=Y and INCTYPE=system on the most recent database export. 2) Run import again with FULL=Y and INCTYPE=restore using the most recent complete export. 3) Run all cumulative exports in order starting with the first cumulative export after the most recent complete export. 4) Run all incremental exports in order starting with the most recent cumulative export. EXAMPLE: 1) On Friday morning, you drop all the tables. The MOST RECENT export was an incremental on Thursday. Apply that export with SYSTEM option. (Imp file = 'thurs.dmp' userid=DBA/password full=y inctype=system) 2) Apply most recent COMPLETE export which was taken Saturday. (Imp file = 'sat.dmp' userid=DBA/password full=y inctype=restore) 3) A cumulative export was taken Wednesday. Apply it. (Imp file = 'wed.dmp' userid=DBA/password full=y inctype=restore) 4) Reapply the Thursday incremental with the RESTORE option. (Imp file = 'thurs.dmp' userid=DBA/password full=y inctype=restore) 3 如何导出一个表部分符合某一条件的数据? EXAMPLE: NT Exp system/manager query="""where empno>7900""" tables=emp file=d:\test\emptb.dmp log=emp.logUNIX Exp system/manager query=\"ename like \'ABC%\'\" tables=emp file=d:\test\emptb.dmp log=emp.log 七 第八课 恢复的附加信息 1 并行恢复(Parallel recovery) 参数RECOVERY_PARALLELISM指定了实例恢复时使用的恢复进程。 它不能超过参数PARALLEL_MAX_SERVERS指定的值 RECOVER DATABASE PARALLEL (DEGREE 2)在恢复命令中指定并行度它会覆盖RECOVERY_PARALLELISM参数指定的值。 2 丢失一个数据文件的恢复方法 参看LEGATO和RMAN使用指南。 对非归档模式,在数据库MOUNT阶段执行以下命令: ALTER DATABASE DATAFILE ‘/ users/ dba00/ u01/ user01. dbf’ 2 OFFLINE; 对归档模式,需执行以下命令: ALTER DATABASE DATAFILE ‘/ users/ dba00/ u01/ user01. dbf’ 2 OFFLINE IMMEDIATE; 对某些表空间不需要恢复只要重建即可这时可以在数据库MOUNT阶段执行以下命令: ALTER DATABASE DATAFILE ‘/ users/ dba00/ u01/ user01. dbf’ 2 OFFLINE DROP; 3 丢失控制文件的恢复方法 1)​ 有镜像的控制文件,只要把控制文件拷贝一份就行。 2)​ 备份到TRACE 文件中,先把数据库开启到NOMOUNT状态然后再创建控制文件即可。 3)​ 备份成二进制文件,在MOUNT阶段执行以下命令了: recover database using backup controlfile; 然后alter database open resetlogs;即可。 3 只读表空间的恢复 1)​ 表空间备份前后始终处于只读状态,这时只要把备份文件拷回来就行。 2)​ 表空间备份时是只读状态后来变成读写模式 需要把备份拷回然后进行恢复 3)​ 表空间备份时是读写模式后来变成只读模式 一般表空间变为只读模式后一定要备份,否则只有把老的备份拷回然后将表空间恢复到只读的时刻。 八 第九课 ORACLE解决故障的一些实用工具 1 警告日志文件和TRACE文件可以帮助我们发现问题 2 数据坏块的诊断 数据坏块是ORACLE数据库一个比较常见的故障 1)​ 两个重要的参数 DB_BLOCK_CHECKSUM:TRUE|FALSE 用来控制数据库在数据块和日志块修改前是否检查。该参数在数据块和日志块读写时都检查,对系统性能影响较大。 如果有冲突报ORA- 01578错误。 DB_ BLOCK_ CHECKING:TRUE|FALSE 用来控制数据库在数据块和索引块修改前是否检查。 只在数据块写的时候检查。对性能影响较小。 2)​ DBVERIFY Utility 用来检查数据文件是否含有坏块。对数据库的性能影响较少在需要的时候执行。 dbv file=/users/DBA00/data01.dbf logfile= dbv.log 也可以只检查数据文件的一部分 dbv /users/DB00/u03/data01.dbf start= 1 end= 500 如果检查的数据文件是裸设备,那么应该加上“END=”,如: dbv /dev/rdrd/system01 end= 500 3)​ 用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>variable cc number SQL>execute dbms_repair.check_object('SCOTT', 'EMP',corrupt_count=>:cc); 用以下命令可以看出CC的值 SQL>PRINT CC C 查询诊断信息 SELECT object_name, relative_file_id, block_id, marked_corrupt, corrupt_description, repair_description FROM repair_table; D 对有冲突的数据块做一个标记 execute dbms_repair.fix_corrupt_blocks('SCOTT', 'EMP', fix_count=>:fc); E 忽略有冲突的数据块 execute dbms_repair.skip_corrupt_blocks('SCOTT', 'EMP'); F 如果文件头部冲突导致FREELIST冲突,可以用以下命令解决 REBUILD_FREELISTS. G ANALYZE VALIDATE STRUCTURE 该命令可以检查表或索引的一致性及完整性,缺省结果记录在表INVALID_ ROWS中该表是由utlvalid. Sql脚本创建也可以指定即在命令的最后加上INTO SCHEMA.TABLE ANALYZE INDEX parts_ index VALIDATE STRUCTURE; 分析表及所有的索引命令如下,加上CASCADE关键字 ANALYZE TABLE emp VALIDATE STRUCTURE CASCADE; 九 第十课 RMAN概述 RMAN是ORACLE8以后提供的一个备份和恢复工具。在ORACLE7中使用的EBU工具。所以当你的数据库是ORACLE734版本时是不可能采用RMAN来备份和恢复的。 1 RMAN使用的包 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备份时归档文件时可能会出现某一个归档文件找不到的情况,这时可以加上from time ‘sysdate-1’这样的语句,注意在某些时候‘sysdate-1之间不能有空格,也可以为‘sysdate-1/24’ 3 控制文件的镜像 RMAN在进行备份工作时,数据库的控制文件很有可能会发生结构变化,如增加一个数据文件,为了解决这个问题,RMAN在备份时先生成一个镜像文件。却省路径和名称为: $ ORACLE_HOME/dbs/snapcf_.F(UNIX) $ ORACLE_HOME/ database/SNCF.ORA 或者可以用以下方法改变位置 RMAN> set snapshot controlfile name to ‘/disk1/backup/ctl_300.snp‘; 对OPS备份时情况可能复杂一些,如果不采用NFS方式,需要创建一个裸设备用来存放控制文件的镜像。 4​ 不用RMAN资料库的备份方法 rman nocatalog target system/ manager 5​ RMAN运行的几种模式 1)​ 交互式 rman target sys/sys_pwd@db1 catalog rman_db1/rman_db1@ catdb RMAN> run { 2> allocate channel d1 type disk; 3> backup database; 4> release channel d1;} 2)​ 批处理式,RMAN的备份或恢复命令存放在tbsbk. Rcv文件中 rman target internal/oracle@ora816 catalog rman/rman@rman @d:\test\tbsbk.rcv msglog d:\test\tbs.log tbsbk.rcv文件内容如下: run { allocate channel c1 type disk; backup filesperset 20 format 'd:\test\ysh%s:%t.arc' (archivelog from time 'SYSDATE-1/24' until time 'SYSDATE' delete input ); release channel c1; } 3)​ 测试式 rman cmdfile "d:\test\backtest.txt" backtest.txt内容如下: connect target internal/oracle@ora816 connect catalog rman/rman@rman run { allocate channel c1 type disk; backup filesperset 20 format 'd:\test\ysh%s:%t.arc' (archivelog from time 'SYSDATE-1/24' until time 'SYSDATE' delete input ); release channel c1; } 6​ RMAN命令如下: RMAN命令有两种类型: 1)​ 单独型 特点:独立执行与操作系统没有关联,不用分配通道。 如: Change Connect Create Catalog, Resync Catalog Create Script, Delete Script, Replace Script 2)​ 工作型: 特点:作为一个组执行,与操作系统交互,需要分配通道 如:包含在“RUN”中的所有命令。 7​ REPORT命令详解 1)​ report schema; report schema at time ' SYSDATE- 7'; 2)​ report need backup [incremental 0 |days 3| redundancy 2] report need backup incremental 5 database; report need backup days 2 tablespace system; 3)​ report unrecoverable 列出不能恢复的备份集 4)​ report obsolete;列出不需要的备份集,可以删除 8​ LIST 命令详解 list incarnation of database; 9​ 存储脚本 先创建一个脚本命令如下 RMAN>create script Level0Backup { allocate channel d1 type disk; backup incremental level 0 format 'd:\test\%d_%s_%p' filesperset 5 (database include current controlfile); sql 'alter SYSTEM archive log current'; release channel d1;} 注意 :教材上有一个错误filesperset 被印成了fileperset sql 'alter database archive log current';也不对应该为: sql 'alter SYSTEM archive log current'; 然后再运行该脚本 run {execute script Level0Backup;} 10​ RUN的命令示例 RUN关键字后可接许多命令常用的命令如下: 1)​ RMAN > run { host “ ls - l”; } 2)​ run {host "dir /w";} 3)​ RMAN > run { sql “ alter system switch logfile”;} 十一 第十一课 RMAN资料库的创建和维护 Recovery Catalog是RMAN工具中一个重要的组件。 1 创建恢复资料库的步骤如下: 1)​ 创建资料库 2)​ 把目标数据库注册进恢复资料库 3)​ 将恢复资料库与目标数据库的控制文件同步 4)​ 将数据库备份重置到某一个实体状态 5)​ 改变某些备份恢复文件的信息 6)​ 执行一个备份和恢复操作 2 常用命令 1)创建表空间(在资料数据库中) create tablespace rman_ts datafile ‘< directory>/< name>’ > size 20M default storage ( initial 100K next 100K pctincrease 0); 2)​ 创建用户(在资料数据库中) create user rman_db1 identified by rman_db1 default tablespace rman_ts temporary tablespace temp quota unlimited on rman_ts; 3)​ 授权(在资料数据库中) grant recovery_catalog_owner to rman_db1; grant connect, resource to rman_db1; 5)为资料数据库RMAN用户创建一些必须的对象 rman catalog rman_db1/ rman_db1@catdb msglog = catalog.log RMAN>create catalog tablespace rman_ ts; 6) 注册目标数据库到资料库中 RMAN> register database; 7)​ 再同步问题 资料库的许多信息是从控制文件读出来的当数据库的结构发生变化时,控制文件和资料库的信息就会出现不一致现象。这时就需要进行一个再同步工作。 在以下四种情况下需要进行再同步操作: Add or drop a tablespace Add or drop a data file Add or drop a rollback segment Relocate any database file 命令如下: $rman target scott/tiger@db01 catalog rman/rman@catdb RMAN > resync catalog; 下面的因素影响了再同步的频率: The following factors may influence how often you resync: The rate of archive log creation Frequency of database structure changes The need for faster resynchronizations 再同步命令的操作结果如下: Log switch records:日志切换记录 Archived log copy records:归档日志拷贝记录 Backup history records:备份历史记录 3 CHANGE命令 1)​ 让一个备份有效的命令 CHANGE BACKUPSET 12 AVAILABLE; CHANGE DATAFILECOPY ’/ u01/ db01/ backup/ systbs. bak’ available; 2)​ 在资料库中删除一个备份信息的命令 change archivelog ‘/ disk1/ archive/ arch_ 123. rdo‘ uncatalog; RMAN> change datafilecopy 4833 uncatalog; 3)​ CHANGE加上CROSSCHECK选项: 检查资料库中记载的备份信息在物理上是否存在 命令如下: CHANGE DATAFILECOPY ’/ u01/ db01/ backup/ systbs. bak’ CROSSCHECK; 4)​ 物理删除一个备份集的命令如下: rman target sys/change_on_install@db01 RMAN> connect catalog rman_db1/rman_db1@catdb RMAN > allocate channel for delete type disk; RMAN > change datafilecopy ‘/u01/db01/backup/system01.bak’ delete; RMAN > release channel; 5​ 常用的数据字典如下: 当使用恢复资料库时,可以使用一些数据字典来查询恢复资料库中的信息。 常用的字典如下: 1)​ select * from rc_database; 看资料库中注册数据库的信息 2)​ select DB_KEY, DBINC_KEY, DB_NAME, TS#, NAME, CREATION_CHANGE# CHANGE#, CREATION_TIME CRE_DATE from rc_tablespace; 看目标数据库的表空间备份信息 3)​ select * from rc_stored_script; 看恢复资料库中存储的脚本。 4)​ 还有几个相关的数据字典如下: RC_DATAFILE RC_STORED_SCRIPT_LINE RC_ARCHIVED_LOG RC_BACKUP_CONTROLFILE RC_BACKUP_CORRUPTION RC_BACKUP_DATAFILE RC_BACKUP_PIECE RC_ BACKUP_ SET RC_CONTROLFILE_COPY RC_COPY_CORRUPTION RC_DATABASE_INCARNATION RC_DATAFILE_COPY 第十二课 用RMAN来备份数据库 1​ 全备份:冷备份或热备份 用RMAN备份的两种方式: 镜像方式和备份集方式 2​ 通道的概念 BACKUP, RESTORE, or RECOVER 命令至少需要一个通道,对多DRIVER的带库而言我们可以分配多个通道。RMAN使用通道进程来联系ORACLE SERVER进程和操作系统。 通道存储介质的类型:通过下面查询可以看出ORACLE支持的通道类型 select * from v$backup_device(以系统用户查询) 可以对通道进行一些限制,常见的限制命令如下: set limit channel c1 kbytes = 9000; set limit channel c1 read rate = integer set limit channel c1 maxopenfiles = integer 并行度是由通道的个数决定的。如: connect target internal/oracle@ora816 connect catalog rman/rman@rman run { allocate channel c1 type disk; allocate channel c2 type disk; allocate channel c3 type disk; backup incremental level = 0 format '/disk1/backup/df%s%p.bak' ( datafile 1,4,5 channel c1 tag= DF1) ( datafile 2,3,9 channel c2 tag= DF2) ( datafile 6,7,8 channel c3 tag= DF3); sql 'alter system archive log current'; release channel c1; release channel c2; release channel c3; 3​ } 4​ TAGS:备份集的逻辑名 5​ 镜像拷贝 run { allocate channel d1 type disk; allocate channel d4 type disk; copy datafile 1 to ’/ disk1/ df1. dbf’, datafile 3 to ’/ disk1/ df3. dbf’; copy datafile 4 to ’/ disk1/ df4. dbf’; } 6​ 备份集 备份集是RMAN备份中最常使用的方法 它包含以下概念 A 格式的设置: %s 备份集号码 %p 备份片的号码 %d 数据库的名称 % n数据库的名称在右边加上X符号到8个字符长度 % t 备份集的时间标记 % u 八字符长代表备份集的号码和时间 %U 缺省使用的方法 % c 备份集的拷贝号 常用的格式format 'full_backup.arc' 7​ 归档文件的备份 RMAN > run { allocate channel t1 type ’SBT_TAPE’; backup filesperset 3 format ’/disk1/backup/ar_%t_%s_%p’ ( archivelog from logseq= 1056 until logseq= 1058 thread= 1 delete input); } 8​ 全备、增量备份和累积备份 1)​ 增量备份 先要创建一个LEVEL 为0的备份 增量备份建立在LEVEL0的备份基础上,增量备份读的数据块少,并且速度快,缺省为非累积。 多级增量备份: 0级备份是增量备份的基础(也可看为一个全备份) 1级备份可以每月做一次 2级备份可以每周做一次 3级备份可以每天做一次 示例: RMAN>run { allocate channel c1 type disk format = ’/home/disk1/user4/BACKUP/sun_%s_%p.bus’;
/
本文档为【oracle备份与恢复课程指南】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索