1.日志线程(Redo Thread):
每个实例用到的联机日志就是一个Redo Thread,单实例有且仅有一个Redo Thread。在RAC 环境下,每个实例都需要自己的联机日志,也就是每个实例都有自己的Redo Thread。 这种每实例一个Redo Thread的设计就是为了避免实例间共享Redo 文件引发的竞争,提高系统性能。 但是这也带了一个问题,就是用RMAN 备份RAC 的时候,需要所有的日志文件。 故需要在两个节点上互相把日志传送到另一个节点。
Thread 这个参数用来指定实例使用的Redo Thread 线程号。一般和该实例的INSTANCE_NUMBER 参数相同。 通过视图V$LOG的Thread#列可以确定日志组所属的线程.
2.物理备份又可分为用户管理备份(User-Managed Backup)和RMAN备份(Recovery Manager)。 前者是联合使用SQL 命令和OS的cp 命来进行文件备份。 Rman 备份指利用RMAN 工具来进行备份。
Rman 备份有几点好处:
增量备份
数据块恢复:可以在新进行数据块恢复,不必进行数据文件恢复,提高系统的可用性。
压缩备份
加密备份
3.RMAN 提供了不将表空间置入热备份模式而执行热备份的功能。 所以就避免了使用I/0操作,当结束数据文件的联机备份状态时,就可以进行正常的操作.Rman物理备份。
4.RMAN 在备份前是通过快照控制来参考的。 这就会造成不一致状态。
5.RMAN 开始备份每一个数据文件时需要得到一个一致的控制文件视图, RMAN需要知道备份开始时最新的检查点信息和文件信息。开始备份后,RMAN 需要这些信息在备份操作期间保持一致,也就是说RMAN需要一个读取一致的控制文件视图。除非RMAN 在备份持续时间内锁定控制文件,否则数据库会不断更新控制文件,所以不可能。 但是,锁定控制文件意味着数据库不能执行检查点操作和切换日志,或则不能产生新的归档日志,这些操作是不可能的。
所以就有了快照控制文件(snapshot controlfile),快照控制文件是控制文件的副本。 RMAN 只在备份和同步操作期间使用快照控制文件。 这些操作开始时,RMAN 会根据实际控制文件来刷新快照控制文件,这样会短暂的锁住控制文件,随后,RMAN 会切换到快照并在备份持续使用这个快照。 这种方式具有读取一致性,且不妨碍数据库活动。
6.归档日志的作用:
RMAN备份是一种物理的备份,它直接去读取数据块,因此rman是块级别的备份。从备份的那个时间点开始rman将锁定此刻的数据文件信息,也就是说只是备份数据文件到此刻的信息为之。
但是rman并不锁定数据文件的使用,也就是说rman的备份,不是数据库一致性状态的备份,由于rman备份是块级别的,它只备份控制文件中已经存在的数据块,同时数据库还在运行之中,那么就有可能会出现某些已经提交的操作,但是dbwn还没有写入数据文件,或者已经被rman备份过的数据块,又重新被修改,等等。
这些信息rman备份都不会记录,也是rman无法记录的。但是记录这些信息的是redo file,所以在rman完毕建议马上执行日志切换,然后备份归档日志,因为在rman恢复过程中,对于inconsistent backup,RMAN要靠这些已经归档的redo file信息恢复和保持数据库的一直状态。
由此,我们可以可以看出,其实归档文件中真正有用的是从rman备份开始到rman备份结束时刻系统产生的归档日志。同时rman在恢复的时候,restore database完毕后,会依次利用归档日志和联机日志进行完全恢复。此时利用的这些归档就是从rman备份开始到rman备份结束产生的归档日志。
因此备份归档日志是很必要的,当然联机日志也是必须的,这些日志保证了rman能够完全的恢复数据库。
7. 热备份和RMAN 在redo 上的区别:
热备份的时候redo log会增长较快,归档较平时增多,是由于在begin backup之后,如果正在备份(OS命令拷贝cp)的数据块恰好又在被用户修改(因为是热备份,用户可以操作),那么可能会产生split block的情况(split block被oracle认为是corrupt block),也就是说,一个Oracle Block可能包含多个OS Block, OS Level的拷贝可能正拷贝的是一个Oracle Block的一部分(比如Header),而另一部分(比如尾端)被用户更新,发生变化,这样导致一个Oracle Block内部的不一致(不是consistent version),可能出现一个数据块包含了几个不同版本的操作系统块,被称为Split Block。
Oracle处理Split block的方法是将整个当前Oracle split block(变更后的)写入online redo log中,恢复的时候如果发现datafile中某个Oracle Block中有不同版本(的OS Block),就从redo把这个变更后的镜像拷贝回来,在这个版本一致的镜像上开始恢复。 不是像原来那样只写入更新部分到redo log, 所以热备期间redo log会激增 。
通过以上面的分析,可以看出,如果用热备份,那么会产生大量的redo log。 因为热备份把不一致的内容全部写入了redo log。
而RMAN 备份允许不一致备份,那些不一致的数据块也会直接备份,但是,在这种情况下,必须通过应用归档文件,使数据块一直之后才能打开数据库。 所以RMAN 不会产生大量的redo,这也是RMAN的优点之一。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28671854/viewspace-755273/
,如需转载,请注明出处,否则将追究法律责任。