中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解rman中的incarnation

發布時間:2021-11-30 10:11:54 來源:億速云 閱讀:191 作者:柒染 欄目:關系型數據庫

如何理解rman中的incarnation,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

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

那么在oracle中,它又是什么意思呢?有什么作用呢?

我們看一些基本概念

Current Incarnation(當前化身):數據庫當前正在使用的化身。

Parent Incarnation(父化身):數據庫當前化身的上一個化身。在父化身以 OPEN RESETLOGS 打開后,就生成當前化身。

Ancestor Incarnation(祖輩化身):在父化身之前,輾轉生成父化身的各個化身。

Direct Ancestral Path(直接祖輩路徑 / 宗譜):由數據庫的起始化身輾轉生成至當前化身的分支路徑,包含數據庫的歷代祖輩及父化身。

Orphan Incarnation(孤兒化身):不在數據庫當前化身的宗譜上的數據庫其它化身。

Orphaned Backups(孤兒備份):不是數據庫當前化身的宗譜上生成的數據庫備份。當前化身不能使

首先,我們可以來看一張圖,來對incarnation有個基本的了解
如何理解rman中的incarnation

如何理解rman中的incarnation

如圖,SCN1到SCN1000過程中,數據庫屬于incarnation 1,一直發展到橫向的SCN 2000,做了不完全恢復到了SCN 1000,此時SCN1000之后到橫向的SCN2000的便是(孤兒化身)。而SCN1000向上面的SCN2000發展形成incarnation 2。incarnation 1便是incarnation 2的(父輩化身)。

而SCN2000往上繼續發展到SCN3000時,又做了不完全恢復到SCN2000,SCN2000繼續橫向發展到SCN3000,形成incarnation 3.所以incarnation 1便是incarnation 3的(祖輩化身),incarnation 2便是incarnation 1的(祖輩化身)。

所有incarnation 1到 incarnation 3 的這條灰色軌跡便是Direct Ancestral  Path。

Incarnation 1 中 SCN 1000 之后的所有備份 和Incarnation 2 中 SCN 2000 之后的所有備份便是孤兒備份。

自此應該能夠對Incarnation又大概的了解了吧。

下面我們來通過實驗來了解下

RMAN> backup as compressed backupset database plus archivelog delete all input;

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       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

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿荣旗| 涡阳县| 汶川县| 福建省| 汶上县| 海盐县| 兖州市| 个旧市| 惠水县| 婺源县| 巴彦县| 甘孜| 济源市| 高邮市| 石家庄市| 晴隆县| 古田县| 鹿泉市| 开封市| 正宁县| 分宜县| 凤山县| 马关县| 固原市| 五原县| 吉林市| 厦门市| 平舆县| 武夷山市| 鄢陵县| 丰县| 东港市| 鹤岗市| 曲沃县| 乐东| 本溪| 乐陵市| 冀州市| 屏边| 东海县| 岗巴县|