一、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)恢复时间长,恢复过程为膨胀过程