Oracle RMAN 将 备份集 重新 注册到控制文件 说明

本文详细介绍了如何使用RMAN处理NOCATALOG备份集位置改变和控制文件重建的情况,包括将备份集重新注册到控制文件和执行完整的数据库恢复过程。

来自http://blog.youkuaiyun.com/tianlesoftware/article/details/8836092

一.说明

 

     RMAN 备份分2种,Catalog 和Nocatalog,对于Nocatalog,oracle 会使用控制文件来保存RMAN备份的一些记录。 而且实际上多数也是使用Nocatalog来备份。因为使用Nocatalog比较方便。

 

    但对于使用Nocatalog的情况就会让RMAN 恢复的时候依赖与控制文件中记录的备份的信息。如果不一致,就会导致不能进行有效的恢复。

 

我们这里演示二种情况:

(1)  使用RMAN 的nocatalog 进行备份,然后将备份转移到其他的目录, 在进行恢复。

(2)  使用Nocatalog 备份,然后重建控制文件,在使用RMAN 备份进行恢复。

 

两种方法都是使用catalog 命令把RMAN备份集的信息重新注册到控制文件。

 

 

二.备份集位置发生改变

 

在我们RMAN 进行异地恢复的时候,就会遇到路径的问题,如果路径不同,就没办法进行有效的恢复,我们看这时候怎么处理。

 

2.1 使用RMAN Nocatalog 进行全库备份

 

Nocatalog 下的RMAN 增量备份 shell脚本

http://blog.youkuaiyun.com/tianlesoftware/article/details/6164931

 

2.2 查看备份信息

 

[oracle@dave scripts]$ exportNLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"

 

[oracle@dave scripts]$ rman target /

 

Recovery Manager: Release 11.2.0.3.0 -Production on Tue Apr 16 04:49:49 2013

 

Copyright (c) 1982, 2011, Oracle and/or itsaffiliates.  All rights reserved.

 

connected to target database: ANQING(DBID=743034417)

 

RMAN> list backup summary;

 

 

using target database control file insteadof recovery catalog

 

List of Backups

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

Key    TY LV S Device Type Completion Time    #Pieces #Copies Compressed Tag

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

18     B  0  A DISK       2013-04-16 04:25:53 1       1       NO         DAVE_LEV0

19     B  0  A DISK       2013-04-16 04:26:01 1       1       NO        DAVE_LEV0

21     B  0  A DISK       2013-04-16 04:26:16 1       1       NO         DAVE_LEV0

22     B  A  A DISK       2013-04-16 04:26:26 1       1       NO         ARC_BAK

24     B  F  A DISK       2013-04-16 04:26:31 1       1       NO         BAK_CTLFILE

 

 

这里通过list 命令查看,也可以通过如下视图来查看详细信息:

V$BACKUP_PIECE, 

V$BACKUP_SET, 

V$BACKUP_DATAFILE, 

V$BACKUP_REDOLOG,

V$BACKUP_SPFILE.

 

通过V$BACKUP_PIECE 查询出来的备份集:

/u01/backup/dave_lev0_0jo76nh7_1_1_20130416

/u01/backup/dave_lev0_0io76nh7_1_1_20130416

/u01/backup/dave_lev0_0ko76nim_1_1_20130416

/u01/backup/arch_0no76njh_1_1_20130416

/u01/backup/ctl_file_0oo76njm_1_1_20130416

 

我这里备份集保存在/u01/backup的目录:

[oracle@dave admin]$ cd /u01/backup

[oracle@dave backup]$ ls

arch_0no76njh_1_1_20130416  block_change_tracking.f         dave_lev0_0io76nh7_1_1_20130416  dave_lev0_22o687qp_1_1_20130404

arch_1ho6566m_1_1_20130403  ctl_file_0oo76njm_1_1_20130416  dave_lev0_0jo76nh7_1_1_20130416  dave_spfile_1mo65679_1_1_20130403

arch_1io6566n_1_1_20130403  ctl_file_1lo65676_1_1_20130403  dave_lev0_0ko76nim_1_1_20130416  dave_spfile_29o687sc_1_1_20130404

arch_26o687rp_1_1_20130404  ctl_file_28o687sa_1_1_20130404  dave_lev0_20o687pl_1_1_20130404

arch_27o687s8_1_1_20130404  ctl_file_2ao6vobb_1_1_20130413  dave_lev0_21o687pl_1_1_20130404

 

 

 

2.3 将整个备份集目录进行修改

 

[oracle@dave u01]$ mv backup bak

 

[oracle@dave u01]$ cd bak

[oracle@dave bak]$ ls

arch_0no76njh_1_1_20130416  block_change_tracking.f         dave_lev0_0io76nh7_1_1_20130416  dave_lev0_22o687qp_1_1_20130404

arch_1ho6566m_1_1_20130403  ctl_file_0oo76njm_1_1_20130416  dave_lev0_0jo76nh7_1_1_20130416  dave_spfile_1mo65679_1_1_20130403

arch_1io6566n_1_1_20130403  ctl_file_1lo65676_1_1_20130403  dave_lev0_0ko76nim_1_1_20130416  dave_spfile_29o687sc_1_1_20130404

arch_26o687rp_1_1_20130404  ctl_file_28o687sa_1_1_20130404  dave_lev0_20o687pl_1_1_20130404

arch_27o687s8_1_1_20130404  ctl_file_2ao6vobb_1_1_20130413  dave_lev0_21o687pl_1_1_20130404

 

2.4用RMAN 效验

 

--使用RMAN 进行效验:

RMAN> list backupset summary;

 

using target database control file insteadof recovery catalog

 

List of Backups

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

Key    TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag

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

18     B  0  A DISK       16-APR-13       1       1      NO         DAVE_LEV0

19     B  0  A DISK       16-APR-13       1       1      NO         DAVE_LEV0

21     B  0  A DISK       16-APR-13       1       1      NO         DAVE_LEV0

