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

11 篇文章 1 订阅
7 篇文章 0 订阅

环境描述:

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个 Oracle RMAN 备份恢复数据库的具体步骤和命令,以案例演示的形式呈现: 1. 案例背景 某企业的 Oracle 数据库需要进行备份恢复,以确保数据的安全性和可用性。该企业选择使用 Oracle RMAN 工具进行备份恢复操作。 2. 解决过程 步骤一:创建备份目录 在进行备份恢复之前,需要先创建备份目录,用于存放备份文件和恢复文件。可以使用以下命令创建备份目录: ``` mkdir /backup ``` 步骤二:连接到目标数据库 使用 RMAN 命令连接到目标数据库,例如: ``` rman target / ``` 步骤三:设置备份类型和备份格式 设置备份类型和备份格式,例如: ``` backup database; ``` 该命令将备份整个数据库。 ``` backup archivelog all; ``` 该命令将备份所有归档日志文件。 步骤四:检查备份 备份完成后,可以使用以下命令检查备份文件: ``` list backup; ``` 该命令将列出所有备份文件。 步骤五:关闭数据库恢复数据 在进行恢复操作之前,需要先关闭数据库。使用以下命令关闭数据库: ``` shutdown immediate; ``` 然后,使用 RMAN 工具进行数据恢复。例如: ``` rman target / ``` ``` restore database; ``` 该命令将恢复整个数据库。如果只需要恢复部分数据,可以使用类似以下命令: ``` restore tablespace users; ``` 该命令将只恢复 users 表空间中的数据。 步骤六:打开数据库并检查数据完整性 在完成数据恢复后,需要使用以下命令打开数据库: ``` alter database open; ``` 然后,使用 Oracle 提供的工具检查数据库的完整性和一致性,例如使用 DBVERIFY 工具检查数据文件是否损坏,使用 ANALYZE 命令检查数据库的逻辑一致性等。 步骤七:退出 RMAN 所有操作完成后,可以使用以下命令退出 RMAN: ``` exit; ``` 3. 结论 通过以上的步骤和命令,成功使用 Oracle RMAN数据库进行了备份恢复操作。需要注意的是,在进行备份恢复之前,需要先进行备份目录的创建和设置备份类型和格式,同时也需要检查备份文件和恢复文件的存储和完整性,以便在需要时进行恢复

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值