用DG备库做的rman备份恢复一个数据库

12 篇文章 1 订阅
7 篇文章 0 订阅
文章描述了一个在Oracle数据库环境中,由于主库磁盘空间不足,备份存储在备库上。在尝试将备份恢复到测试库时,遇到了数据文件路径未正确转换的问题。通过设置db_file_name_convert和log_file_name_convert参数,以及使用RMAN的setnewname命令来解决文件路径不匹配的错误,最终成功恢复数据库并进行不完全恢复的过程。
摘要由CSDN通过智能技术生成

环境描述:

1.因为主库存储空间不足,于是将备份放在dg备库上做。

2.主库因为磁盘空间问题,数据文件有两个目录。

3.dg备库因为主库两个数据文件目录里面有两个同名数据文件,所有dg备库也有两个数据文件目录。

4.主库与备库与测试库均为Windows系统11.2.0.4

恢复步骤

1.打开测试库到nomount
2.设置控制文件和归档日志路径
3.恢复控制文件

restore primary controlfile from ’d:\bak\FULL_SQ1RBKLE_1_1_20230505.BAK';

5.配置db_file_name_convert和log_file_name_convert参数

alter system set db_file_name_convert='X:\ORADATA\ORCL\','D:\ORADATA\ORCL1\','W:\ORADATA\ORCL\','D:\ORADATA\ORCL2\' scope=spfile;
alter system set log_file_name_convert='X:\ORADATA\ORCL\','D:\ORADATA\ORCL1\' scope=spfile;
--因为我这里恢复的是primary控制文件,所以我这路的convert里配置的是主库和新测试库的文件路径转换,和dg备库数据文件路径并没有关系。

6.打开测试库到mount
7.注册备份集
8.check备份集并删除过期备份集
9.开始恢复数据库
一开始我以为配置了convert参数后,可以直接恢复,恢复的时候会自动转换文件路径的,于是我直接用下面脚本restore

run{
allocate channel ch1 device type disk;
allocate channel ch2 device type disk;
allocate channel ch3 device type disk;
allocate channel ch4 device type disk;
restore database;
release channel ch1;
release channel ch2;
release channel ch3;
release channel ch4;
}

恢复过程出现报错:
在这里插入图片描述
这里恢复过程中出现的E盘数据文件路径是dg备库的数据文件路径,这个就很奇怪,查看控制文件中的数据文件路径:
在这里插入图片描述
这几个数据文件好像是dg做完之后,在主库添加的数据文件,不知道为什么这里恢复的时候没有转换过来。

这里我们尝试用rename的方式在控制文件中重命名数据文件路径,但是提示文件不存在不能rename。

于是尝试在restore的时候set newname,脚本如下:

run{
allocate channel ch1 device type disk;
allocate channel ch2 device type disk;
allocate channel ch3 device type disk;
allocate channel ch4 device type disk;
set newname for datafile 148 to 'D:\ORADATA\ORCL2\ZLWSDATANEW01.DBF';
 set newname for datafile 149 to 'D:\ORADATA\ORCL2\ZLWSDATANEW02.DBF';
 set newname for datafile 150 to 'D:\ORADATA\ORCL2\ZL9LISDATANEW02.DBF';
 set newname for datafile 151 to 'D:\ORADATA\ORCL2\ZL9INDEXCISNEW02.DB';
 set newname for datafile 152 to 'D:\ORADATA\ORCL2\ZLWSDATANEW03.DBF';
 set newname for datafile 153 to 'D:\ORADATA\ORCL2\JSGJLDYBNEW02.DBF';
 set newname for datafile 154 to 'D:\ORADATA\ORCL2\ZL9INDEXCISNEW03.DBF';
restore database;
switch datafile all;
release channel ch1;
release channel ch2;
release channel ch3;
release channel ch4;
}
--单独将这几个数据文件set newname是可行的,可以正常restore。

10.恢复归档
11.不完全恢复
12.open resetlogs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值