22     B  A  A DISK       16-APR-13       1       1      NO         ARC_BAK

24     B  F  A DISK       16-APR-13       1       1      NO         BAK_CTLFILE

 

备份集有两种状态:

A(Available,RMAN认为该项存在于备份介质上), 

X(Expired,备份存在于控制文件或恢复目录中,但是并没有物理存在于备份介质上)

 

这里的状态是A。

 

 

RMAN> crosscheckbackup;

 

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=54 device type=DISK

crosschecked backup piece: found to be'EXPIRED'

backup piecehandle=/u01/backup/dave_lev0_0jo76nh7_1_1_20130416 RECID=18 STAMP=812867112

crosschecked backup piece: found to be'EXPIRED'

backup piecehandle=/u01/backup/dave_lev0_0io76nh7_1_1_20130416 RECID=19 STAMP=812867111

crosschecked backup piece: found to be'EXPIRED'

backup piecehandle=/u01/backup/dave_lev0_0ko76nim_1_1_20130416 RECID=21 STAMP=812867158

crosschecked backup piece: found to be'EXPIRED'

backup piecehandle=/u01/backup/arch_0no76njh_1_1_20130416 RECID=22 STAMP=812867185

crosschecked backup piece: found to be'EXPIRED'

backup piecehandle=/u01/backup/ctl_file_0oo76njm_1_1_20130416 RECID=24 STAMP=812867191

Crosschecked 5 objects

 

 

RMAN> list backupsetsummary;

 

 

List of Backups

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

Key    TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag

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

18      B 0  X DISK        16-APR-13       1      1       NO         DAVE_LEV0

19     B  0  X DISK       16-APR-13       1       1      NO         DAVE_LEV0

21     B  0  X DISK       16-APR-13       1       1      NO         DAVE_LEV0

22     B  A  X DISK       16-APR-13       1       1      NO         ARC_BAK

24     B  F  X DISK       16-APR-13       1       1      NO         BAK_CTLFILE

--当我们corsscheck 之后,状态就都变成X了。

 

--因为备份集物理不存在,这些都被标记为expired

RMAN> list expired backup;

 

 

List of Backup Sets

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

 

 

BS Key Type LV Size       Device TypeElapsed Time Completion Time

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

18     Incr 0  633.95M    DISK       00:00:42     16-APR-13     

       BP Key: 18   Status: EXPIRED  Compressed: NO  Tag: DAVE_LEV0

       Piece Name: /u01/backup/dave_lev0_0jo76nh7_1_1_20130416

 List of Datafiles in backup set 18

 File LV Type Ckp SCN    CkpTime  Name

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

 2    0  Incr 3136508    16-APR-13/u01/app/oracle/oradata/dave/sysaux01.dbf

 3    0  Incr 3136508    16-APR-13/u01/app/oracle/oradata/dave/undotbs01.dbf

 4    0  Incr 3136508    16-APR-13/u01/app/oracle/oradata/dave/users01.dbf

 8    0  Incr 3136508    16-APR-13 /u01/app/oracle/oradata/dave/FDA01.dbf

 9    0  Incr 3136508    16-APR-13/u01/app/oracle/oradata/dave/FDA02.dbf

 

BS Key Type LV Size       Device TypeElapsed Time Completion Time

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

19     Incr 0  908.19M    DISK       00:00:50     16-APR-13     

       BP Key: 19   Status: EXPIRED  Compressed: NO  Tag: DAVE_LEV0

       Piece Name: /u01/backup/dave_lev0_0io76nh7_1_1_20130416

 List of Datafiles in backup set 19

 File LV Type Ckp SCN    CkpTime  Name

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

 1    0  Incr 3136507    16-APR-13/u01/app/oracle/oradata/dave/system01.dbf

 10   0  Incr 3136507    16-APR-13/u01/app/oracle/oradata/dave/FDA03.dbf

 11   0  Incr 3136507    16-APR-13 /u01/app/oracle/oradata/dave/FDA04.dbf

 12   0  Incr 3136507    16-APR-13/u01/app/oracle/oradata/dave/ts01.dbf

 13   0  Incr 3136507    16-APR-13/u01/app/oracle/oradata/dave/ts02.dbf

 

BS Key Type LV Size       Device TypeElapsed Time Completion Time

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

21     Incr 0  426.01M    DISK       00:00:18     16-APR-13     

       BP Key: 21   Status: EXPIRED  Compressed: NO  Tag: DAVE_LEV0

       Piece Name: /u01/backup/dave_lev0_0ko76nim_1_1_20130416

 List of Datafiles in backup set 21

 File LV Type Ckp SCN    CkpTime  Name

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

 5    0  Incr 3136645    16-APR-13/u01/app/oracle/oradata/dave/example01.dbf

 6    0  Incr 3136645    16-APR-13/u01/app/oracle/oradata/dave/mssm01.dbf

 7    0  Incr 3136645    16-APR-13/u01/app/oracle/oradata/dave/assm01.dbf

 14   0  Incr 3136645    16-APR-13/u01/app/oracle/oradata/dave/dave01.dbf

 15   0  Incr 3136645    16-APR-13/u01/app/oracle/oradata/dave/anqing01.dbf

 

BS Key Size       Device Type ElapsedTime Completion Time

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

22     40.93M     DISK        00:00:01     16-APR-13     

       BP Key: 22   Status: EXPIRED  Compressed: NO  Tag: ARC_BAK

       Piece Name: /u01/backup/arch_0no76njh_1_1_20130416

 

 List of Archived Logs in backup set 22

 Thrd Seq     Low SCN    Low Time Next SCN   Next Time

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

 1    23      3120875   15-APR-13 3136670    16-APR-13

 1    24      3136670   16-APR-13 3136678    16-APR-13

 

BS Key Type LV Size       Device TypeElapsed Time Completion Time

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

