如何理解rman中的incarnation

技术如何理解rman中的incarnation如何理解rman中的incarnation,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。inc

对于许多新手来说,如何理解rman中的化身并不是很清楚。为了帮助大家解决这个问题,下面小编就详细讲解一下。需要的人可以从中学习,希望你能有所收获。

化身在英语中是“化身”的意思。

那么它在甲骨文中是什么意思呢?效果如何?

让我们看看基本概念.

当前化身:数据库当前正在使用的化身。

父化身:数据库当前化身的前一个化身。使用OPEN RESETLOGS打开父头像后,将生成当前头像。

祖先化身:在父亲化身之前,转身生成父亲化身的每一个化身。

直接祖先路径(直接祖先路径/系谱):从数据库初始化身到当前化身的分支路径,包括数据库的祖先和父代化身。

孤儿化身:数据库中不在数据库中当前化身谱系中的其他化身。

孤立备份:在不是数据库当前化身的系谱上生成的数据库备份。当前头像无法制作

首先,我们可以看一张图片对化身有一个基本的了解。

如何理解rman中的incarnation

如何理解rman中的incarnation

如图,从SCN1到SCN1000的过程中,数据库属于化身1,水平方向已经发展到SCN 2000,部分恢复到SCN 1000。此时是水平方向SCN1000到SCN2000之后(孤儿化身)。而SCN1000发展到SCN2000以上形成化身2。化身1是化身2的化身。

但当SCN2000继续向上发展到SCN3000时,并没有完全恢复到SCN2000,SCN2000继续水平发展到SCN3000,形成化身3。所以化身1就是化身3(祖先的化身),化身2就是化身1(祖先的化身)。

从化身1到化身3的所有灰色轨迹都是直接祖先路径。

化身1中SCN 1000之后的所有备份以及化身2中SCN 2000之后的所有备份都是孤立备份。

从那以后,你应该可以对化身有一个大致的了解。

下面我们来通过实验来了解下

RMAN备份为压缩备份数据库加上归档日志删除所有输入;

RMAN榜化身;

数据库化身列表

数据库密钥公司密钥数据库名称数据库标识状态重置SCN重置时间

- - - - - - -

1 1 ORCL 1446008355 PARENT 1 18-SEP-11

2 2 ORCL 1446008355 PARENT 787897 26-JUL-16

3 3 ORCL 14

46008355       PARENT  885125     03-AUG-16

4       4       ORCL     1446008355       PARENT  886406     13-AUG-16

5       5       ORCL     1446008355       CURRENT 906785     15-AUG-16

[oracle@linfan ~]$ sqlplus / as sysdba

SQL> grant dba to scott;

Grant succeeded.

SQL> begin

for i in 1 .. 10 loop

insert into test  select current_scn from v$database;

commit;

end loop;

end;  2    3    4    5    6 

  7  /

SQL> select * from test;

   CUR_SCN

----------

   1400123

   1400126

   1400129

   1400132

   1400135

   1400138

   1400141

   1400144

   1400147

   1400150

10 rows selected.

rman target /

RMAN> run {

startup mount force;

set until scn 1400138;

restore database;

recover database;

alter database open resetlogs;

}

查看数据,发现还原成功

SQL> select * from test;

   CUR_SCN

----------

   1400123

   1400126

   1400129

   1400132

   1400135

查看以下incarnation

RMAN> list incarnation  ;

List of Database Incarnations

DB Key  Inc Key DB Name  DB ID            STATUS  Reset SCN  Reset Time

------- ------- -------- ---------------- --- ---------- ----------

1       1       ORCL     1446008355       PARENT  1          18-SEP-11

2       2       ORCL     1446008355       PARENT  787897     26-JUL-16

3       3       ORCL     1446008355       PARENT  885125     03-AUG-16

4       4       ORCL     1446008355       PARENT  886406     13-AUG-16

5       5       ORCL     1446008355       PARENT  906785     15-AUG-16

6       6       ORCL     1446008355       CURRENT 1400139    05-DEC-16

发现诞生了DB为6的incarnation,5号已经成为PARENT

再次执行之前的存储过程

SQL> select * from test;

   CUR_SCN

----------

   1400123

   1400126

   1400129

   1400132

   1400135

   1400972

   1400975

   1400978

   1400981

   1400984

   1400987

   CUR_SCN

----------

   1400990

   1400993

   1400995

   1400999

15 rows selected.

再次进行不完全恢复

RMAN> run {

startup mount force;

set until scn 1400990;

restore database;

recover database;

alter database open resetlogs;

}

恢复成功,演化出了DB为7的incarnation

RMAN> list incarnation ;

List of Database Incarnations

DB Key  Inc Key DB Name  DB ID            STATUS  Reset SCN  Reset Time

------- ------- -------- ---------------- --- ---------- ----------

