rman 备份并异机恢复

时间:2021-03-24 05:40:06

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