24     Full    9.64M      DISK        00:00:01     16-APR-13     

       BP Key: 24   Status: EXPIRED  Compressed: NO  Tag: BAK_CTLFILE

       Piece Name: /u01/backup/ctl_file_0oo76njm_1_1_20130416

 Control File Included: Ckp SCN: 3136695      Ckp time: 16-APR-13

 

RMAN>

 

--删除这些过期的信息:

RMAN> delete noprompt expired backup;

 

using channel ORA_DISK_1

 

List of Backup Pieces

BP Key BS Key  Pc# Cp# Status      Device Type Piece Name

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

18     18      1   1  EXPIRED     DISK        /u01/backup/dave_lev0_0jo76nh7_1_1_20130416

19     19      1   1  EXPIRED     DISK       /u01/backup/dave_lev0_0io76nh7_1_1_20130416

21     21      1   1  EXPIRED     DISK       /u01/backup/dave_lev0_0ko76nim_1_1_20130416

22     22      1   1  EXPIRED     DISK        /u01/backup/arch_0no76njh_1_1_20130416

24     24      1   1  EXPIRED     DISK       /u01/backup/ctl_file_0oo76njm_1_1_20130416

deleted backup piece

backup piecehandle=/u01/backup/dave_lev0_0jo76nh7_1_1_20130416 RECID=18 STAMP=812867112

deleted backup piece

backup piecehandle=/u01/backup/dave_lev0_0io76nh7_1_1_20130416 RECID=19 STAMP=812867111

deleted backup piece

backup piecehandle=/u01/backup/dave_lev0_0ko76nim_1_1_20130416 RECID=21 STAMP=812867158

deleted backup piece

backup piece handle=/u01/backup/arch_0no76njh_1_1_20130416RECID=22 STAMP=812867185

deleted backup piece

backup piecehandle=/u01/backup/ctl_file_0oo76njm_1_1_20130416 RECID=24 STAMP=812867191

Deleted 5 EXPIRED objects

 

RMAN>

 

--RMAN 验证:

RMAN> list backupset summary;

 

specification does not match any backup inthe repository

 

2.5 将备份集重新注册到控制文件

 

因为之前备份集的位置发生改变,导致corsscheck之后,将之前备份的记录标记为expired,我们后来手工删除了这些expired的备份集信息。

 

现在我们要进行恢复,必须将之前的备份信息重新注册到控制文件中来。

 

2.5.1 方法一:注册单个备份片

 

RMAN> CATALOG BACKUPPIECE '/u01/bak/arch_0no76njh_1_1_20130416','/u01/bak/ctl_file_0oo76njm_1_1_20130416';

 

cataloged backup piece

backup piecehandle=/u01/bak/arch_0no76njh_1_1_20130416 RECID=25 STAMP=812872014

cataloged backup piece

backup piece handle=/u01/bak/ctl_file_0oo76njm_1_1_20130416RECID=26 STAMP=812872014

 

--可以正常查看:

RMAN> list backupset summary;

 

List of Backups

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

Key    TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag

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

25     B  A  A DISK       16-APR-13       1       1      NO         ARC_BAK

26     B  F  A DISK       16-APR-13       1       1      NO         BAK_CTLFILE

RMAN> catalog start with'/data01/';  

 

2.5.2 方法二:注册整个目录

 

---ASM:

CATALOG START WITH '+disk'; # catalog allfiles from an ASM disk group

 

--本地目录:最后一定要加/

CATALOG START WITH '/fs1/datafiles/'; #catalog all files in directory

 

--有多个目录,注册多次:

RMAN> catalog start with'/data01/';  
RMAN>catalog start with '/data02/';  
RMAN>catalog start with '/data03/';

 

 

--示例:

RMAN> catalog start with '/u01/bak';

 

searching for all files that match thepattern /u01/bak

 

List of Files Unknown to the Database

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

File Name: /u01/bak/dave_lev0_0io76nh7_1_1_20130416

File Name:/u01/bak/dave_lev0_21o687pl_1_1_20130404

File Name:/u01/bak/dave_spfile_1mo65679_1_1_20130403

File Name:/u01/bak/arch_27o687s8_1_1_20130404

File Name:/u01/bak/ctl_file_2ao6vobb_1_1_20130413

File Name: /u01/bak/arch_26o687rp_1_1_20130404

File Name:/u01/bak/arch_1ho6566m_1_1_20130403

File Name:/u01/bak/dave_lev0_20o687pl_1_1_20130404

File Name:/u01/bak/arch_1io6566n_1_1_20130403

File Name:/u01/bak/dave_spfile_29o687sc_1_1_20130404

File Name: /u01/bak/ctl_file_1lo65676_1_1_20130403

File Name: /u01/bak/block_change_tracking.f

File Name:/u01/bak/ctl_file_28o687sa_1_1_20130404

File Name:/u01/bak/dave_lev0_0ko76nim_1_1_20130416

File Name:/u01/bak/dave_lev0_22o687qp_1_1_20130404

File Name: /u01/bak/dave_lev0_0jo76nh7_1_1_20130416

 

Do you really want to catalog the abovefiles (enter YES or NO)? YES

cataloging files...

cataloging done

 

List of Cataloged Files

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

File Name:/u01/bak/dave_lev0_0io76nh7_1_1_20130416

File Name: /u01/bak/ctl_file_2ao6vobb_1_1_20130413

File Name:/u01/bak/dave_lev0_0ko76nim_1_1_20130416

File Name:/u01/bak/dave_lev0_0jo76nh7_1_1_20130416

 

List of Files Which Where Not Cataloged

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

File Name: /u01/bak/dave_lev0_21o687pl_1_1_20130404

 RMAN-07518: Reason: Foreign database file DBID: 854240218  Database Name: DAVE

File Name:/u01/bak/dave_spfile_1mo65679_1_1_20130403

 RMAN-07518: Reason: Foreign database file DBID: 854240218  Database Name: DAVE

