iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >RMAN深入解析之--Incarnation应用(不完全恢复)
  • 383
分享到

RMAN深入解析之--Incarnation应用(不完全恢复)

2024-04-02 19:04:59 383人浏览 八月长安
摘要

当在做Media Recover的不完全恢复时,通过resetlogs打开库,则Incarnation(数据库对应物)表示这个数据库的特定的逻辑生存期。当作为DBA可能面临这样的还原:需要使用上次执行re

当在做Media Recover的不完全恢复时,通过resetlogs打开库,则Incarnation(数据库对应物)表示这个数据库的特定的逻辑生存期。当作为DBA可能面临这样的还原:需要使用上次执行resetlogs命令打开数据库前生成的一个备份来进行还原数据库,或者可能需要还原到执行上一个resetlogs命令之前的时间点。

RMAN深入解析之--Incarnation应用(不完全恢复)



案例1:(不完全恢复1)

1、table被误删除,进行不完全恢复

17:12:11 SYS@ prod>select current_scn from v$database;

CURRENT_SCN

-----------

    2123790

 

17:12:24 SYS@ prod>conn scott/tiger

Connected.

17:12:43 SCOTT@ prod>select count(*) from emp1;

  COUNT(*)

----------

        28

Elapsed: 00:00:00.05

17:12:53 SCOTT@ prod>delete from emp1;

28 rows deleted.

Elapsed: 00:00:00.08

17:13:12 SCOTT@ prod>commit;

Commit complete.

Elapsed: 00:00:00.04

17:13:17 SCOTT@ prod>insert into emp1 select * from emp where empno=7788;

1 row created.

Elapsed: 00:00:00.04

17:13:28 SCOTT@ prod>update emp set empno=9999 where empno=7788;

1 row updated.

Elapsed: 00:00:00.03

17:13:43 SCOTT@ prod>commit;

Commit complete.

Elapsed: 00:00:00.04

17:13:45 SCOTT@ prod>select * from emp1;

    EMPNO ENAME      JOB              MGR HIREDATE        SAL      COMM    DEPTNO

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

      7788 SCOTT      ANALYST        7566 19-APR-87      3000                    20

Elapsed: 00:00:00.02


2、执行不完全恢复

RMAN>  run {

2>  set until scn 2123790;

3>  shutdown immediate;

4>  startup mount;

5>  restore database;

6>  recover database;

7>  alter database open resetlogs;

8>  sql'alter system switch logfile';

9>  }

executing command: SET until clause

using target database control file instead of recovery catalog

database closed

database dismounted

oracle instance shut down

connected to target database (not started)

Oracle instance started

database mounted

Total System Global Area    835104768 bytes

Fixed Size                    2217952 bytes

Variable Size                775948320 bytes

Database Buffers              54525952 bytes

Redo Buffers                  2412544 bytes

Starting restore at 15-JUL-14

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=18 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 00001 to /u01/app/oracle/oradata/prod/system01.dbf

channel ORA_DISK_1: restoring datafile 00002 to /u01/app/oracle/oradata/prod/sysaux01.dbf

channel ORA_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/prod/undotbs1.dbf

channel ORA_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/prod/users01.dbf

channel ORA_DISK_1: restoring datafile 00005 to /u01/app/oracle/oradata/prod/example01.dbf

channel ORA_DISK_1: restoring datafile 00006 to /u01/app/oracle/oradata/prod/tbs1.dbf

channel ORA_DISK_1: restoring datafile 00007 to /u01/app/oracle/oradata/prod/undotbs2.dbf

channel ORA_DISK_1: restoring datafile 00008 to /u01/app/oracle/oradata/prod/perftbs01.dbf

channel ORA_DISK_1: reading from backup piece /u01/app/oracle/product/11.2.0/db_1/dbs/0lpcfu61_1_1

channel ORA_DISK_1: piece handle=/u01/app/oracle/product/11.2.0/db_1/dbs/0lpcfu61_1_1 tag=TAG20140703T171545

channel ORA_DISK_1: restored backup piece 1

channel ORA_DISK_1: restore complete, elapsed time: 00:01:16

Finished restore at 15-JUL-14

Starting recover at 15-JUL-14

using channel ORA_DISK_1

starting media recovery

