但是rman并不锁定数据文件的使用,也就是说rman的备份,不是数据库一致性状态的备份,由于rman备份是块级别的,它只备份控制文件中已经存在的数据块,同时数据库还在运行之中,那么就有可能会出现某些已经提交的 *** 作,但是dbwn还没有写入数据文件,或者已经被rman备份过的数据块,又重新被修改,等等,
这些信息rman备份都不会记录,也是rman无法记录的。但是记录这些信息的是redo file,所以在rman完毕建议马上执行日志切换,然后备份归档日志,因为在rman恢复过程中,rman本身备份的数据是不一直的,要靠这些已经归档的redo file信息恢复和保持数据库的一直状态。
当然备份的归档日志中,可能包含有rman开始之前的归档,这些是没用的,
其实这些归档文件中真正有用的是从rman备份开始到rman备份结束时刻系统产生的归档日志。
同时rman在恢复的时候,restore database完毕后,会依次利用归档日志和联机日志进行完全恢复
。此时利用的这些归档就是从rman备份开始到rman备份结束产生的归档日志。
因此备份归档日志是很必要的,当然联机日志也是必须的,这些日志保证了rman能够完全的恢复数据库。
oracle中可以利用 rman 还原归档日志到某个时间点:1、理解还原与恢复
恢复(recover): 将备份之后的归档日志apply到数据库,也就根据归档日志的事务将数据库刷新到特定或最新状态(通常在还原之后 *** 作)。对于归
档日志中那些已提交的事务进行前滚,未提交的事务进行回滚。
还原归档日志: 还原归档日志是位于还原数据库与恢复数据库之间的这么一个过程。它会将那些在备份归档日志时使用delete [all] input方式
删除的归档日志还原到缺省的归档位置。在还原数据库之后,如果要做recover,也就是作介质恢复那就需要用到归档日志。那还原之后进行
recover需要的归档日志在哪里呢?归档日志在指定的归档路径那里,那到底有没有呢?如果有,还原时出现提示,归档日志已经在指定位置。
如果没有,但是备份的归档备份集那里有,也行啊。备份集里包含备份片,也就是打包了归档日志。那既然打包就要解包,解包到缺省路径
或指定路径。这就是还原归档日志。
--演示环境
--为了较好的模拟还原归档日志,我们仅仅使用了一个特定的数据文件进行copy方式备份,然后备份归档日志(备份时删除归档日志)
--接下来破坏数据文件,还原数据文件,还原归档日志文件,恢复日志文件。
[oracle@linux3 ~]$ cat /etc/issue
Enterprise Linux Enterprise Linux Server release 5.5 (Carthage)
Kernel \r on an \m
[oracle@linux3 ~]$ sqlplus -V
SQL*Plus: Release 11.2.0.1.0 Production
a、备份数据文件及归档日志
RMAN>list backup of archivelog all --->列出当前数据库已经备份的归档日志
specification does not match any backup in the repository
RMAN>list backupset --->列出当前数据库已存在的备份集
specification does not match any backup in the repository
SQL>select username,default_tablespace from dba_users where username='SCOTT' -->查看用户scott所在的表空间及数据文件
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)