Oracle RMAN-口令文件和参数文件恢复

catalog和非catalog里面,恢复的方式都是一样的,无非在使用的过程当中将rman的信息放在catalog database里面还是放在控制文件里面。所以在使用恢复的时候不要太注重使用的是catalog还是非catalog里面的。

 

在恢复的时候有一个问题,因为备份信息是存储在数据库里面,那么在恢复的时候如果控制文件丢失或者损坏了怎么办。


在备份的时候要将controlfile autobackup设置为on的状态。这个参数设置on状态之后,如果控制文件丢失之后,还可以对其进行恢复。

Dbiddatabase的一个id,这个号会将来用作为恢复spfile的时候还有恢复control file的时候。

 

RMAN> show all;

 

using target database control file instead of recovery catalog

RMAN configuration parameters for database with db_unique_name ORADB are:

CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default

CONFIGURE BACKUP OPTIMIZATION OFF; # default

CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default

CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default

 

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;将其设置为on

 

new RMAN configuration parameters:

CONFIGURE CONTROLFILE AUTOBACKUP ON;

new RMAN configuration parameters are successfully stored

这样就可以自动备份控制文件了。在备份数据库的时候会有备份控制文件。自动备份控制文件就是为了不让备份信息丢失了。

RMAN> backup format '/rmanbackup/beifeng/full_%T_%u.bak' database plus archivelog;

BS Key  Type LV Size       Device Type Elapsed Time Completion Time

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

5       Full    400.66M    DISK        00:01:03     14-DEC-17      

        BP Key: 5   Status: AVAILABLE  Compressed: NO  Tag: TAG20171214T192534

        Piece Name: /rmanbackup/beifeng/full_20171214_06sm4ehf.bak

  List of Datafiles in backup set 5

  File LV Type Ckp SCN    Ckp Time  Name

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

  1       Full 388451     14-DEC-17 /u01/app/oracle/oradata/oradb/system01.dbf

  2       Full 388451     14-DEC-17 /u01/app/oracle/oradata/oradb/sysaux01.dbf

  3       Full 388451     14-DEC-17 /u01/app/oracle/oradata/oradb/undotbs01.dbf

 

BS Key  Size       Device Type Elapsed Time Completion Time

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

6       1.27M      DISK        00:00:00     14-DEC-17      

        BP Key: 6   Status: AVAILABLE  Compressed: NO  Tag: TAG20171214T192640

        Piece Name: /rmanbackup/beifeng/full_20171214_07sm4ejh.bak

 

  List of Archived Logs in backup set 6

  Thrd Seq     Low SCN    Low Time  Next SCN   Next Time

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

  1    28      388442     14-DEC-17 388540     14-DEC-17

 

BS Key  Type LV Size       Device Type Elapsed Time Completion Time

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

7       Full    9.52M      DISK        00:00:02     14-DEC-17      

        BP Key: 7   Status: AVAILABLE  Compressed: NO  Tag: TAG20171214T192642

        Piece Name: /u01/app/oracle/product/11.2.0/db_1/dbs/c-2714287021-20171214-00

  SPFILE Included: Modification time: 03-DEC-17

  SPFILE db_unique_name: ORADB

  Control File Included: Ckp SCN: 388551       Ckp time: 14-DEC-17

可以看到开启了CONTROLFILE AUTOBACKUP会自动备份控制文件和参数文件。

[[email protected] ~]# strings  /u01/app/oracle/product/11.2.0/db_1/dbs/c-2714287021-20171214-00

}|{z

ORADB

r:b9

TAG20171214T192642

- H9

. H9

- H9

r:b9

ORADB

ordb.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment

*.control_files='/u01/app/oracle/oradata/oradb/ctl01.ctl','/u01/app/oracle/oradata/oradb/ctl02.ctl'

*.db_name='oradb'

/u01/app/oracle/product/11.2.0/db_1/dbs/spfileordb.ora

\:b9- H9

- H9ORADB

- H9

- H9T

- H9ORADB

- H9

- H9T

m ):b9

> H9

ordb

m ):b9

> H9

ordb

):b9

p:b98

p:b9

7b9Z

):b9

):b9

p:b98

p:b9

7b9Z

):b9

n H9

/:b90

/:b90

/:b90

n H9

/:b90

/:b90

/:b90