1       1       ORCL     1446008355       PARENT  1          18-SEP-11

2       2       ORCL     1446008355       PARENT  787897     26-JUL-16

3       3       ORCL     1446008355       PARENT  885125     03-AUG-16

4       4       ORCL     1446008355       PARENT  886406     13-AUG-16

5       5       ORCL     1446008355       PARENT  906785     15-AUG-16

6       6       ORCL     1446008355       PARENT  1400139    05-DEC-16

7       7       ORCL     1446008355       CURRENT 1400991    05-DEC-16

查看test表

SQL> select * from test;

   CUR_SCN

----------

   1400123

   1400126

   1400129

   1400132

   1400135

   1400972

   1400975

   1400978

   1400981

   1400984

   1400987

11 rows selected.

此时,我们若是想还原到1400132的状态,可以实现吗?
注:1400132是DB为5的incarnation下的SCN

 RMAN> run {

startup mount force;

set until scn 1400132;

restore database;

recover database;

alter database open resetlogs;

}

很遗憾地,爆出了RMAN-20208的错误。

Starting restore at 05-DEC-16

using target database control file instead of recovery catalog

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of restore command at 12/05/2016 17:10:14

RMAN-20208: UNTIL CHANGE is before RESETLOGS change

那么怎么解决RMAN-20208的错误呢

要回到DB为5的incarnation,再进行恢复

RMAN>  reset database to incarnation 5;

database reset to incarnation 5

 RMAN> run {

startup mount force;

set until scn 1400132;

restore database;

recover database;

alter database open resetlogs;

}

RMAN> list incarnation ;

List of Database Incarnations

DB Key  Inc Key DB Name  DB ID            STATUS  Reset SCN  Reset Time

------- ------- -------- ---------------- --- ---------- ----------

1       1       ORCL     1446008355       PARENT  1          18-SEP-11

2       2       ORCL     1446008355       PARENT  787897     26-JUL-16

3       3       ORCL     1446008355       PARENT  885125     03-AUG-16

4       4       ORCL     1446008355       PARENT  886406     13-AUG-16

5       5       ORCL     1446008355       PARENT  906785     15-AUG-16

8       8       ORCL     1446008355       CURRENT 1400133    05-DEC-16

6       6       ORCL     1446008355       ORPHAN  1400139    05-DEC-16

7       7       ORCL     1446008355       ORPHAN  1400991    05-DEC-16

SQL> select * from test;

   CUR_SCN

----------

   1400123

   1400126

   1400129

由此可见,数据已经还原到之前状态,演化出DB为8的化身,DB为6和7的化身变成了孤儿化身(ORPHAN),数据库恢复成功。

总结:如果想要恢复到之前 incarnation 的 scn,就需要先切换到之前的 incarnation

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/126267.html

(0)

相关推荐

  • Atomikos + druid 多数据源数据库连接超时回收问题怎么解决

    技术Atomikos + druid 多数据源数据库连接超时回收问题怎么解决Atomikos + druid 多数据源数据库连接超时回收问题怎么解决,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细

    攻略 2021年12月1日
  • 春天有哪些花开,春夏秋冬各有哪些花开哟

    技术春天有哪些花开,春夏秋冬各有哪些花开哟一年四季各有什么花对应开放1、春天春天开花的种类有很多,比如:梅花、水仙、迎春、白玉兰、琼花、君子兰、牡丹、芍药、丁香、杜鹃、西洋杜鹃、樱花、含笑、玫瑰、紫荆、棣棠、锦带花、连翘

    生活 2021年10月20日
  • 怎么解决MySQL中ERROR 1044 (42000)报错问题

    技术怎么解决MySQL中ERROR 1044 (42000)报错问题这篇文章主要讲解了“怎么解决MySQL中ERROR 1044 (42000)报错问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路

    攻略 2021年11月18日
  • Visual Studio 2005安装技巧有哪些

    技术Visual Studio 2005安装技巧有哪些这篇文章主要介绍了Visual Studio 2005安装技巧有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家

    攻略 2021年11月25日
  • 编写CSS的方法有哪些

    技术编写CSS的方法有哪些这篇文章主要讲解了“编写CSS的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“编写CSS的方法有哪些”吧!  CSS正在改变网站设计的

    攻略 2021年12月10日
  • 橘去掉木念什么,橘子去掉木字旁加一个鸟子念什么

    技术橘去掉木念什么,橘子去掉木字旁加一个鸟子念什么读音:[yù]鹬的繁体字“鷸”一种鸟,羽毛茶褐色,嘴橘去掉木念什么、脚都很长,趾间无蹼,常在水边或田野中捕吃小鱼、小虫和贝类。鹬聚、蛎鹬、鹬冠、鹬子、鹬蚌鹬鹬、杓鹬属、鹬

    生活 2021年10月22日