arcHived log for thread 1 with sequence 17 is already on disk as file /dsk4/arch2/arch_1_17_851265252.log

archived log for thread 1 with sequence 18 is already on disk as file /dsk4/arch2/arch_1_18_851265252.log

archived log for thread 1 with sequence 19 is already on disk as file /dsk4/arch2/arch_1_19_851265252.log

archived log file name=/dsk4/arch2/arch_1_17_851265252.log thread=1 sequence=17

media recovery complete, elapsed time: 00:00:09

Finished recover at 15-JUL-14

database opened


3、验证

[oracle@rh7 ~]$ sqlplus '/as sysdba'

SQL*Plus: Release 11.2.0.1.0 Production on Tue Jul 15 17:26:10 2014

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

17:26:10 SYS@ prod>select count(*) from scott.emp1;

  COUNT(*)

----------

        28

Elapsed: 00:00:00.03

17:27:09 SYS@ prod>


数据被恢复!

5、查看Incarnation

RMAN> list incarnation;

using target database control file instead of recovery catalog

List of Database Incarnations

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

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

1      1      PROD    239333010        PARENT  1          15-AUG-09

2      2      PROD    239333010        PARENT  945184    30-SEP-13

3      3      PROD    239333010        PARENT  1087512    18-MAY-14

4      4      PROD    239333010        PARENT  1857377    26-JUN-14

5      5      PROD    239333010        CURRENT 2123791    15-JUL-14

RMAN>

RMAN> list backup of database;

List of Backup Sets

===================

BS Key  Type LV Size      Device Type Elapsed Time Completion Time

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

17      Full    1.13G      DISK        00:01:21    03-JUL-14     

        BP Key: 17  Status: AVaiLABLE  Compressed: NO  Tag: TAG20140703T171545

        Piece Name: /u01/app/oracle/product/11.2.0/db_1/dbs/0lpcfu61_1_1

  List of Datafiles in backup set 17

  File LV Type Ckp SCN    Ckp Time  Name

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

  1      Full 2066885    03-JUL-14 /u01/app/oracle/oradata/prod/system01.dbf

  2      Full 2066885    03-JUL-14 /u01/app/oracle/oradata/prod/sysaux01.dbf

  3      Full 2066885    03-JUL-14 /u01/app/oracle/oradata/prod/undotbs1.dbf

  4      Full 2066885    03-JUL-14 /u01/app/oracle/oradata/prod/users01.dbf

  5      Full 2066885    03-JUL-14 /u01/app/oracle/oradata/prod/example01.dbf

  6      Full 2066885    03-JUL-14 /u01/app/oracle/oradata/prod/tbs1.dbf

  7      Full 2066885    03-JUL-14 /u01/app/oracle/oradata/prod/undotbs2.dbf

  8      Full 2066885    03-JUL-14 /u01/app/oracle/oradata/prod/perftbs01.dbf


案例2:(不完全恢复2)

1、table被误删除,通过不完全恢复进行恢复

17:42:24 SYS@ prod>conn scott/tiger

Connected.

17:42:28 SCOTT@ prod>insert into emp1 select * from emp where rownum <4;

3 rows created.

Elapsed: 00:00:00.05

17:42:42 SCOTT@ prod>commit;

Commit complete.

Elapsed: 00:00:00.01

17:42:44 SCOTT@ prod>insert into emp1 select * from emp where rownum <5;

4 rows created.

Elapsed: 00:00:00.02

17:42:52 SCOTT@ prod>commit;

Commit complete.

Elapsed: 00:00:00.05

17:42:55 SCOTT@ prod>conn /as sysdba

Connected.


17:43:01 SYS@ prod>select current_scn from v$database;

 


CURRENT_SCN

-----------

    2124840

 

17:43:13 SYS@ prod>alter system switch logfile;

System altered.

Elapsed: 00:00:00.10

17:43:38 SYS@ prod>conn scott/tiger

Connected.

17:43:42 SCOTT@ prod>select count(*) from scott.emp1;

  COUNT(*)

----------

        35

Elapsed: 00:00:00.02

17:43:48 SCOTT@ prod>delete from emp1;

35 rows deleted.

Elapsed: 00:00:00.04

17:43:56 SCOTT@ prod>commit;