File Name: /u01/bak/arch_27o687s8_1_1_20130404

 RMAN-07518: Reason: Foreign database file DBID: 854240218  Database Name: DAVE

File Name:/u01/bak/arch_26o687rp_1_1_20130404

 RMAN-07518: Reason: Foreign database file DBID: 854240218  Database Name: DAVE

File Name: /u01/bak/arch_1ho6566m_1_1_20130403

 RMAN-07518: Reason: Foreign database file DBID: 854240218  Database Name: DAVE

File Name:/u01/bak/dave_lev0_20o687pl_1_1_20130404

 RMAN-07518: Reason: Foreign database file DBID: 854240218  Database Name: DAVE

File Name: /u01/bak/arch_1io6566n_1_1_20130403

 RMAN-07518: Reason: Foreign database file DBID: 854240218  Database Name: DAVE

File Name:/u01/bak/dave_spfile_29o687sc_1_1_20130404

 RMAN-07518: Reason: Foreign database file DBID: 854240218  Database Name: DAVE

File Name:/u01/bak/ctl_file_1lo65676_1_1_20130403

 RMAN-07518: Reason: Foreign database file DBID: 854240218  Database Name: DAVE

File Name: /u01/bak/block_change_tracking.f

 RMAN-07529: Reason: catalog is not supported for this file type

File Name: /u01/bak/ctl_file_28o687sa_1_1_20130404

 RMAN-07518: Reason: Foreign database file DBID: 854240218  Database Name: DAVE

File Name:/u01/bak/dave_lev0_22o687qp_1_1_20130404

 RMAN-07518: Reason: Foreign database file DBID: 854240218  Database Name: DAVE

 

RMAN>

 

--验证:

RMAN> list backupset summary;

 

 

List of Backups

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

Key    TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag

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

25     B  A  A DISK       16-APR-13       1       1      NO         ARC_BAK

26     B  F  A DISK       16-APR-13       1       1      NO         BAK_CTLFILE

27     B  0  A DISK       16-APR-13       1       1      NO         DAVE_LEV0

28     B  F  A DISK       13-APR-13       1      1       NO         BAK_CTLFILE

29     B  0  A DISK       16-APR-13       1       1      NO         DAVE_LEV0

30     B  0  A DISK       16-APR-13       1       1      NO         DAVE_LEV0

 

2.6 使用RMAN 进行完全恢复

 

RMAN> startup mount force

 

Oracle instance started

database mounted

 

Total System Global Area     818401280 bytes

 

Fixed Size                     2232800 bytes

Variable Size                482348576 bytes

Database Buffers             331350016 bytes

Redo Buffers                   2469888 bytes

 

RMAN> restore database;

 

Starting restore at 16-APR-13

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=18 device type=DISK

 

channel ORA_DISK_1: starting datafilebackup set restore

channel ORA_DISK_1: specifying datafile(s)to restore from backup set

channel ORA_DISK_1: restoring datafile00001 to /u01/app/oracle/oradata/dave/system01.dbf

channel ORA_DISK_1: restoring datafile00010 to /u01/app/oracle/oradata/dave/FDA03.dbf

channel ORA_DISK_1: restoring datafile00011 to /u01/app/oracle/oradata/dave/FDA04.dbf

channel ORA_DISK_1: restoring datafile00012 to /u01/app/oracle/oradata/dave/ts01.dbf

channel ORA_DISK_1: restoring datafile00013 to /u01/app/oracle/oradata/dave/ts02.dbf

channel ORA_DISK_1: reading from backuppiece /u01/bak/dave_lev0_0io76nh7_1_1_20130416

channel ORA_DISK_1: piecehandle=/u01/bak/dave_lev0_0io76nh7_1_1_20130416 tag=DAVE_LEV0

channel ORA_DISK_1: restored backup piece 1

channel ORA_DISK_1: restore complete,elapsed time: 00:00:35

channel ORA_DISK_1: starting datafilebackup set restore

channel ORA_DISK_1: specifying datafile(s)to restore from backup set

channel ORA_DISK_1: restoring datafile00002 to /u01/app/oracle/oradata/dave/sysaux01.dbf

channel ORA_DISK_1: restoring datafile00003 to /u01/app/oracle/oradata/dave/undotbs01.dbf

channel ORA_DISK_1: restoring datafile00004 to /u01/app/oracle/oradata/dave/users01.dbf

channel ORA_DISK_1: restoring datafile00008 to /u01/app/oracle/oradata/dave/FDA01.dbf

channel ORA_DISK_1: restoring datafile00009 to /u01/app/oracle/oradata/dave/FDA02.dbf

channel ORA_DISK_1: reading from backuppiece /u01/bak/dave_lev0_0jo76nh7_1_1_20130416

channel ORA_DISK_1: piecehandle=/u01/bak/dave_lev0_0jo76nh7_1_1_20130416 tag=DAVE_LEV0

channel ORA_DISK_1: restored backup piece 1

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

channel ORA_DISK_1: starting datafilebackup set restore

channel ORA_DISK_1: specifying datafile(s)to restore from backup set

channel ORA_DISK_1: restoring datafile00005 to /u01/app/oracle/oradata/dave/example01.dbf

channel ORA_DISK_1: restoring datafile00006 to /u01/app/oracle/oradata/dave/mssm01.dbf

channel ORA_DISK_1: restoring datafile00007 to /u01/app/oracle/oradata/dave/assm01.dbf

channel ORA_DISK_1: restoring datafile 00014to /u01/app/oracle/oradata/dave/dave01.dbf

channel ORA_DISK_1: restoring datafile00015 to /u01/app/oracle/oradata/dave/anqing01.dbf

channel ORA_DISK_1: reading from backuppiece /u01/bak/dave_lev0_0ko76nim_1_1_20130416

channel ORA_DISK_1: piece handle=/u01/bak/dave_lev0_0ko76nim_1_1_20130416tag=DAVE_LEV0

