为什么需要恢复目录?
1.因为控制文件中Rman的元数据存放天数达到control_file_record_keep_time 后,可能被覆盖。
2.恢复目录可以存储脚本。
一、建立恢复目录:
create tablespace rman_ts datafile '' size 15M;
create user rman identified by rman default tablespace rman_ts;
grant connect,resource,recovery_catalog_owner to rman;
rman catalog rman/rman@catdb
create catalog; --创建数据字典
connect target sys/oracle@demo
register database; --注册数据库,将控制文件中的信息同步到恢复目录中
report schema;
二、建立存储脚本
rman catalog rman/rman@catdb target sys/oracle@demo
--创建存储脚本
create script bak_database {
backup format='' database include current controlfile plus archivelog;
sql 'alter system archive log current';
}
run { execute script bak_database;} --执行脚本
rman catalog rman/rman@catdb target sys/oracle@demo script bak_database --执行脚本
print script bak_database; --显示存储脚本内容
replace script bak_database { --修改存储脚本内容
backup database format='';
}
delete script bak_database; --删除存储脚本
list script names; --显示存储脚本的名字
resync catalog; --同步恢复目录
unregister database; --注销恢复目录中对应数据库的记录
rman catalog rman/rman@catdb target sys/oracle@demo
upgrade catalog; --升级数据库以后,对应的catalog需要升级
upgrade catalog;
drop catalog; --删除恢复目录
drop catalog;
list incarnation of database; --显示数据库的副本
startup force mount
reset database to incarnation 2; --回退数据库到对应的副本
--恢复目录对应的几个元数据表
rc_database, rc_tablespace, rc_datafile, rc_stored_script, rc_stored_script_line