Commit complete.

Elapsed: 00:00:00.01

17:43:58 SCOTT@ prod>insert into emp1 select * from emp where empno=7788;

1 row created.

Elapsed: 00:00:00.01

17:44:09 SCOTT@ prod>update emp1 set empno=8888;

1 row updated.

Elapsed: 00:00:00.01

17:44:16 SCOTT@ prod>commit;

Commit complete.

Elapsed: 00:00:00.02

17:44:17 SCOTT@ prod>select * from emp1;

    EMPNO ENAME      JOB              MGR HIREDATE        SAL      COMM    DEPTNO

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

      8888 SCOTT      ANALYST        7566 19-APR-87      3000                    20

Elapsed: 00:00:00.03


2、通过rman做不完全恢复

RMAN> run {

 set until scn 2124840;

2>  shutdown immediate;

3> 4>  startup mount;

5>  restore database;

6>  recover database;

7>  alter database open resetlogs;

8>  sql'alter system switch logfile';

9>  }

executing command: SET until clause

database closed

database dismounted

Oracle instance shut down

connected to target database (not started)

Oracle instance started

database mounted

Total System Global Area    835104768 bytes

Fixed Size                    2217952 bytes

Variable Size                775948320 bytes

Database Buffers              54525952 bytes

Redo Buffers                  2412544 bytes

Starting restore at 15-JUL-14

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=18 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 00001 to /u01/app/oracle/oradata/prod/system01.dbf

channel ORA_DISK_1: restoring datafile 00002 to /u01/app/oracle/oradata/prod/sysaux01.dbf

channel ORA_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/prod/undotbs1.dbf

channel ORA_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/prod/users01.dbf

channel ORA_DISK_1: restoring datafile 00005 to /u01/app/oracle/oradata/prod/example01.dbf

channel ORA_DISK_1: restoring datafile 00006 to /u01/app/oracle/oradata/prod/tbs1.dbf

channel ORA_DISK_1: restoring datafile 00007 to /u01/app/oracle/oradata/prod/undotbs2.dbf

channel ORA_DISK_1: restoring datafile 00008 to /u01/app/oracle/oradata/prod/perftbs01.dbf

channel ORA_DISK_1: reading from backup piece /u01/app/oracle/product/11.2.0/db_1/dbs/0lpcfu61_1_1

channel ORA_DISK_1: piece handle=/u01/app/oracle/product/11.2.0/db_1/dbs/0lpcfu61_1_1 tag=TAG20140703T171545

channel ORA_DISK_1: restored backup piece 1

channel ORA_DISK_1: restore complete, elapsed time: 00:01:25

Finished restore at 15-JUL-14

Starting recover at 15-JUL-14

using channel ORA_DISK_1

starting media recovery

archived log for thread 1 with sequence 17 is already on disk as file /dsk4/arch2/arch_1_17_851265252.log

archived log for thread 1 with sequence 18 is already on disk as file /dsk4/arch2/arch_1_18_851265252.log

archived log for thread 1 with sequence 19 is already on disk as file /dsk4/arch2/arch_1_19_851265252.log

archived log for thread 1 with sequence 20 is already on disk as file /dsk4/arch2/arch_1_20_851265252.log

archived log for thread 1 with sequence 1 is already on disk as file /dsk4/arch2/arch_1_1_853003284.log

archived log file name=/dsk4/arch2/arch_1_17_851265252.log thread=1 sequence=17

archived log file name=/dsk4/arch2/arch_1_18_851265252.log thread=1 sequence=18

archived log file name=/dsk4/arch2/arch_1_19_851265252.log thread=1 sequence=19

archived log file name=/dsk4/arch2/arch_1_20_851265252.log thread=1 sequence=20

media recovery complete, elapsed time: 00:00:10

Finished recover at 15-JUL-14

database opened


3、验证

[oracle@rh7 ~]$ sqlplus '/as sysdba'

SQL*Plus: Release 11.2.0.1.0 Production on Tue Jul 15 17:48:52 2014

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

17:48:52 SYS@ prod>select count(*) from scott.emp1;

  COUNT(*)

----------

        35

Elapsed: 00:00:00.03


数据恢复成功!

4、查看Incarnation:

RMAN> list incarnation;

