当前位置: 首页 > news >正文

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

环境描述:

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

http://www.lryc.cn/news/65943.html

相关文章:

  • JAVA中的IO操作有哪些?
  • 10:00面试,10:04就出来了 ,问的实在是太...
  • wangzherongyao PMO
  • Dart语法上
  • SignOff Criteria——POCV(Parametric OCV) introduction
  • Android 内存分析(java/native heap内存、虚拟内存、处理器内存 )
  • 产品思维与工程师思维
  • Android---启动速度优化
  • 使用 Mercury 直接从 Jupyter 构建 Web 程序
  • Python基础(二)
  • 第41讲:Python循环语句中的break-else语法结构
  • 双系统-真机安装ubuntu
  • Android实现向facebook回复消息代码
  • IDEA小技巧-Git的回滚强推代码找回
  • 即时通讯为什么不采用UDP的连接方式呢
  • 二叉树(纲领篇)
  • day41—选择题
  • Vue3 watch 监听对象数组中对象的特定属性
  • 请求策略库alova小记
  • [C++]string的使用
  • Kali Linux 操作系统安装详细步骤——基于 VMware 虚拟机
  • R语言APSIM模型应用及批量模拟实践技术
  • 破解马赛克有多「容易」?
  • 【.NET基础加强第八课--委托】
  • jetcache:阿里这款多级缓存框架一定要掌握
  • 干货 | 如何做一个简单的访谈研究?
  • 4年外包出来,5次面试全挂....
  • 基于遗传算法优化的核极限学习机(KELM)分类算法-附代码
  • 评判需求优先级5大规则和方法(纯干货):
  • c++ 11标准模板(STL) std::vector (七)