一、rman备份原理

1.当rman客户端连接到目标数据库后,执行备份命令时,会开启相应数量的通道,每个通道会在数据库端产生相应的服务进程。当数据库接收到使用rman备份的命令后,首先会读取数据库的控制文件,确定数据文件的存放位置等信息,对数据文件进行备份。rman在进行备份时,会请求oracle的共享内存段才创建自己的缓冲区,当服务进程扫描到的数据块读到缓冲区中,当输入缓冲区满后数据块会转移到输出缓冲区中,在转移过程中会对数据块进行检测,检测是否有损坏的数据块,当输出缓冲区被填满时,会形成备份片,与通道相应的服务进程会将其写入到指定位置。

二、rman压缩方式

1.空值压缩

扫描数据块进行备份时,从输入缓冲区转移到输出缓冲区的过程中,会过滤掉块头为空的块。空值压缩不会备份已分配但未被格式化的块

2.未使用块压缩

过滤掉不包含数据的数据块,即该数据块被使用过(被格式化过),但是不包含数据。

使用该方式进行压缩,需满足:

1)10.2及以上版本

2)数据文件是本地管理模式

3)完全备份或0级备份

4)备份的指定位置在磁盘上

3.二进制压缩算法

压缩比例为2-4倍,命令为:

rman>backup as compressed backupset database;

1)会消耗更多cou资源

2)耗时增加

3)节省空间

4)恢复时间长,恢复过程为膨胀过程