rman 备份并异机恢复

1.RMAN 备份脚本

RUN {

 CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF  7  DAYS;

 CONFIGURE CONTROLFILE AUTOBACKUP ON;

 CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO "/backup/ZGW_Controlfile_%F";

 ALLOCATE CHANNEL CH1 DEVICE TYPE DISK;

 ALLOCATE CHANNEL CH2 DEVICE TYPE DISK;
 
 BACKUP DATABASE FORMAT "/backup/ZGW_%U"
     
     SKIP INACCESSIBLE FILESPERSET 10

     PLUS ARCHIVELOG FILESPERSET 20

     DELETE ALL INPUT;

 RELEASE CHANNEL CH1;

 RELEASE CHANNEL CH2;
 
 }

 BACKUP SPFILE FORMAT '/backup/ZGW_spfile_%U.bak'; 
 
 ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE DISK;

 CROSSCHECK BACKUPSET;

 DELETE NOPROMPT OBSOLETE;

2.执行备份

 export ORACLE_SID=zgw
 rman target / @/home/oracle/scipts/rman_backup.rman

3.备份数据打包并传输

tar czvf zgw.tar.gz /ackup/ZGW*
scp zgw.tar.gz 192.168.199.68:/home/oracle/backup/

4.异机恢复环境准备

#环境变量
export ORACLE_SID=zgw
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/11g

#由于只安装软件未创建数据库所以需创建对应文件夹
mkdir -p $ORACLE_BASE/admin/zgw/adump/
mkdir -p $ORACLE_BASE/admin/zgw/dpdump/
mkdir -p $ORACLE_BASE/admin/zgw/pfile/
mkdir -p $ORACLE_BASE/oradata/zgw/
mkdir -p $ORACLE_BASE/flash_recovery_area
mkdir -p $ORACLE_BASE/flash_recovery_area/zgw

5.恢复操作

$ rman target /

Recovery Manager: Release 11.2.0.1.0 - Production on Thu May 28 16:27:19 2015

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

connected to target database (not started)

RMAN> startup nomount;

startup failed: ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/opt/oracle/11g/dbs/initzgw.ora'

starting Oracle instance without parameter file for retrieval of spfile
Oracle instance started

Total System Global Area     158662656 bytes

Fixed Size                     2211448 bytes
Variable Size                 88080776 bytes
Database Buffers              62914560 bytes
Redo Buffers                   5455872 bytes


RMAN> restore spfile from '/home/oracle/backup/ZGW_spfile_0pq82u8b_1_1.bak'; //恢复spfile文件
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
RMAN> startup nomount force;

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of startup command at 05/28/2015 16:33:12
RMAN-04014: startup failed: ORA-01261: Parameter db_recovery_file_dest destination string cannot be translated
ORA-01262: Stat failed on a file destination directory
Linux-x86_64 Error: 2: No such file or directory

mkdir -p $ORACLE_BASE/flash_recovery_area
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
RMAN> startup nomount force; //重启实例到nomount状态

Oracle instance started

Total System Global Area     776646656 bytes

Fixed Size                     2217384 bytes
Variable Size                532679256 bytes
Database Buffers             239075328 bytes
Redo Buffers                   2674688 bytes
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
RMAN> restore controlfile from '/home/oracle/backup/ZGW_Controlfile_c-4066279841-20150528-03';

Starting restore at 28-MAY-15
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=19 device type=DISK

channel ORA_DISK_1: restoring control file
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 05/28/2015 16:40:45
ORA-19504: failed to create file "/opt/oracle/flash_recovery_area/zgw/control02.ctl"
ORA-27040: file create error, unable to create file
Linux-x86_64 Error: 2: No such file or directory
ORA-19600: input file is control file  (/opt/oracle/oradata/zgw/control01.ctl)
ORA-19601: output file is control file  (/opt/oracle/flash_recovery_area/zgw/control02.ctl)

mkdir -p $ORACLE_BASE/flash_recovery_area/zgw
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
RMAN> restore controlfile from '/home/oracle/backup/ZGW_Controlfile_c-4066279841-20150528-03'; //还原控制文件

