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

news/2024/11/29 4:40:42/

环境描述:

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.ppmy.cn/news/62779.html

相关文章

经典常用的脚本讲解

目录 一:echo 语句 二:while read命令​编辑 三:猴子摘香蕉问题 四:斐波拉切数求前10个数的和 ​五:随机生成8位数的密码 六:二进制转换 (1)余数倒排法 (2)减法正…

数组排序sort()方法

sort() 方法对数组的项目进行排序。 排序顺序可以是按字母或数字,也可以是升序(向上)或降序(向下)。 默认情况下,sort() 方法将按字母和升序将值作为字符串进行排序。 一、语法 array.sort(compareFunct…

【SWAT水文模型】SwatWeather软件使用教程

SwatWeather软件使用教程 1 SwatWeather天气模型发生器1.1 数据输入 2 各功能介绍2.1 计算降水2.2 计算气温2.3 计算辐射2.4 计算风速2.5 计算露点 参考 1 SwatWeather天气模型发生器 SwatWeather.exe 软件只要输入一定格式要求的文件,就可以根据提示进行所需 数据…

React初识

概述 React 是用于构建用户界面的 JS 库。React 是 MVC 中薄薄的一层 V,把数据变成 DOM 显示出来,它只关注表现层。React 原生就是函数 虚拟 DOM 特点 单向数据流 兼容性更好:支持IE8 JSX语法:处理数据和 DOM 之间的关系&…

画图以及代码分析结合的循环队列的实现

循环队列的实现 概念以及结构实现初始化判空判满入队出队从队头获得元素从队尾获得元素释放 概念以及结构 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”…

17.provide.inject.下

学习要点: 1.provide.inject 本节课我们来要了解一下 Vue3.x 中的 provide.inject(提供.注入)功能; 一.provide.inject 1. 使用 Composition API,也是使用 import 导入来实现的; // App.vue import { ref, provide } f…

uni-app nvue页面中使用video视频播放组件

我遇到的问题是&#xff0c;在nvue页面引用video组件&#xff0c;然后啥也没显示的&#xff0c;显示了无法控制播放&#xff0c;折腾了好久&#xff0c;在这里记录下来&#xff01;希望可以帮助到需要的人 我的代码是这样的&#xff08;src换成官方的举例&#xff09; <vi…

Vue面试题:30道含答案和代码示例的练习题

Vue中的双向数据绑定是怎么实现的&#xff1f; 双向数据绑定通过使用v-model指令实现。v-model指令会在表单元素上创建一个监听器&#xff0c;在用户输入时实时更新Vue实例的数据&#xff0c;并且在Vue实例数据变化时更新表单元素的值。 如何在Vue中定义一个方法&#xff1f;…