channel ORA_DISK_1: restored backup piece 1

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

Finished restore at 16-APR-13

 

RMAN> recover database;

 

Starting recover at 16-APR-13

using channel ORA_DISK_1

 

starting media recovery

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

 

Finished recover at 16-APR-13

 

RMAN> alter database open;

 

database opened

 

RMAN>

 

成功恢复。

 

 

三 .重建控制文件

 

    第二节中我们演示的备份集的位置发生改变。那么还有另一种情况,就是控制文件被重建了。 这时候也会清空RMAN 备份中的相关信息。

 

    而重建控制文件又分两种情况:resetlogs 和noresetlogs。

 

Oracle 控制文件 说明

http://blog.youkuaiyun.com/tianlesoftware/article/details/4974440

 

使用使用resetlogs 重建控制文件后,RMAN恢复又会涉及到incarnation 问题,而Noresetlogs 就不会出现这种问题。

 

    我们这里演示Noresetlogs 的方式重建控制文件并恢复的问题。

 

 

3.1 使用RMAN Nocatalog 进行全库备份

 

Nocatalog 下的RMAN 增量备份 shell脚本

http://blog.youkuaiyun.com/tianlesoftware/article/details/6164931

 

 

3.2 查看备份信息

 

[oracle@dave bak]$ exportNLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"

[oracle@dave bak]$ rman target /

 

Recovery Manager: Release 11.2.0.3.0 -Production on Tue Apr 16 05:59:00 2013

 

Copyright (c) 1982, 2011, Oracle and/or itsaffiliates.  All rights reserved.

 

connected to target database: ANQING(DBID=743034417)

 

RMAN> list backup summary;

 

using target database control file insteadof recovery catalog

 

List of Backups

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

Key    TY LV S Device Type Completion Time    #Pieces #Copies Compressed Tag

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

25     B  A  A DISK       2013-04-16 04:26:25 1       1       NO         ARC_BAK

26     B  F  A DISK       2013-04-16 04:26:30 1       1       NO         BAK_CTLFILE

27      B 0  A DISK        2013-04-16 04:25:11 1       1      NO         DAVE_LEV0

28     B  F  A DISK       2013-04-13 12:56:11 1       1       NO         BAK_CTLFILE

29     B  0  A DISK       2013-04-16 04:25:58 1       1       NO         DAVE_LEV0

30      B 0  A DISK        2013-04-16 04:25:11 1       1      NO         DAVE_LEV0

 

我这里使用的还是之前的备份,所以我这里所有的备份集都是之前修改过多路径:/u01/bak.

 

3.3 使用noresetlogs重建控制文件

 

SQL> oradebug setmypid

Statement processed.

SQL> alter database backup controlfileto trace;

Database altered.

 

SQL> oradebug tracefile_name

/u01/app/oracle/diag/rdbms/anqing/anqing/trace/anqing_ora_8932.trc

 

 

SQL> shutdown immediate

ORA-01109: database not open

 

 

Database dismounted.

ORACLE instance shut down.

SQL>

SQL> startup nomount;

ORACLE instance started.

 

Total System Global Area  818401280 bytes

Fixed Size                  2232800 bytes

Variable Size             482348576 bytes

Database Buffers          331350016 bytes

Redo Buffers                2469888 bytes

SQL> CREATE CONTROLFILE REUSE DATABASE"ANQING" NORESETLOGS ARCHIVELOG

 2      MAXLOGFILES 16

 3      MAXLOGMEMBERS 3

 4      MAXDATAFILES 100

 5      MAXINSTANCES 8

 6      MAXLOGHISTORY 292

 7  LOGFILE

 8    GROUP 1'/u01/app/oracle/oradata/dave/redo01.log' SIZE 50M BLOCKSIZE 512,

 9    GROUP 2'/u01/app/oracle/oradata/dave/redo02.log' SIZE 50M BLOCKSIZE 512,

 10   GROUP 3 '/u01/app/oracle/oradata/dave/redo03.log'  SIZE 50M BLOCKSIZE 512

 11 DATAFILE

 12   '/u01/app/oracle/oradata/dave/system01.dbf',

 13   '/u01/app/oracle/oradata/dave/sysaux01.dbf',

 14   '/u01/app/oracle/oradata/dave/undotbs01.dbf',

 15   '/u01/app/oracle/oradata/dave/users01.dbf',

 16   '/u01/app/oracle/oradata/dave/example01.dbf',

 17   '/u01/app/oracle/oradata/dave/mssm01.dbf ',

 18   '/u01/app/oracle/oradata/dave/assm01.dbf',

 19   '/u01/app/oracle/oradata/dave/FDA01.dbf',

 20   '/u01/app/oracle/oradata/dave/FDA02.dbf',

 21   '/u01/app/oracle/oradata/dave/FDA03.dbf',

 22   '/u01/app/oracle/oradata/dave/FDA04.dbf',

 23   '/u01/app/oracle/oradata/dave/ts01.dbf',

 24   '/u01/app/oracle/oradata/dave/ts02.dbf',

 25   '/u01/app/oracle/oradata/dave/dave01.dbf',

 26   '/u01/app/oracle/oradata/dave/anqing01.dbf'

 27 CHARACTER SET AL32UTF8

 28  ;

 

Control file created.

 

SQL> RECOVER DATABASE

ORA-00283: recovery session canceled due toerrors

ORA-00264: no recovery required

 

 

SQL> ALTER DATABASE OPEN;

 

Database altered.

 

SQL> ALTER TABLESPACE TEMP ADD TEMPFILE'/u01/app/oracle/oradata/dave/temp01.dbf'

 2       SIZE 20971520  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;

 

Tablespace altered.

 

具体说明参考:

Oracle控制文件 说明

http://blog.youkuaiyun.com/tianlesoftware/article/details/4974440

 

 

3.4 查看重建控制文件的RMAN 备份信息

 

RMAN> list backupset summary;

 