Starting restore at 28-MAY-15
using channel ORA_DISK_1

channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
output file name=/opt/oracle/oradata/zgw/control01.ctl
output file name=/opt/oracle/flash_recovery_area/zgw/control02.ctl
Finished restore at 28-MAY-15

RMAN> sql 'alter database mount'; //启动数据库到mount状态

sql statement: alter database mount
released channel: ORA_DISK_1

RMAN> list backup of database; //查看备份集


List of Backup Sets
===================


BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
16      Full    988.79M    DISK        00:01:35     28-MAY-15      
        BP Key: 16   Status: AVAILABLE  Compressed: NO  Tag: TAG20150528T135534
        Piece Name: /backup/0hq82s2m_1_1
  List of Datafiles in backup set 16
  File LV Type Ckp SCN    Ckp Time  Name
  ---- -- ---- ---------- --------- ----
  1       Full 1081536    28-MAY-15 /opt/oracle/oradata/zgw/system01.dbf
  2       Full 1081536    28-MAY-15 /opt/oracle/oradata/zgw/sysaux01.dbf
  3       Full 1081536    28-MAY-15 /opt/oracle/oradata/zgw/undotbs01.dbf
  4       Full 1081536    28-MAY-15 /opt/oracle/oradata/zgw/users01.dbf

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
20      Full    396.28M    DISK        00:01:14     28-MAY-15      
        BP Key: 20   Status: AVAILABLE  Compressed: NO  Tag: TAG20150528T143051
        Piece Name: /backup/ZGW_0mq82u4r_1_1
  List of Datafiles in backup set 20
  File LV Type Ckp SCN    Ckp Time  Name
  ---- -- ---- ---------- --------- ----
  2       Full 1083181    28-MAY-15 /opt/oracle/oradata/zgw/sysaux01.dbf
  3       Full 1083181    28-MAY-15 /opt/oracle/oradata/zgw/undotbs01.dbf

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
21      Full    592.91M    DISK        00:01:37     28-MAY-15      
        BP Key: 21   Status: AVAILABLE  Compressed: NO  Tag: TAG20150528T143051
        Piece Name: /backup/ZGW_0lq82u4r_1_1
  List of Datafiles in backup set 21
  File LV Type Ckp SCN    Ckp Time  Name
  ---- -- ---- ---------- --------- ----
  1       Full 1083180    28-MAY-15 /opt/oracle/oradata/zgw/system01.dbf
  4       Full 1083180    28-MAY-15 /opt/oracle/oradata/zgw/users01.dbf

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
RMAN> restore database from '/home/oracle/backup/ZGW_0mq82u4r_1_1';

Starting restore at 28-MAY-15
Starting implicit crosscheck backup at 28-MAY-15
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=19 device type=DISK
Crosschecked 9 objects
Finished implicit crosscheck backup at 28-MAY-15

Starting implicit crosscheck copy at 28-MAY-15
using channel ORA_DISK_1
Finished implicit crosscheck copy at 28-MAY-15

searching for all files in the recovery area
cataloging files...
no files cataloged

