RMAN学习记录
1、RMAN,使用SQL/PL实现,存储在数据字典中,早期版本是需要数据库打开,数据字典可用,RMAN才能使用,也就是RMAN无法在NOMOUNT和MOUNT模式下使用。但是在11G版本中,这个已经被集成到了oracle执行代码里面,所以在哪怕是进程关闭状态,RMAN也能使用。
2、RMAN,是服务器管理的备份,所以很多备份的信息,都会被保存起来,一直会被保存在目标数据库的控制文件中,也就是说,控制文件损坏,那么备份数据信息也就是说备份元数据就没有了。
同时,备份元数据,可以存放在恢复目录数据库中,可以简称为目录数据库。注意,区分两个不同的备份元数据保存方式,1是保存在目标数据库的控制文件中,2是保存在目录数据库中。保存在目标数据库的控制文件中,这种保存方式,这是默认的保存方式,而且,就算启动恢复目录,那么备份元数据还是会被保存在控制文件,当然也会按照要求保存在目录数据库中。
也就是说:
控制文件保存方式 一直会保存备份元数据,不管你是否启用目录数据库保存方式,除非超过一个参数的数值,那么控制文件的备份元数据就会被主动删除,这个参数是CONTROLFILE_RECORD_KEEP_TIME。
目录数据库保存方式 可以按照你的设置,启用或者不启用这个保存方式,这种保存方式,会一直保存所有的备份元数据库,除非你手动删除或者配置的自动删除过期数据。
3、使用RMAN,目标数据库必须启用归档,方法:数据库MOUNT模式下,ALTER DATABASE ARCHIVELOG;(纯属为了加强记忆)。在11g版本上,归档位置的默认值是闪回恢复区。
4、控制文件保存方式下得RMAN备份:
run {allocate channel d1 type disk;
allocate channel d2 type disk;
backup as backupset incremental level 0 database;
}
或者
run {allocate channel d1 type disk;
allocate channel d2 type disk;
backup as backupset incremental level 1 database;
}
两个不同备份级别,0级备份是全备份,1级备份为上次1级或者0级备份以来的更改的块的备份。1级备份的时候,如果之前没有0级备份,那么将实际执行0级备份任务。注意,这上面是没有指定了备份地址的,默认是在闪回恢复区,也可以指定。
backup as backupset format='u01/app/oracle/%d_%p_%s_%U' incremental level 1 database;
5、为了加快1级备份速度,可以开启块变更跟踪:
alter database enable block change tracking using file '$ORACLE_BASE/oradata/ORCL/datafile/change_tracking.dbf';
这是启用了块变更跟踪,启用后查询:
select * from v$block_change_tracking;
可以看到启用,及跟踪文件。
6、启用恢复目录:
这需要另外创建一个数据库,也就是后面需要的目录数据库。假定目标数据库全局名为ORCL,目录数据库全局名为CATDB。
目录数据库创建完成后,用SYSDBA登陆:
create tablespace rman datafile size 200m; ##表空间的名字随便,尽量取与RMAN相近的名称,为了便于识别这个表空间的用 途,注意datafile后面没有指定文件名称和位置,这是启用了OMF,如果没有启用OMF,那就是手动指定。
create user rman identified by rman default tablespace rman; ##可以认为这是模式,也可以认为这是个用户,这两个说法是一样的。
alter user rman quota unlimited on rman; ##为什么要把这句话独立出来,是因为早期版本,用户在用户默认表空间里面是没有空间限制的,但是在11g版本中,用户在用户默认表空间中,其配额为无,也就是0,所以需要执行这句话。
grant recovery_catalog_owner to rman; ##授予权限。
在目标数据库系统中,首先需要做好数据库NET连接,就是local service name配置,让sqlplus能够访问到目录数据库,然后:
rman catalog rman/rman@catdb
进入rman后:
create catalog; ##创建恢复目录
connect target /; ##使用系统验证连接本地目标数据库
register database; ##注册数据库,这时候会自动将目标数据库的控制文件中的备份元数据同步到恢复目录中。
7、RMAN备份,可以备份成备份集和映像副本:
backup as backupset database;
backup as copy database;
也可以只备份数据文件。
backup as backuset datafile 3;
backup as copy datafile 3;