using target database control file insteadof recovery catalog

specification does not match any backup inthe repository

 

--什么信息都没。

 

3.5 将备份集重新注册到控制文件

 

RMAN> catalog start with '/u01/bak';

 

searching for all files that match thepattern /u01/bak

 

List of Files Unknown to the Database

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

File Name:/u01/bak/arch_0no76njh_1_1_20130416

File Name: /u01/bak/dave_lev0_0io76nh7_1_1_20130416

File Name:/u01/bak/dave_lev0_21o687pl_1_1_20130404

File Name:/u01/bak/dave_spfile_1mo65679_1_1_20130403

File Name:/u01/bak/arch_27o687s8_1_1_20130404

File Name:/u01/bak/ctl_file_2ao6vobb_1_1_20130413

File Name: /u01/bak/arch_26o687rp_1_1_20130404

File Name:/u01/bak/arch_1ho6566m_1_1_20130403

File Name:/u01/bak/dave_lev0_20o687pl_1_1_20130404

File Name:/u01/bak/arch_1io6566n_1_1_20130403

File Name:/u01/bak/dave_spfile_29o687sc_1_1_20130404

File Name: /u01/bak/ctl_file_1lo65676_1_1_20130403

File Name: /u01/bak/block_change_tracking.f

File Name:/u01/bak/ctl_file_0oo76njm_1_1_20130416

File Name:/u01/bak/ctl_file_28o687sa_1_1_20130404

File Name:/u01/bak/dave_lev0_0ko76nim_1_1_20130416

File Name: /u01/bak/dave_lev0_22o687qp_1_1_20130404

File Name:/u01/bak/dave_lev0_0jo76nh7_1_1_20130416

 

Do you really want to catalog the abovefiles (enter YES or NO)? YES

cataloging files...

cataloging done

 

List of Cataloged Files

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

File Name: /u01/bak/arch_0no76njh_1_1_20130416

File Name:/u01/bak/dave_lev0_0io76nh7_1_1_20130416

File Name:/u01/bak/ctl_file_2ao6vobb_1_1_20130413

File Name:/u01/bak/ctl_file_0oo76njm_1_1_20130416

File Name:/u01/bak/dave_lev0_0ko76nim_1_1_20130416

File Name: /u01/bak/dave_lev0_0jo76nh7_1_1_20130416

 

List of Files Which Where Not Cataloged

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

File Name:/u01/bak/dave_lev0_21o687pl_1_1_20130404

 RMAN-07518: Reason: Foreign database file DBID: 854240218  Database Name: DAVE

File Name:/u01/bak/dave_spfile_1mo65679_1_1_20130403

 RMAN-07518: Reason: Foreign database file DBID: 854240218  Database Name: DAVE

File Name:/u01/bak/arch_27o687s8_1_1_20130404

 RMAN-07518: Reason: Foreign database file DBID: 854240218  Database Name: DAVE

File Name:/u01/bak/arch_26o687rp_1_1_20130404

 RMAN-07518: Reason: Foreign database file DBID: 854240218  Database Name: DAVE

File Name:/u01/bak/arch_1ho6566m_1_1_20130403

 RMAN-07518: Reason: Foreign database file DBID: 854240218  Database Name: DAVE

File Name:/u01/bak/dave_lev0_20o687pl_1_1_20130404

 RMAN-07518: Reason: Foreign database file DBID: 854240218  Database Name: DAVE

File Name:/u01/bak/arch_1io6566n_1_1_20130403

 RMAN-07518: Reason: Foreign database file DBID: 854240218  Database Name: DAVE

File Name:/u01/bak/dave_spfile_29o687sc_1_1_20130404

 RMAN-07518: Reason: Foreign database file DBID: 854240218  Database Name: DAVE

File Name:/u01/bak/ctl_file_1lo65676_1_1_20130403

 RMAN-07518: Reason: Foreign database file DBID: 854240218  Database Name: DAVE

File Name: /u01/bak/block_change_tracking.f

 RMAN-07529: Reason: catalog is not supported for this file type

File Name:/u01/bak/ctl_file_28o687sa_1_1_20130404

 RMAN-07518: Reason: Foreign database file DBID: 854240218  Database Name: DAVE

File Name:/u01/bak/dave_lev0_22o687qp_1_1_20130404

 RMAN-07518: Reason: Foreign database file DBID: 854240218  Database Name: DAVE

 

RMAN>

 

--效验:

RMAN> list backupset summary;

 

 

List of Backups

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

Key    TY LV S Device Type Completion Time    #Pieces #Copies Compressed Tag

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

1      B  A  A DISK       2013-04-16 04:26:25 1       1       NO         ARC_BAK

2      B  0  A DISK       2013-04-16 04:25:11 1       1       NO        DAVE_LEV0

3      B  F  A DISK       2013-04-13 12:56:11 1       1       NO         BAK_CTLFILE

4      B  F  A DISK       2013-04-16 04:26:30 1       1       NO         BAK_CTLFILE

5      B  0  A DISK       2013-04-16 04:25:58 1       1      NO         DAVE_LEV0

6      B  0  A DISK       2013-04-16 04:25:11 1       1       NO         DAVE_LEV0

 

 

3.6 执行RMAN 恢复

 

RMAN> startup mount force;

 

Oracle instance started

database mounted

 

Total System Global Area     818401280 bytes

 

Fixed Size                     2232800 bytes

Variable Size                482348576 bytes

Database Buffers             331350016 bytes

Redo Buffers                   2469888 bytes

 

RMAN> restore database;

 

Starting restore at 2013-04-16 06:10:47

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=1 device type=DISK

 

channel ORA_DISK_1: starting datafilebackup set restore

channel ORA_DISK_1: specifying datafile(s)to restore from backup set

channel ORA_DISK_1: restoring datafile00001 to /u01/app/oracle/oradata/dave/system01.dbf