using channel ORA_DISK_1

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 05/28/2015 16:50:44
RMAN-06509: only SPFILE or control file can be restored from AUTOBACKUP

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
RMAN
> catalog start with '/home/oracle/backup/'; //将备份集导入控制文件,此处适用于异机还原时备份集没有在默认位置的场景。 searching for all files that match the pattern /home/oracle/backup/ List of Files Unknown to the Database ===================================== File Name: /home/oracle/backup/ZGW_0mq82u4r_1_1 File Name: /home/oracle/backup/ZGW_spfile_0pq82u8b_1_1.bak File Name: /home/oracle/backup/ZGW_0lq82u4r_1_1 File Name: /home/oracle/backup/ZGW_Controlfile_c-4066279841-20150528-03 File Name: /home/oracle/backup/ZGW_Controlfile_c-4066279841-20150528-04 File Name: /home/oracle/backup/zgw.tar.gz Do you really want to catalog the above files (enter YES or NO)? y cataloging files... cataloging done List of Cataloged Files ======================= File Name: /home/oracle/backup/ZGW_0mq82u4r_1_1 File Name: /home/oracle/backup/ZGW_spfile_0pq82u8b_1_1.bak File Name: /home/oracle/backup/ZGW_0lq82u4r_1_1 File Name: /home/oracle/backup/ZGW_Controlfile_c-4066279841-20150528-03 File Name: /home/oracle/backup/ZGW_Controlfile_c-4066279841-20150528-04 RMAN> restore database; //还原数据文件 Starting restore at 28-MAY-15 using channel ORA_DISK_1 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 00002 to /opt/oracle/oradata/zgw/sysaux01.dbf channel ORA_DISK_1: restoring datafile 00003 to /opt/oracle/oradata/zgw/undotbs01.dbf channel ORA_DISK_1: reading from backup piece /home/oracle/backup/ZGW_0mq82u4r_1_1 channel ORA_DISK_1: piece handle=/home/oracle/backup/ZGW_0mq82u4r_1_1 tag=TAG20150528T143051 channel ORA_DISK_1: restored backup piece 1 channel ORA_DISK_1: restore complete, elapsed time: 00:00:55 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 /opt/oracle/oradata/zgw/system01.dbf channel ORA_DISK_1: restoring datafile 00004 to /opt/oracle/oradata/zgw/users01.dbf channel ORA_DISK_1: reading from backup piece /home/oracle/backup/ZGW_0lq82u4r_1_1 channel ORA_DISK_1: piece handle=/home/oracle/backup/ZGW_0lq82u4r_1_1 tag=TAG20150528T143051 channel ORA_DISK_1: restored backup piece 1 channel ORA_DISK_1: restore complete, elapsed time: 00:00:56 Finished restore at 28-MAY-15 RMAN> recover database; Starting recover at 28-MAY-15 using channel ORA_DISK_1 starting media recovery RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of recover command at 05/28/2015 17:07:45 RMAN-06053: unable to perform media recovery because of missing log RMAN-06025: no backup of archived log for thread 1 with sequence 12 and starting SCN of 1083172 found to restore //这里报日志缺少,实际上是备份的数据库文件后,没有备份归档日志,归档日志全部丢失 //下面尝试进行不完全恢复 $ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Thu May 28 17:08:29 2015 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 SQL> recover database using backup controlfile until cancel; ORA-00279: change 1083180 generated at 05/28/2015 14:30:51 needed for thread 1 ORA-00289: suggestion : /opt/oracle/flash_recovery_area/ZGW/archivelog/2015_05_28/o1_mf_1_12_%u_.arc ORA-00280: change 1083180 for thread 1 is in sequence #12 Specify log: {<RET>=suggested | filename | AUTO | CANCEL} ORA-00308: cannot open archived log '/opt/oracle/flash_recovery_area/ZGW/archivelog/2015_05_28/o1_mf_1_12_%u_.arc' ORA-27037: unable to obtain file status Linux-x86_64 Error: 2: No such file or directory Additional information: 3 SQL> alter database open resetlogs; //至此恢复完毕 Database altered. SQL> select name,OPEN_MODE from v$database; //验证数据库状态 NAME OPEN_MODE --------- -------------------- ZGW READ WRITE

此文参考:

  第六篇 实战RMAN备份 http://www.5ienet.com/note/html/rman/rman-backup-script-example.shtml

     Rman备份异机恢复指南 http://ylw6006.blog.51cto.com/470441/659104/

     Oracle 11g RMAN 备份异机恢复并创建新DBID http://blog.csdn.net/leishifei/article/details/6317688

     catalog start with rman备份集直接导入控制文件中 http://blog.itpub.net/27042095/viewspace-759237/

     使用_allow_resetlogs_corruption打开无归档日志rman备份库 http://www.xifenfei.com/2619.html

原文地址:https://www.cnblogs.com/storymedia/p/4536553.html