Oracle如何跨越incarnation进行数据恢复

news2024/11/28 12:44:46
作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)
公众号:老苏畅谈运维
欢迎关注本人公众号,更多精彩与您分享。

从10g开始,incarnation被引入,每次使用resetlogs打开数据库,就会使incarnation + 1,也就是产生一个新的incarnation。resetlogs命令表示一个数据库逻辑生存期的结束和另一个数据库逻辑生存期的开始,Oracle把这个数据库逻辑生存期称为incarnation,也有人翻译成化身。
请添加图片描述
上图来源官方文档,其中灰色线是数据库rman恢复之后的运行路径。

当进行不完全恢复后,可能没达到恢复的要求,这个时候数据库已经被resetlogs方式打开过了,如果这个时候又想恢复上一个incarnation的某些数据,在这种场景下就需要进行跨incarnation进行恢复,我们来看一下具体的恢复的过程:
1、查看当前数据库的incarnation

RMAN> list incarnation;


List of Database Incarnations
DB Key  Inc Key DB Name  DB ID            STATUS  Reset SCN  Reset Time
------- ------- -------- ---------------- --- ---------- ----------
1       1       DBBBED   3361927164       PARENT  2064123    29-MAY-24
2       2       DBBBED   3361927164       PARENT  2086782    31-MAY-24
3       3       DBBBED   3361927164       CURRENT 4955996    30-JUL-24

在list incarnation命令中显示有3个incarnation,且第3条记录的status 字段为CURRENT,表示当前所在的化身。

把数据库的数据文件和日志文件都删除,不要清理控制文件,如果需要重新恢复库至4955996之前的SCN号(如4955990),将会出现什么情况?

RMAN> run{
set until scn 4955990;
restore database;
recover database;
}2> 3> 4> 5> 

executing command: SET until clause

Starting restore at 30-JUL-24
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 07/30/2024 15:36:03
RMAN-20208: UNTIL CHANGE is before RESETLOGS change

如上所示,恢复会报错,提示RMAN-20208,其实提示的也很清楚,就是告诉我们,控制文件里面已经记录过比这个SCN大的resetlogs,需要恢复的SCN不在当前数据库生命周期中。如需恢复,则需要把SCN重置到它所在的生命周期中(4955990应在第2个化身)

RMAN> reset database to incarnation 2;

database reset to incarnation 2

RMAN> list incarnation;


List of Database Incarnations
DB Key  Inc Key DB Name  DB ID            STATUS  Reset SCN  Reset Time
------- ------- -------- ---------------- --- ---------- ----------
1       1       DBBBED   3361927164       PARENT  2064123    29-MAY-24
2       2       DBBBED   3361927164       CURRENT 2086782    31-MAY-24
3       3       DBBBED   3361927164       ORPHAN  4955996    30-JUL-24

通过reset 命令可以重置数据库的生命周期。在重置后,可以看到第2号记录的STATUS字段调整为CURRENT,这时再进行恢复:

RMAN> run{
set until scn 4955990;
restore database;
recover database;
}2> 3> 4> 5> 

executing command: SET until clause

Starting restore at 30-JUL-24
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=10 device type=DISK

channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00002 to /u01/oradata/dbbbed/sysaux01.dbf
channel ORA_DISK_1: restoring datafile 00005 to /u01/oradata/dbbbed/tbst01.dbf
channel ORA_DISK_1: restoring datafile 00006 to /u01/oradata/dbbbed/szr01.dbf
channel ORA_DISK_1: restoring datafile 00007 to /u01/oradata/dbbbed/mssm01.dbf
channel ORA_DISK_1: reading from backup piece /media/backup/backlv0_DBBBED_20240729_1175614789_48_1
channel ORA_DISK_1: piece handle=/media/backup/backlv0_DBBBED_20240729_1175614789_48_1 tag=TAG20240729T153948
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00001 to /u01/oradata/dbbbed/system01.dbf
channel ORA_DISK_1: restoring datafile 00003 to /u01/oradata/dbbbed/undotbs01.dbf
channel ORA_DISK_1: restoring datafile 00004 to /u01/oradata/dbbbed/users01.dbf
channel ORA_DISK_1: restoring datafile 00008 to /u01/oradata/dbbbed/test0529.dbf
channel ORA_DISK_1: reading from backup piece /media/backup/backlv0_DBBBED_20240729_1175614789_47_1
channel ORA_DISK_1: piece handle=/media/backup/backlv0_DBBBED_20240729_1175614789_47_1 tag=TAG20240729T153948
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:25
Finished restore at 30-JUL-24