channel ORA_DISK_1: restoring datafile00010 to /u01/app/oracle/oradata/dave/FDA03.dbf

channel ORA_DISK_1: restoring datafile00011 to /u01/app/oracle/oradata/dave/FDA04.dbf

channel ORA_DISK_1: restoring datafile00012 to /u01/app/oracle/oradata/dave/ts01.dbf

channel ORA_DISK_1: restoring datafile00013 to /u01/app/oracle/oradata/dave/ts02.dbf

channel ORA_DISK_1: reading from backuppiece /u01/bak/dave_lev0_0io76nh7_1_1_20130416

channel ORA_DISK_1: piecehandle=/u01/bak/dave_lev0_0io76nh7_1_1_20130416 tag=DAVE_LEV0

channel ORA_DISK_1: restored backup piece 1

channel ORA_DISK_1: restore complete,elapsed time: 00:00:35

channel ORA_DISK_1: starting datafilebackup set restore

channel ORA_DISK_1: specifying datafile(s)to restore from backup set

channel ORA_DISK_1: restoring datafile00002 to /u01/app/oracle/oradata/dave/sysaux01.dbf

channel ORA_DISK_1: restoring datafile00003 to /u01/app/oracle/oradata/dave/undotbs01.dbf

channel ORA_DISK_1: restoring datafile00004 to /u01/app/oracle/oradata/dave/users01.dbf

channel ORA_DISK_1: restoring datafile00008 to /u01/app/oracle/oradata/dave/FDA01.dbf

channel ORA_DISK_1: restoring datafile00009 to /u01/app/oracle/oradata/dave/FDA02.dbf

channel ORA_DISK_1: reading from backuppiece /u01/bak/dave_lev0_0jo76nh7_1_1_20130416

channel ORA_DISK_1: piecehandle=/u01/bak/dave_lev0_0jo76nh7_1_1_20130416 tag=DAVE_LEV0

channel ORA_DISK_1: restored backup piece 1

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

channel ORA_DISK_1: starting datafile backupset restore

channel ORA_DISK_1: specifying datafile(s)to restore from backup set

channel ORA_DISK_1: restoring datafile00005 to /u01/app/oracle/oradata/dave/example01.dbf

channel ORA_DISK_1: restoring datafile00006 to /u01/app/oracle/oradata/dave/mssm01.dbf

channel ORA_DISK_1: restoring datafile00007 to /u01/app/oracle/oradata/dave/assm01.dbf

channel ORA_DISK_1: restoring datafile00014 to /u01/app/oracle/oradata/dave/dave01.dbf

channel ORA_DISK_1: restoring datafile00015 to /u01/app/oracle/oradata/dave/anqing01.dbf

channel ORA_DISK_1: reading from backuppiece /u01/bak/dave_lev0_0ko76nim_1_1_20130416

channel ORA_DISK_1: piecehandle=/u01/bak/dave_lev0_0ko76nim_1_1_20130416 tag=DAVE_LEV0

channel ORA_DISK_1: restored backup piece 1

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

Finished restore at 2013-04-16 06:12:14

 

RMAN> recover database;

 

Starting recover at 2013-04-16 06:12:17

using channel ORA_DISK_1

 

starting media recovery

 

archived log for thread 1 with sequence 24is already on disk as file/u01/app/oracle/fast_recovery_area/ANQING/archivelog/2013_04_16/o1_mf_1_24_8prydhlc_.arc

archived log for thread 1 with sequence 25is already on disk as file /u01/app/oracle/fast_recovery_area/ANQING/archivelog/2013_04_16/o1_mf_1_25_8prxqnrq_.arc

archived log for thread 1 with sequence 26is already on disk as file/u01/app/oracle/fast_recovery_area/ANQING/archivelog/2013_04_16/o1_mf_1_26_8prydhsm_.arc

channel ORA_DISK_1: starting archived logrestore to default destination

channel ORA_DISK_1: restoring archived log

archived log thread=1 sequence=23

channel ORA_DISK_1: reading from backuppiece /u01/bak/arch_0no76njh_1_1_20130416

channel ORA_DISK_1: piece handle=/u01/bak/arch_0no76njh_1_1_20130416tag=ARC_BAK

channel ORA_DISK_1: restored backup piece 1

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

archived log filename=/u01/app/oracle/fast_recovery_area/ANQING/archivelog/2013_04_16/o1_mf_1_23_8pryt3dw_.arcthread=1 sequence=23

channel default: deleting archived log(s)

archived log filename=/u01/app/oracle/fast_recovery_area/ANQING/archivelog/2013_04_16/o1_mf_1_23_8pryt3dw_.arcRECID=19 STAMP=812873540

archived log file name=/u01/app/oracle/fast_recovery_area/ANQING/archivelog/2013_04_16/o1_mf_1_24_8prydhlc_.arcthread=1 sequence=24

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

Finished recover at 2013-04-16 06:12:23

 

RMAN> alter database open;

 

database opened

 

RMAN>

 

 

 

测试OK。

 

 