using target database control file instead of recovery catalog

List of Database Incarnations

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

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

1      1      PROD    239333010        PARENT  1          15-AUG-09

2      2      PROD    239333010        PARENT  945184    30-SEP-13

3      3      PROD    239333010        PARENT  1087512    18-MAY-14

4      4      PROD    239333010        PARENT  1857377    26-JUN-14

5      5      PROD    239333010        PARENT  2123791    15-JUL-14

6      6      PROD    239333010        CURRENT 2124841    15-JUL-14


注意:2124841 为当前Incarnation !

案例3:(不完全恢复3)

1、将数据库再次恢复到当前Incarnation前

RMAN> run {

set until scn 2122840;

3> shutdown immediate;

4> startup mount;

5> restore database;

6> recover database;

7> alter database open resetlogs;

8> }

executing command: SET until clause

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

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

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

RMAN-03002: failure of shutdown command at 07/15/2014 17:51:17

RMAN-20208: UNTIL CHANGE is before RESETLOGS change

---恢复出错,不能再恢复到当前Incarnation前 !

2、查看Incarnation

RMAN> list incarnation;

List of Database Incarnations

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

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

1 1 PROD 239333010 PARENT 1 15-AUG-09

2 2 PROD 239333010 PARENT 945184 30-SEP-13

3 3 PROD 239333010 PARENT 1087512 18-MAY-14

4 4 PROD 239333010 PARENT 1857377 26-JUN-14

5 5 PROD 239333010 PARENT 2123791 15-JUL-14

6 6 PROD 239333010 CURRENT 2124841 15-JUL-14


3、重新执行恢复

1、关闭数据库

RMAN> shutdown immediate;

database closed

database dismounted

Oracle  instance shut down


2、启动数据库到nomount

RMAN> startup mount;

connected to target database (not started)

Oracle instance started

database mounted

Total System Global Area 835104768 bytes

Fixed Size 2217952 bytes

Variable Size 775948320 bytes

Database Buffers 54525952 bytes

Redo Buffers 2412544 bytes


3、恢复Incarnation到前一个

RMAN> reset database to incarnation 5;

database reset to incarnation 5


RMAN> list incarnation;

List of Database Incarnations

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

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

1 1 PROD 239333010 PARENT 1 15-AUG-09

2 2 PROD 239333010 PARENT 945184 30-SEP-13

3 3 PROD 239333010 PARENT 1087512 18-MAY-14

4 4 PROD 239333010 PARENT 1857377 26-JUN-14

5 5 PROD 239333010 CURRENT 2123791 15-JUL-14

6 6 PROD 239333010 ORPHAN 2124841 15-JUL-14


4、restore数据库

RMAN> restore database until scn 2124835;


Starting restore at 15-JUL-14

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=21 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 00001 to /u01/app/oracle/oradata/prod/system01.dbf

channel ORA_DISK_1: restoring datafile 00002 to /u01/app/oracle/oradata/prod/sysaux01.dbf

channel ORA_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/prod/undotbs1.dbf

channel ORA_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/prod/users01.dbf

channel ORA_DISK_1: restoring datafile 00005 to /u01/app/oracle/oradata/prod/example01.dbf

channel ORA_DISK_1: restoring datafile 00006 to /u01/app/oracle/oradata/prod/tbs1.dbf

channel ORA_DISK_1: restoring datafile 00007 to /u01/app/oracle/oradata/prod/undotbs2.dbf

channel ORA_DISK_1: restoring datafile 00008 to /u01/app/oracle/oradata/prod/perftbs01.dbf

channel ORA_DISK_1: reading from backup piece /u01/app/oracle/product/11.2.0/db_1/dbs/0lpcfu61_1_1

channel ORA_DISK_1: piece handle=/u01/app/oracle/product/11.2.0/db_1/dbs/0lpcfu61_1_1 tag=TAG20140703T171545

channel ORA_DISK_1: restored backup piece 1

channel ORA_DISK_1: restore complete, elapsed time: 00:01:15

Finished restore at 15-JUL-14


5、Recover 数据库

RMAN> recover database until scn 2124835;

Starting recover at 15-JUL-14

using channel ORA_DISK_1

starting media recovery

archived log for thread 1 with sequence 17 is already on disk as file /dsk4/arch2/arch_1_17_851265252.log

