Oracle RMAN-口令文件和参数文件恢复
在catalog和非catalog里面,恢复的方式都是一样的,无非在使用的过程当中将rman的信息放在catalog database里面还是放在控制文件里面。所以在使用恢复的时候不要太注重使用的是catalog还是非catalog里面的。
在恢复的时候有一个问题,因为备份信息是存储在数据库里面,那么在恢复的时候如果控制文件丢失或者损坏了怎么办。
在备份的时候要将controlfile autobackup设置为on的状态。这个参数设置on状态之后,如果控制文件丢失之后,还可以对其进行恢复。
Dbid是database的一个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