<think>首先,用户的问题是:"OracleRMAN如何查看已存在的备份集"。我需要根据系统级指令来回答。系统级指令包括: -所有行内数学表达式使用 $...$格式。 -独立公式使用$$...$$格式并单独成段。- LaTeX语法正确。-使用中文回答。-生成相关问题。 -回答中引用的段落末尾自然地添加引用标识,例如 [^1]。用户问题涉及OracleRMAN备份集,所以我需要参考提供的引用内容:-引用[1]:提到压缩OracleRMAN备份集并异地备份MySQL的Shell脚本,包括一个脚本示例。 -引用[2]:解释RMAN备份类型,如镜像复制和备份集-引用[3]:展示如何指定路径产生备份集。用户意图是查看已存在的备份集信息。我的回答结构: -结构清晰,帮助用户逐步解决问题。 -确保回答真实可靠。-使用中文。 -生成相关问题。-在引用末尾添加引用标识。 步骤: 1. **理解问题**:用户想知道如何查看OracleRMAN中的备份集信息。2.**关键命令**:在RMAN中,查看备份集的常用命令是 `LIST BACKUP`或`LISTBACKUPSET`。 3. **参考引用**:-引用[2]提到备份集(backupsets),这是RMAN的推荐方式。-引用[3]展示备份命令。-引用[1]有脚本,但可能不直接相关。4.**回答结构**:-介绍RMAN备份集-列出查看备份集的命令。-提供示例。-解释输出。 5. **生成相关问题**:在末尾添加相关问题。 6. **引用标识**:在引用内容末尾添加 [^1],[^2],等。 可能的命令: -`LIST BACKUP;`列出所有备份。- `LIST BACKUPSET;`列出备份集-更具体的查询,如`LISTBACKUPOF DATABASE;`或 `LIST BACKUP SUMMARY;`。 确保回答真实可靠:基于OracleRMAN文档知识。 添加引用:-当提到备份集概念时,引用引用[2]。-当提到备份路径时,引用引用[3]。 生成相关问题:-例如:如何删除旧备份集?如何恢复使用备份集?等。 现在,构建回答:-开头:直接回答问题。-步骤:解释如何使用RMAN命令。-示例:提供RMAN会话示例。-结尾:添加相关问题。 由于没有数学表达式,可能不需要LaTeX格式,但系统指令要求所有行内数学使用$...$,如果有变量或方程。但这里主要是文本,所以可能不需要。如果有,比如在解释中,但要确保。在这个上下文中,可能没有数学表达式,所以可以忽略或确保如果有变量用$...$。最终回答大纲: 1.介绍:简要解释备份集。2.方法:列出查看备份集的命令。 3.示例:展示命令输出。 4.解释:如何理解输出。5.相关问题。引用添加: -例如:"备份集RMAN推荐的方式[^2]."。</think>### Oracle RMAN 如何查看已存在的备份集Oracle RMAN(Recovery Manager)中,备份集(backup sets)是推荐的备份方式,它通过 RMAN 命令创建,包含数据文件控制文件或归档日志的压缩备份[^2]。要查看已存在的备份集信息,您可以通过 RMAN 命令行界面执行特定命令来列出备份集详情。以下是逐步说明,确保操作清晰可靠。所有命令均基于 Oracle RMAN 官方文档,并参考了提供的引用内容。 #### 步骤 1: 连接到 RMAN 首先,以 SYSDBA 或其他有权限的用户身份登录到 RMAN。您可以使用 SQL*Plus 或直接启动 RMAN: ```bash # 启动 RMAN 并连接到目标数据库 rman target / ``` 或指定用户名和密码: ```bash rman target sys/password@orcl as sysdba ``` #### 步骤 2: 使用 LIST 命令查看备份集RMAN 提示符下,使用 `LIST BACKUP` 或 `LIST BACKUPSET` 命令来列出所有备份集。这些命令会显示备份集的详细信息,如备份集键(backup set key)、类型、大小、状态和存储位置。 - **基本命令**: ```sql RMAN> LIST BACKUP; ``` 或更针对备份集: ```sql RMAN> LIST BACKUPSET; ``` 这些命令会输出所有备份集,包括完整备份、增量备份和归档日志备份。 - **过滤特定备份**:如果您只想查看数据库备份或指定路径的备份,可以使用子句: ```sql -- 列出所有数据库文件备份集 RMAN> LIST BACKUP OF DATABASE; -- 列出指定路径的备份集(如引用[3]中提到的自定义路径) RMAN> LIST BACKUP OF DATABASE LIKE '/u02/backup/%'; ``` 引用[3]展示了如何指定路径产生备份集,这有助于在输出中快速定位特定位置的备份[^3]。 #### 步骤 3: 理解输出信息 执行 `LIST BACKUP` 命令后,输出通常包含以下关键字段: - **BS Key**: 备份集唯一标识符。 - **Size**: 备份集大小(例如,字节或 MB)。 - **Device Type**: 备份设备(如 DISK 或 TAPE)。 - **Elapsed Time**: 备份耗时。 - **Status**: 备份状态(AVAILABLE 表示可用)。 - **Piece Name**: 备份片段的物理路径(如 `/u02/backup/image/user01.dbf`)。 示例输出: ``` List of Backup Sets =================== BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ ------------------- 1 Full 1.25G DISK 00:10:05 2023-10-01 12:00:00 BP Key: 1 Status: AVAILABLE Piece Name: /u02/backup/full_backup.bkp List of Datafiles in backup set 1 File LV Type Ckp SCN Ckp Time ---- -- ---- ---------- --------- 1 Full 1234567 2023-10-01 12:00:00 ``` 输出中,备份集键(BS Key)可用于后续操作,如恢复或删除备份。备份集是高效且压缩的存储形式,与镜像复制(image copies)不同,后者是直接文件副本[^2]。 #### 步骤 4: 使用摘要命令简化查看 如果输出信息过多,可以使用 `LIST BACKUP SUMMARY` 命令获取摘要视图: ```sql RMAN> LIST BACKUP SUMMARY; ``` 这会显示备份集的简要统计,如备份类型、数量和总大小,便于快速概览。 #### 注意事项 - **权限要求**:执行这些命令需要 SYSDBA 或 SYSBACKUP 权限。 - **备份集状态**:确保备份集状态为 AVAILABLE;如果为 EXPIRED,表示备份已失效,需重新验证。 - **参考脚本**:引用[1]中的 Shell 脚本展示了如何自动化备份集压缩,但查看备份集需直接在 RMAN 中操作[^1]。 - **最佳实践**:定期查看备份集可监控备份完整性,避免恢复失败。 通过以上步骤,您可以轻松查看和管理 Oracle RMAN 中的备份集。如果您遇到问题,建议查阅 Oracle 官方文档或使用 `HELP LIST` 命令获取更多选项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值