RMAN除了单纯的备份恢复功能已经被赋予了越来越多的责任比如创建Standby数据库比如跨平台传输表空间中的表空间转换Oracleg的RMAN倒是没有太多飞跃性的更新
自定义archivelog删除策略
我们知道在g之前只有backupset的删除策略可以定义比如保留多长时间的备份或者保留多少份有效备份而删除归档日志只有在delete命令中定义删除全部备份完毕的或者删除从哪一个时间点到哪一个时间点的而在g中我们已经可以通过configure命令来定义归档日志的删除策略的比如增加了下面的语法只有在磁带上备份了次的归档日志才会被delete命令删除
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP TIMES TO DEVICE TYPE sbt
当然仅仅是增加语法那就只能称为比较无聊的新功能了除了configure语法之外现在在g中通过APPLIED ON STANDBY关键字可以定义只有对于所有的standby站点都已经applied的归档日志才会被删除或者定义所有被成功传送到standby站点的归档日志就可以被删除而以前这些都需要DBA自己撰写脚本从数据字典中查询到相关信息然后再通过脚本删除
直接通过网络复制数据库
在g之前如果要使用duplicate命令来复制一份数据库那么则需要源数据库需要在目标机器上的一份有效备份需要目标数据库在g中这一切被大大简化通过FROM ACTIVE DATABASE关键字我们只需要有一个源数据库就可以简单地通过网络在另外一台机器上复制一个相同的数据库了Oracle会通过一系列 Memory Script在内存中recover并且open目标数据库
另外在g之前duplicate数据库是不会自动复制spfile的而现在我们通过下面的语句就可以让Oracle在复制过程中自动生成一份spfile并且其中的初始化参数允许额外定义
DUPLICATE TARGET DATABASE
TO aux_db
FROM ACTIVE DATABASE
SPFILE PARAMETER_VALUE_CONVERT /u /u
SET SGA_MAX_SIZE = M
SET SGA_TARGET = M
SET LOG_FILE_NAME_CONVERT = /u/u
DB_FILE_NAME_CONVERT /u/u;
在g中使用duplicate复制一个数据库的准备步骤只需要目标数据库(AUXILIARY实例)
a 通过一个最简单的pfile把实例启动到nomount状态这个pfile中只需要包含DB_NAME和REMOTE_LOGIN_PASSWORFILE参数即可
b password文件必须事先建好而且SYS密码需要跟source数据库中相同这个通过orapwd可以轻松完成
c 目录结构需要事先创建好并且具有正确的权限
并行备份大文件
现在Oracle数据库中单个数据文件可以最大到T而在以前的版本中RMAN的最小备份单位就是datafile那么对于以后可能出现的这种超大数据文件RMAN备份就几乎无法操作了在g中通过backup命令中的SECTION SIZE关键字我们可以对数据文件指定section了每个section都作为一个独立单位来处理每个数据文件可以最多指定个 section
Section的好处在于一可以并行备份多个section提高备份速度二可以分多个时间分别备份一个大文件的多个section时间上化整为零更具有操作性
RMAN Catalog管理性增强
IMPORT CATALOG命令允许我们将一个catalog库中的信息转储到另外一个catalog库这在以前完全需要手工操作
推出Virtual Recovery Catalogs概念这是VPD的实例应用对于一个集中管理的catalog设置多个用户的虚拟catalog每个用户只能管理自己的数据安全性的进一步提高