rman备份原理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

RMAN备份原理
在之前,看了用户管理的备份恢复管理,通过以SCN为线索贯穿整个过程,来熟悉了备份原理。

RMAN的备份过程和用户备份恢复管理有很大的区别,很多朋友了都没有理清楚原理
下面的是我的理解:
RMAN备份数据块的工作原理:
原理:RMAN基于备份算法规则来编译要备份的数据文件列表。

基于通道数和同时备份的数据文件数,RMAN在ORACEL共享内存段中
创建一些内存缓冲区一般是在PGA中不过有时候内存缓冲区会被推入SGA。

通道服务进程随后就开始读取数据文件,并在RMAN缓冲取
中填充这些数据块。

一个缓冲区被填满时,输入缓冲区的数据就会推出到输出缓冲区。

数据文件中的数据块都会都会发生这种
memery—to—monery write 的过程,如果数据块符合备份的标准,并且memery—to—monery write操作没有检查到
数据corruption则该数据块会被保存到输出数据缓冲区中,直到输出缓冲区被填满。

一但输出缓冲区被填满,输出缓冲区的内容就会被
推到备份位置(磁盘或者磁带)
RMAN备份数据库过程:
RMAN发出备份全库命令后,RMAN生成到目标数据库的bequeath连接,也就是说会检查ORACLA_SID变量中的实例名,并在该在实
例上产生一个服务器进程,然后作为sysdba登陆,然后会产生一个作为备份的通道,(在PGA 或者是在SGA分配存储)。

随后RMAN调用
SYS.DBMS_RCVMAN请求数据库结构信息,包括控制文件的信息(当前序列号,创建时间……)由于指定了备份全库,所以RMAN会请求
数据库中数据文件信息,并判断是否存在offline数据文件(包括所在的位置和工作方式)。

RMAN开始备份,为了保持数据一致性RMAN必须构建控制文件快照,接下来RMAN 调用DBMS _BACKUP_RESTORE数据包,该调用
可以创建备份片。

RMAN拥有文件列表,所以它为数据文件读取操作分配内存缓冲区,分配缓冲区后RMAN初始化备份片。

一旦初始化了备份片,
RMAN会判断是否使用了服务器参数文件,如果使用了则会做为备份的一部分,还要备份控制文件,之后才开始备份数据文件,并将其推至内存。

为了实现这一功能,通道进程在磁盘上执行预读取操作,并且将多个数据文件读入内存中,RMAN会判断数据块头信息是否仍然为零,如果数据块
没有被使用过,就不会发生到输出缓冲区的写操作,同时会丢弃这个数据块(这就RMAN 为什么会只备份使用过的数据的原因,也是它的优点)
RMAN还会执行检查数据块有没有corruption操作。

当检查通过了就被写入到输出缓冲区。

一旦输出缓冲区填满了,就被推至备份文件位置。

在备份数据块的时候,RMAN影子进程会得到备份状态信息。

并将它传给V$session_longops视图。

查询它能得到信息。

当数据文件的所有数据块都被读入输入缓冲区并确定了状态之后RMAN就会通过将这
个数据文件写入备份片来结束该文件的备份操作。

所有
数据文件写入备份片之后,RMAN生成最后一个对SYS DBMS BACKUP RESTORE 数据包的调用,该调用在控制文件中写入备份信息(包括
备份片名,启动备份操作时的检查点的SCN和完成备份的时间)
至此完成备份!。

相关文档
最新文档