/u01/app/oracle/oradata/oradb/redo01.log

/u01/app/oracle/oradata/oradb/redo02.log

/u01/app/oracle/oradata/oradb/redo03.log

/u01/app/oracle/oradata/oradb/system01.dbf

/u01/app/oracle/oradata/oradb/sysaux01.dbf

/u01/app/oracle/oradata/oradb/undotbs01.dbf

/u01/app/oracle/oradata/oradb/temp01.dbf

/u01/app/oracle/product/11.2.0/db_1/dbs/snapcf_ordb.f

/u01/app/oracle/oradata/oradb/redo01.log

/u01/app/oracle/oradata/oradb/redo02.log

可以看到控制文件信息和参数文件信息都备份在一个文件里面了。

如果控制文件丢失了,那么可以找到这个文件进行还原。


[[email protected] ~]$ cd $ORACLE_HOME/dbs

[[email protected] dbs]$ ls

arch1_26_961022253.dbf  arch1_28_961022253.dbf    hc_oradb.dat  init.ora       lkORADB  orapworasb  snapcf_ordb.f    spfileordb.ora

arch1_27_961022253.dbf  c-2714287021-20171214-00  hc_ordb.dat   initoradb.ora  lkORDB   orapwordb (口令文件)  spfileoradb.ora

口令文件放在/u01/app/oracle/product/11.2.0/db_1/dbs目录下面。

[[email protected] dbs]$ rm -rf orapwordb

[[email protected] dbs]$ orapwd file=orapwordb password=oracle;

[[email protected] dbs]$ ls

arch1_26_961022253.dbf  arch1_28_961022253.dbf    hc_oradb.dat  init.ora       lkORADB  orapworasb  snapcf_ordb.f    spfileordb.ora

arch1_27_961022253.dbf  c-2714287021-20171214-00  hc_ordb.dat   initoradb.ora  lkORDB   orapwordb   spfileoradb.ora

所以说口令文件丢失是没有任何关系的,可以通过命令创建。Entries=5指定数据库当中最大的DBA权限的用户最多为5个。


[[email protected] ~]$ rman target /

 

Recovery Manager: Release 11.2.0.4.0 - Production on Fri Dec 15 00:06:01 2017

 

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

 

connected to target database: ORADB (DBID=2714287021)一定要将数据库dbid告诉rman;

spfile丢失要使用rman恢复,要使得数据库先到nomount状态。

BS Key  Type LV Size       Device Type Elapsed Time Completion Time

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

7       Full    9.52M      DISK        00:00:02     14-DEC-17      

        BP Key: 7   Status: AVAILABLE  Compressed: NO  Tag: TAG20171214T192642

        Piece Name: /u01/app/oracle/product/11.2.0/db_1/dbs/c-2714287021-20171214-00

  SPFILE Included: Modification time: 03-DEC-17

  SPFILE db_unique_name: ORADB

  Control File Included: Ckp SCN: 388551       Ckp time: 14-DEC-17

 

RMAN> startup nomount;

 

connected to target database (not started)

startup failed: ORA-01078: failure in processing system parameters

LRM-00109: could not open parameter file '/u01/app/oracle/product/11.2.0/db_1/dbs/initordb.ora'

 

starting Oracle instance without parameter file for retrieval of spfile

Oracle instance started

 

Total System Global Area    1068937216 bytes

 

Fixed Size                     2260088 bytes

Variable Size                281019272 bytes

Database Buffers             780140544 bytes

Redo Buffers                   5517312 bytes

 

RMAN> set dbid 2714287021

 

executing command: SET DBID

 

RMAN> restore spfile from autobackup;(或者restore spfile from ‘/u01/app/oracle/product/11.2.0/db_1/dbs/c-2714287021-20171214-00’)

 

Starting restore at 15-DEC-17

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=19 device type=DISK

 

channel ORA_DISK_1: looking for AUTOBACKUP on day: 20171215

channel ORA_DISK_1: looking for AUTOBACKUP on day: 20171214

channel ORA_DISK_1: AUTOBACKUP found: c-2714287021-20171214-00

channel ORA_DISK_1: restoring spfile from AUTOBACKUP c-2714287021-20171214-00

channel ORA_DISK_1: SPFILE restore from AUTOBACKUP complete

Finished restore at 15-DEC-17