最近接手了一个客户的RAC-RAC dg环境的维护,登录上去之后发现dg延迟了8天,由于主库的空间非常紧张,归档日志早就删除了,所以准备使用rman基于scn点的备份恢复的方案恢复dg同步
在备份完成之后,使用新的控制文件进行数据恢复的时候报错datafile 43 not found:
检查了一下发现当时这个dg实施的文件路径放乱了,部分数据文件在+data01/orcl下(数据库别名),部分文件在orcl_old下:
由于使用了新的控制文件,又没有配置convert导致现在不知道文件的对应关系.
这个时候可以使用rman copy的方式自动将数据文件做转换:
1.rman catalog将所有的数据文件注册一下
RMAN>catalog start with '+data01';
2.查看数据文件的copy
已经存在的正确的数据文件,rman自动不会认为是copy副本,只有没有的文件才会当作数据文件副本,例如下面的datafile 43由于文件位置和controlfile中的不一致,所以自动把data01/磁盘组其它目录下的文件作为datafile copy了:
3.使用swith datafile命令将datafile切换到copy
将上面的信息拷贝到文件中,使用awk生成switch datafile命令:
再在rman中进行switch:
4.开启恢复