archived log for thread 1 with sequence 18 is already on disk as file /dsk4/arch2/arch_1_18_851265252.log

archived log for thread 1 with sequence 19 is already on disk as file /dsk4/arch2/arch_1_19_851265252.log

archived log for thread 1 with sequence 20 is already on disk as file /dsk4/arch2/arch_1_20_851265252.log

archived log for thread 1 with sequence 1 is already on disk as file /dsk4/arch2/arch_1_1_853003284.log

archived log file name=/dsk4/arch2/arch_1_17_851265252.log thread=1 sequence=17

archived log file name=/dsk4/arch2/arch_1_18_851265252.log thread=1 sequence=18

archived log file name=/dsk4/arch2/arch_1_19_851265252.log thread=1 sequence=19

archived log file name=/dsk4/arch2/arch_1_20_851265252.log thread=1 sequence=20

archived log file name=/dsk4/arch2/arch_1_1_853003284.log thread=1 sequence=1

media recovery complete, elapsed time: 00:00:08

Finished recover at 15-JUL-14


6、查看Incarnation

RMAN> list incarnation;

List of Database Incarnations

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

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

1 1 PROD 239333010 PARENT 1 15-AUG-09

2 2 PROD 239333010 PARENT 945184 30-SEP-13

3 3 PROD 239333010 PARENT 1087512 18-MAY-14

4 4 PROD 239333010 PARENT 1857377 26-JUN-14

5 5 PROD 239333010 CURRENT 2123791 15-JUL-14

6 6 PROD 239333010 ORPHAN 2124841 15-JUL-14


7、打开数据库(resetlogs)

RMAN> alter database open resetlogs;

database opened

RMAN> list incarnation;

List of Database Incarnations

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

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

1 1 PROD 239333010 PARENT 1 15-AUG-09

2 2 PROD 239333010 PARENT 945184 30-SEP-13

3 3 PROD 239333010 PARENT 1087512 18-MAY-14

4 4 PROD 239333010 PARENT 1857377 26-JUN-14

5 5 PROD 239333010 PARENT 2123791 15-JUL-14

7 7 PROD 239333010 CURRENT 2124836 15-JUL-14

6 6 PROD 239333010 ORPHAN 2124841 15-JUL-14


8、验证

[oracle@rh7 ~]$ sqlplus '/as sysdba'

SQL*Plus: Release 11.2.0.1.0 Production on Tue Jul 15 18:01:11 2014

Copyright (c) 1982, 2009, Oracle. All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

18:01:11 SYS@ prod>select count(*) from scott.emp1;

COUNT(*)

----------

35

Elapsed: 00:00:00.05


@至此,数据恢复完成!

本文为转载文章

您可能感兴趣的文档:

--结束END--

本文标题: RMAN深入解析之--Incarnation应用(不完全恢复)

本文链接: https://www.lsjlt.com/news/49233.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • RMAN深入解析之--Incarnation应用(不完全恢复)
    当在做Media Recover的不完全恢复时,通过resetlogs打开库,则Incarnation(数据库对应物)表示这个数据库的特定的逻辑生存期。当作为DBA可能面临这样的还原:需要使用上次执行re...
    99+
    2024-04-02
  • 怎样深入解析RMAN 备份与恢复
    今天就跟大家聊聊有关怎样深入解析RMAN 备份与恢复,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。RMAN 备份与恢复深入解析一 数据库版本SQL> select *...
    99+
    2023-06-06
  • numpy函数:全面解析及深入应用
    numpy函数详解:从入门到精通 引言:在数据科学和机器学习领域,numpy是一个非常重要的Python库。它提供了高效而强大的多维数组操作工具,使得处理大规模数据变得轻松快捷。本文将详细介绍numpy库中一些最常用的函数,包括...
    99+
    2024-01-26
  • 深入理解Spring事务及传播机制之原理解析与实际应用
    目录事务概述事务管理事务传播机制事务传播机制实现框架源码解析总结Spring 框架是一个流行的Java应用程序框架,其中事务管理是其最重要的特性之一。事务是指一系列相关操作的集合,如...
    99+
    2023-05-16
    Spring事务及传播机制 Spring事务管理 Spring传播机制
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作