Oracle(2-13) RMAN Complete Recove

在这里插入图片描述

RMAN Complete Recove RMAN完全恢复
目标:

  • 了解RMAN用于恢复和恢复
  • 在ARCHIVELOG模式下执行完全恢复
  • 将数据文件还原到不同的位置
  • 使用归档重做日志文件重新定位和恢复表空间

一、基础知识

1、Restoration Using RMAN利用RMAN进行恢复

  • 使用RMAN RESTORE命令从备份集或映像副本还原文件
  • 使用RMAN RECOVERT命令恢复文件

2、Relocate a Tablespace 重新定位表空间

  • 使用SET NEWNAME命令来恢复文件
  • 使用SWITCH命令在控制文件中记录新名称
  • 使用RECOVELTABLESPACE命令恢复表空间的数据文件

二、基础操作

1、恢复前的准备

  • 备份整个数据库
backup database format '/u01/app/oracle/backup/wb_%U';

在这里插入图片描述

  • 做0级备份
backup incremental level 0 database plus archivelog delete all input format '/u01/app/oracle/backup/all_%U';

在这里插入图片描述
在这里插入图片描述

  • 创建一个表t4
    然后在打开一个窗口进入sqlplus中
CREATE TABLE t4(
    ID NUMBER,
    NAME VARCHAR2(50)
);

在这里插入图片描述
插入数据

insert into t4 values(0, 'jack');
insert into t4 values(1, 'henry');

查询表空间数据

select * from t4;

提交数据

commit;

我们在做一下归档切换

alter system checkpoint;
alter system switch logfile;

在这里插入图片描述

  • 做1级增量备份
backup incremental level 1 database plus archivelog delete all input format '/u01/app/oracle/backup/all_%U';

在这里插入图片描述
增量备份完成

  • 最后一步环境准备
    退出RNAM
quit

在这里插入图片描述
进入sqlplus关闭数据库

shutdown immediate;

在这里插入图片描述
删除所有数据文件

cd /u01/app/oracle/oradata/orcl
rm -f *.dbf

在这里插入图片描述
现在我们的准备工作就完成啦

2、恢复数据库

tip:首先要完成基础操作1

  • 进入sqlplus,启动到mount
    状态
startup mount

这个时候如何我们自己是startup也是只能启动到mount,因为所有的数据文件都丢失了

  • 连接RMAN
rman target sys/123@orcl nocatalog

在这里插入图片描述
提示数据库没有打开

  • 开始恢复
restore database;

在这里插入图片描述
RMAN选择合适的备份集开始恢复,我们发现在有全备和0级增量备份的时候,RMAN优先选择了0级增量备份进行恢复

recover database;

在这里插入图片描述
数据库恢复完成
打开数据库

alter database open;

在这里插入图片描述
在这里插入图片描述
再次进入sqlplus查询我们之前的数据
发现可以查到说明数据库已经打开了,并且数据正常

通过以下两个图片进行对比,第一张是恢复后的图片,第二张是恢复前的图片,我们大仙我们的数据也都完整的回来了
恢复后
恢复前
恢复完成

3、恢复单个数据文件

假如我们只有一个数据文件损坏了也是可以恢复的

我们首先进去sqlplus查询损坏数据文件的编号

col name format a50;
select file#,name from v$datafile;

在这里插入图片描述
我们这里以5号文件为例,手动删除5号文件模拟数据文件丢失
首先关闭数据库
关闭数据库

shutdown immediate;

然后手工删除数据文件
在这里插入图片描述
然后我们对5号文件进行恢复
在sqlplus下将数据库启动到mount状态下

startup mount;

然后在RMAN下执行

run {
	set newname for datafile 5 to '/u01/app/oracle/oradata/orcl/example01.dbf';
	restore database;
	switch datafile all;
	recover database;
	alter database open;
}

我这里目录还是放在原来的位置了,在实际生产中一般数据文件损坏都是因为磁盘损坏了,需要放在其他磁盘目录下
在这里插入图片描述
然后就可以将数据文件恢复了

4、在数据库打开的情况下恢复

先退出RMAN
在这里插入图片描述

在数据库启动期间,我们突然删除5号文件
在这里插入图片描述
然后在RMAN下恢复
进入RMAN执行下列命令

run {
	sql 'alter database datafile 5 offline';
	restore datafile 5;
	recover datafile 5;
	sql 'alter database datafile 5 online';
}

这里是对数据文件恢复的命令,如个是表空间的话只需要将datafile改成TABLESPACE,数据文件编号改成表空间名字就可以了,代码样例如下:

run {
	sql 'alter tablespace 表空间的名字 offline immediate';
	restore tablespace 表空间的名字;
	recover tablespace 表空间的名字;
	sql 'alter tablespace 表空间的名字 online';
}

在这里插入图片描述
然后发现数据文件恢复成功

完结散花在这里插入图片描述

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
回答: RMAN-03002、RMAN-06026和RMAN-06023是Oracle Recovery Manager (RMAN)在执行恢复操作时可能遇到的错误代码。 RMAN-03002错误表示恢复命令失败。这可能是由于一些目标数据库的问题导致的,比如目标数据库中缺少必要的备份文件或归档日志。 RMAN-06026错误表示在恢复过程中找不到某些目标。这可能是由于备份文件或归档日志丢失或不可用导致的。 RMAN-06023错误表示在恢复过程中无法找到指定的备份集或备份片段。 要解决这些错误,可以采取以下步骤: 1. 确保目标数据库中存在所需的备份文件和归档日志。可以使用RMAN的LIST命令来检查备份和归档日志的可用性。 2. 如果备份文件或归档日志确实丢失或不可用,您可能需要重新运行备份操作以生成所需的备份文件或归档日志。 3. 如果您使用的是恢复目录,则还应确保恢复目录中包含正确的备份信息。可以使用RMAN的LIST命令来检查恢复目录中的备份信息。 如果您需要更详细的解决方案,可以参考Oracle官方文档中的相关文章\[2\]。此外,您还可以通过启用RMAN的调试模式并记录调试日志\[3\]来获取更多的调试信息,以帮助您诊断和解决问题。 #### 引用[.reference_title] - *1* *2* *3* [笔记:物理Standby搭建时恢复报错RMAN-03002 RMAN-06026 RMAN-06100](https://blog.csdn.net/Lizi_TT/article/details/107707123)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会编程的喵星人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值