Starting recover at 30-JUL-24
using channel ORA_DISK_1

starting media recovery

archived log for thread 1 with sequence 54 is already on disk as file /u01/arch/1_54_1170455884.dbf
archived log for thread 1 with sequence 55 is already on disk as file /u01/arch/1_55_1170455884.dbf
archived log for thread 1 with sequence 56 is already on disk as file /u01/arch/1_56_1170455884.dbf
archived log file name=/u01/arch/1_54_1170455884.dbf thread=1 sequence=54
archived log file name=/u01/arch/1_55_1170455884.dbf thread=1 sequence=55
archived log file name=/u01/arch/1_56_1170455884.dbf thread=1 sequence=56
media recovery complete, elapsed time: 00:00:01
Finished recover at 30-JUL-24

在这里插入图片描述

可以看到恢复正常,然后使用open resetlogs打开看看

SQL> alter database open resetlogs;

Database altered.

打开正常。

关注我,学习更多的数据库知识!
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1961568.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Skywalking 入门与实战

一 什么是 Skywalking? Skywalking 时一个开源的分布式追踪系统,用于检测、诊断和优化分布式系统的功能。它可以帮助开发者和运维人员深入了解分布式系统中各个组件之间的调用关系、性能瓶颈以及异常情况,从而提供系统级的性能优化和故障排查。 1.1 为…

笑谈“八股文”,人生不成文

一、“八股文”在实际工作中是助力、阻力还是空谈? 作为现在各类大中小企业面试程序员时的必问内容,“八股文”似乎是很重要的存在。但“八股文”是否能在实际工作中发挥它“敲门砖”应有的作用呢?有IT人士不禁发出疑问:程序员面试…

AcWing3302. 表达式求值

代码解释 while(j<str.size()&&isdigit(str[j])){xx*10str[j]-0;}把字符串中里面连续的数字转化为int类型变量&#xff0c;比如输入996/3328,正常的挨个字符扫描只能扫到’9’,‘9’,‘6’,但是按照上面代码的算法是重新开了一个循环&#xff0c;直接把’9’,‘9’,…

【网络请求调试神器,curl -vvv 返回都有什么】

curl -vvv 是一个用于在命令行中执行 HTTP 请求的命令&#xff0c;其中 -vvv 是一个选项&#xff0c;用于启用详细的调试输出。 vvv: 这是一个选项&#xff0c;表示启用详细的调试输出。每个 v 增加调试信息的详细程度&#xff0c;vvv 是最高级别的详细输出。 详细输出包括&a…

【shell脚本快速一键部署项目】

目录 一、环境拓扑图二、主机环境描述三、注意四、需求描述五、shell代码的编写六、总结 一、环境拓扑图 二、主机环境描述 主机名主机地址需要提供的服务content.exam.com172.25.250.101提供基于 httpd/nginx 的 YUM仓库服务ntp.exam.com172.25.250.102提供基于Chronyd 的 NT…

GPU池化:点燃Jupyter Notebook中的AI算力之火

数据科学的火花在Jupyter Notebook中点燃&#xff0c;而GPU的加入&#xff0c;让这火焰更加炽热&#xff01;随着人工智能领域的飞速发展&#xff0c;利用GPU加速已成为数据科学和机器学习领域的新常态。 今天&#xff0c;我们要探索的&#xff0c;是Jupyter Notebook与GPU池化…

PHP学习:PHP基础

以.php作为后缀结尾的文件&#xff0c;由服务器解析和运行的语言。 一、语法 PHP 脚本可以放在文档中的任何位置。 PHP 脚本以 <?php 开始&#xff0c;以 ?> 结束。 <!DOCTYPE html> <html> <body><h1>My first PHP page</h1><?php …

spaCy语言模型下载

spaCy 是一个基于 Python 编写的开源自然语言处理&#xff08;NLP&#xff09;库&#xff0c;它提供了一系列的工具和功能&#xff0c;用于文本预处理、文本解析、命名实体识别、词性标注、句法分析和文本分类等任务。 spaCy支持多种语言模型对文本进行处理&#xff0c;包括中文…

自己在Vmware中搭建mqtt服务器

