分类: Oracle
2007-11-16 13:40:51
很多rman的文章或书籍的开头,总是会先写为什么要用rman,rman的优势等等。俺偏偏不如此,反倒把它放到最后面。俺认为但凡关注rman,不管了不了解、知不知道为什么要用,都不会影响到其选择rman的决定。至于其优势,相信通过前面篇章的论述,大家对其特点已经很了解,我再总结性的摘抄一些rman的优点,大家对号选择看看它们有没有自夸吧。
各种故障背景下的恢复方法
丢失或损坏的文件 归档模式 数据库状态 恢复方法
一个或多个数据文件 不归档模式 关闭状态 利用一致的完全数据库备份修复整个数据库,自从备份之后发生的所有修改都将丢失;修复数据库后不需要进行恢复,利用RESETLOGS选项直接打开数据库;
注意:在这种情况下进行恢复时,惟一一种可以不利用RESETLOGS选项打开数据库的情况就是在执行最近一次备份之后,联机重做日志中的内容没有被覆盖掉。
一个或多个数据文件,以及联机重做日志文件 不归档模式 关闭状态 利用一致的完全数据库备份修复整个数据库,自从备份之后发生的所有修改都将丢失;修复数据库后不需要进行恢复,利用RESETLOGS选项直接打开数据库。
一个或多个数据文件以及所有的控制文件 不归档模式 关闭状态 利用一致的完全数据库备份修复整个数据库,自从备份之后发生的所有修改都将丢失;修复数据库后不需要进行恢复,利用RESETLOGS选项直接打开数据库。
注:以上三种不归档模式下的数据库恢复都需要在数据库关闭状态下进行,并且需要拥有正确的控制文件备份。
一个或多个数据文件 归档模式 加载状态 在数据库打开状态下执行表空间或数据文件恢复操作,首先将表空间或数据文件置为脱机状态,然后利用备份修复它们,对它们进行恢复,最后再将它们重新置为联机状态;任何数据修改都不会丢失,并且在恢复过程中数据库的其他部分仍然是可以访问的。
全部的数据文件 归档模式 关闭状态 利用备份修复数据文件,然后使用控制文件加载数据库,并且执行完全恢复;如果所有的联机重做日志文件都没有丢失或损害,最后可以用正常方式打开数据库(不需要使用RESETLOGS选项)
一个或多个数据文件以及恢复所需的归档重做日志文件。 归档模式 加载状态 对包含丢失的数据文件的表空间进行基于时间的表空间恢复,将这个表空间恢复到最近的可用归档重做日志所对应的时刻下的状态。
所有的控制文件,还可能包括一个或多个数据文件 归档模式 未加载状态 利用备份修复丢失的控制文件与数据文件,然后对数据文件进行恢复;任何数据修改都不会丢失,但是在恢复过程中数据库将处于不可用状态。
所有的控制文件,还可能包含一个或多个数据文件,以及恢复所需的归档惩一儆百日志文件与联机重做日志文件 归档模式 未加载状态 利用备份修复丢失的控制文件与数据文件,然后进行不完全恢复,将数据库恢复到最近的可用归档重做日志所对应的时刻下的状态;包含在丢失的日志文件中以及它随后的其它日志文件中的数据修改都将会丢失;最后需要使用RESETLOGS选项来打开数据库。
注:归档模式下的数据库恢复并不一定要求关闭数据库,其中某些情况要求在加载模式下进行恢复,并且也需要拥有正确的控制文件备份。
不同备份恢复方式的特点
RMAN方式 自定义方式
在对联机数据文件进行备份时,RMAN将对当前处于不一致状态的数据块进行反复读取,直到读取到一个一致状态的数据块为止;你不将包含数据文件的表空间设置为进入备份模式 必须将包含要进行备份的数据文件的表空间设置为进入备份状态,然后在备份完成后再将表空间设置为退出备份模式;在表空间处于备份模式期间,数据库的性能将会由于频繁的I/O操作而受到严重影响(oracle会将用户修改的数据块先写入联机重做日志文件中)
可以进行增量备份,即仅对那些上一次自动备份以来发生变化的数据块进行备份;可以使用增量备份对数据库进行恢复,这就意味着你可以对运行在不归档模式下的数据库进行恢复;不过当数据库运行在不归档模式时,所做的增量备份也必须是一致的(即完全关闭状态下建立的备份) 在备份时只能对所有的数据块进行备份(复制文件),而不能仅对变化的数据块进行备份;如果数据库运行在不归档模式下,就只能进行数据库修复而不能进行任何恢复操作。
在备份过程中会对复制的每一个数据块进行校验,在利用备份进行修复时也会对数据库的正确性进行检查 在备份和修复过程中都不会对数据块进行任何校验与检查;如果修复所使用的备份中包含损坏的数据块,那么恢复后的数据库中将包含错误的数据
在备份过程中仅会复制那些包含数据的数据块,而并不会复制那些完全空白的数据块,这样得到的备份文件的大小就会大大缩小。 在备份过程中只能完全复制数据文件,无论数据文件中包含了多少实际数据,备份的大小与数据库的大小是相同的。
利用恢复目录来存放与备份和恢复相关的重要信息,包括:
数据库中包含的模式
哪些文件需要进行备份
哪些文件在经过了指定的天数后还没有进行新的备份
哪些文件由于已经有了更新的备份或者已经无法用户恢复过程而需要删除
当前RMAN的参数配置等 不会对用户的备份与恢复操作进行任何记录,除非你自己以手工方式进行记录
可以将一系统相关的RMAN命令作为脚本保存在档案库中,在需要时招行这些脚本就可以完成特定的备份或恢复操作 只能将备份或恢复命令保存成操作系统批处理文件,维护起来比较困难。
可以利用RMAN备份轻松地复制出一个与当前数据库一模一样的数据库,你可以利用复制出来的数据库作为测试用数据库或者备用数据库使用 如果要建立测试用数据库或备份数据库,必须按照创建普通数据库的过程来进行复杂的操作。
在进行备份或修复操作时可以自动进行并行操作 必须根据要进行备份或恢复的文件以手工方式并行招行操作系统命令
提供归档日志自动容错功能:如果RMAN发现某个备份中丢失了或损坏一个归档重做日志文件,它会自动利用其它备份中的相同的归档重做文件来进行替换 无法自动提供归档日志的容错替换功能
通过使用介质管理API,RMAN可以与其它第三方的介质管理软件紧密地结合在一起进行工作。 无法与任何第三方介质管理软件直接结合在一起进行工作。
在前面我已经不止一次的提到过,RMAN非常简单,同时也非常灵活,经过这近一个月的学习和实践,我们介绍了很多基础性的操作,当然RMAN的功能绝不止于此,一些更高级的功能,比如数据块恢复,通过Duplicate创建standby等等。路漫漫其修远矣,吾将上下而求索~~~~~