前言 在学习某个HMI的使用的时候&#xff0c;这个HMI带有MQTT功能&#xff0c;就想着自己是不是能够搭建一个自己的MQTT的服务器呢&#xff1f; 一、mqtt 自己搭建之一&#xff1a;Mosquitto 自己搭建MQTT服务器需要安装和运行MQTT服务软件&#xff0c;比如常用的是Mosquitto…

Tkinter简介与实战(1)

Tkinter简介与实战---实现一个计算器 Tkinter简介安装环境和安装命令WindowsmacOSLinux 注意事项使用正确的包管理器&#xff1a;检查安装完整性&#xff1a;更新 Python&#xff1a;使用虚拟环境&#xff1a; 一个实战例子-----计算器1.创建窗口&#xff1a;2.创建 GUI 组件&a…

学习大数据DAY27 Linux最终阶段测试

满分&#xff1a;100 得分&#xff1a;72 目录 一选择题&#xff08;每题 3 分&#xff0c;共计 30 分&#xff09; 二、编程题&#xff08;共 70…

ANSYS仿真DDR4的眼图

1 眼图的基本知识 对于数字信号&#xff0c;高低电平转换可以组合在多个序列中。以3位为例&#xff0c;总共有000-111和8种组合。在时域中&#xff0c;根据某个参考点对足够多的序列进行对齐&#xff0c;然后将波形叠加形成眼图&#xff0c;如下图所示。 图&#xff1a;眼图中…

JavaScript object find 示例

https://andi.cn/page/621631.html

从信息论的角度看微博推荐算法

引言 在数字时代&#xff0c;推荐系统已成为社交媒体和其他在线服务平台的核心组成部分。它们通过分析用户行为和偏好&#xff0c;为用户提供个性化的内容&#xff0c;从而提高用户满意度和平台的参与度。推荐系统不仅能够增强用户体验&#xff0c;还能显著提升广告投放的效率…

angular入门基础教程(一)环境配置与新建项目

ng已经更新到v18了&#xff0c;我对他的印象还停留在v1,v2的版本&#xff0c;最近研究了下&#xff0c;与react和vue是越来越像了&#xff0c;所以准备正式上手了。 新官网地址:https://angular.cn/ 准备条件 nodejs > 18.0vscodeng版本18.x(最新的版本) {"name&qu…

C# Unity 面向对象补全计划 之 继承(字段与属性)

本文仅作学习笔记与交流&#xff0c;不作任何商业用途&#xff0c;作者能力有限&#xff0c;如有不足还请斧正 本系列旨在通过补全学习之后&#xff0c;给出任意类图都能实现并做到逻辑上严丝合缝 Q&#xff1a;为什么要单讲继承字段与属性&#xff0c;不讲继承方法了吗&#x…

【SuperMap GIS 信创部署系列】-- 金蝶V10中间件

⼀、安装包获取 本⽂以10.2.1版本安装为例&#xff0c;官⽹下载iserver war包即可。 下载地址&#xff1a;http://support.supermap.com.cn/DownloadCenter/DownloadPage.aspx?id1852 ⼆、部署 iServer.war 1.解压安装包 将下载的supermap-iserver-10.2.1-war.zip包进⾏解…

基于单片机的步进电机系统设计方法探究

摘 要&#xff1a; 单片机是步进电机系统的重要组成部分&#xff0c;对于步进电机系统的驱动控制具有重要的影响。通过分析步进电机系统的工作原理&#xff0c;对步进电机系统进行规划设置。达到降低步进电机的使用成本&#xff0c;提高步进电机的效率与性能的效果。文章主要探…

WIFI 接收机和发射机同步问题+CFO/SFO频率偏移问题

Synchronization Between Sender and Receiver & CFO Correction 解决同步问题和频率偏移问题是下面论文的关键&#xff0c;接下来结合论文进行详细解读 解读论文&#xff1a;Verification and Redesign of OFDM Backscatter 论文pdf&#xff1a;https://www.usenix.org/s…

当自动驾驶遇上扩散模型(Panacea): 生成自动驾驶BEV数据集

Abstract 在自动驾驶领域&#xff0c;对高质量的标注训练数据的需求日益增加。在本文中&#xff0c;我们提出了Panacea&#xff0c;这是一种创新的方法&#xff0c;用于生成驾驶场景中的全景和可控视频&#xff0c;能够生成无限数量的多样化、标注的样本&#xff0c;对于自动驾…