rman 异机恢复


1、源端:rman 备份

[oracle@node1 dbs]$ rman target /
Recovery Manager: Release 11.2.0.4.0 - Production on Wed Jan 27 08:30:53 2016
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
connected to target database: NODE1 (DBID=1752471044) --注意记住dbid

run
{
allocate channel c1 type disk;
allocate channel c2 type disk;
backup  database format '/oradata/backup/full_%d_%T_%s_%p';
sql 'alter system archive log current';
sql 'alter system archive log current';
sql 'alter system archive log current';
backup archivelog all format '/oradata/backup/arch_%d_%T_%s_%p';
backup current controlfile format '/oradata/backup/c_ctl_%d_%T_%s_%p';
}

2. 查看spfile所在备份的位置

RMAN> list backup of spfile;

List of Backup Sets
===================
BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
20      Full    80.00K     DISK        00:00:00     27-JAN-16      
        BP Key: 20   Status: AVAILABLE  Compressed: NO  Tag: TAG20160127T072041
        Piece Name: /oradata/backup/full_NODE1_20160127_22_1   --可以看到在这个文件里面
  SPFILE Included: Modification time: 25-JAN-16
  SPFILE db_unique_name: NODE1

3. scp rman备份到目标端
   
[oracle@node1 backup]$ scp * oracle@192.168.56.12:/oradata/backup

The authenticity of host '192.168.56.12 (192.168.56.12)' can't be established.
RSA key fingerprint is f4:26:86:52:23:76:4c:09:1b:b0:6d:32:a7:7a:0a:80.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.56.12' (RSA) to the list of known hosts.
oracle@192.168.56.12's password: 
arch_NODE1_20160127_23_1                             100%   18MB  17.7MB/s   00:01    
arch_NODE1_20160127_24_1                             100%  168MB  28.1MB/s   00:06    
arch_NODE1_20160127_25_1                             100%  105MB  26.3MB/s   00:04    
c_ctl_NODE1_20160127_26_1                            100% 9664KB   9.4MB/s   00:00    
full_NODE1_20160127_19_1                             100%  198MB  13.2MB/s   00:15    
full_NODE1_20160127_20_1                             100%  112MB   7.5MB/s   00:15    
full_NODE1_20160127_21_1                             100% 9664KB   9.4MB/s   00:00    
full_NODE1_20160127_22_1                             100%   96KB  96.0KB/s   00:00    --spfile在这个文件里
[oracle@node1 backup]$ 


4. 创建各种dump目录

[oracle@node3 backup]$ export ORACLE_SID=node1
[oracle@node3 backup]$ env|grep SID
ORACLE_SID=node1


11g要创建这些目录

rm -rf $ORACLE_BASE/admin/$ORACLE_SID
mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/adump
mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/dpdump
mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/pfile
mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/scripts
chmod -R 750 $ORACLE_BASE/admin

rm -rf $ORACLE_BASE/diag/rdbms/$ORACLE_SID
mkdir -p $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/alert 
mkdir -p $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/cdump 
mkdir -p $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/hm    
mkdir -p $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/incident
mkdir -p $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/incpkg
mkdir -p $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/ir    
mkdir -p $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/lck   
mkdir -p $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/metadata
mkdir -p $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/stage 
mkdir -p $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/sweep 
mkdir -p $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/trace
chmod -R 750 $ORACLE_BASE/diag/rdbms/$ORACLE_SID 


5. 创建密码文件,直接copy过去也行

方法一:创建密码文件
cd $ORACLE_HOME/dbs
[oracle@localhost dbs]$ orapwd file=/u01/app/oracle/product/11.2.0.3/db_1/dbs/orapworcl password=oracle

方法二:copy密码文件
[oracle@node1 dbs]$ scp orapwnode1 oracle@192.168.56.12://u01/app/oracle/product/11.2.0/db_1/dbs
oracle@192.168.56.12's password: 
orapwnode1                            100% 1536     1.5KB/s   00:00    
[oracle@node1 dbs]$ 

缺省情况下,win下口令文件的格式是pwdsid.ora,unix下的格式是orapwSID(大小写敏感)实例名区分大小写,库名不区分大小写


6. 恢复
[oracle@node3 dbs]$ rman target /
Recovery Manager: Release 11.2.0.4.0 - Production on Thu Feb 4 19:27:58 2016
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
connected to target database (not started)

RMAN> set DBID=1752471044  --设置dbid
executing command: SET DBID

RMAN> startup nomount;
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/initnode1.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下即使没有参数文件,默认也会启动一个DUMMY实例,以便能够恢复参数文件。

7.恢复参数文件

RMAN> restore spfile from '//oradata/backup/full_NODE1_20160127_22_1';

Starting restore at 04-FEB-16
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=19 device type=DISK

channel ORA_DISK_1: restoring spfile from AUTOBACKUP //oradata/backup/full_NODE1_20160127_22_1
channel ORA_DISK_1: SPFILE restore from AUTOBACKUP complete
Finished restore at 04-FEB-16

8.强制启动到nomount状态

RMAN> startup force nomount;
Oracle instance started

Total System Global Area     839282688 bytes

Fixed Size                     2257880 bytes
Variable Size                494930984 bytes
Database Buffers             339738624 bytes
Redo Buffers                   2355200 bytes


9.恢复控制文件


RMAN> restore  controlfile from '/oradata/backup/c_ctl_NODE1_20160127_26_1';
Starting restore at 04-FEB-16
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 02/04/2016 19:50:38
ORA-19504: failed to create file "/u01/app/oracle/fast_recovery_area/node1/control02.ctl"
ORA-27040: file create error, unable to create file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 1
ORA-19600: input file is control file  (/oradata/node1/control01.ctl)
ORA-19601: output file is control file  (/u01/app/oracle/fast_recovery_area/node1/control02.ctl)

这里没有那些目录,创建目录
mkdir -p /u01/app/oracle/fast_recovery_area/node1/
mkdir -p  /oradata/node1/

RMAN> restore  controlfile from '/oradata/backup/c_ctl_NODE1_20160127_26_1';

Starting restore at 04-FEB-16
using channel ORA_DISK_1

channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:03
output file name=/oradata/node1/control01.ctl
output file name=/u01/app/oracle/fast_recovery_area/node1/control02.ctl
Finished restore at 04-FEB-16

10.启动到mount状态

RMAN> alter database mount;
database mounted
released channel: ORA_DISK_1


[oracle@node3 node1]$ export ORACLE_SID=node1
[oracle@node3 node1]$ env|grep SID
ORACLE_SID=node1
[oracle@node3 node1]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Thu Feb 4 19:58:20 2016

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

查看文件路径
SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/oradata/node1/system01.dbf
/oradata/node1/sysaux01.dbf
/oradata/node1/undotbs01.dbf
/oradata/node1/users01.dbf
/oradata/node1/bbb.dbf


11.rman 恢复数据文件

 第一种目标端的路径跟源端路径不一样了需要set newname
run
{
set newname for datafile '/oradata/node1/system01.dbf' to '/oradata/node2/system01.dbf';
set newname for datafile '/oradata/node1/sysaexux01.dbf'to '/oradata/node2/sysaux01.dbf';
set newname for datafile '/oradata/node1/undotbs01.dbf' to '/oradata/node2/undotbs01.dbf';
set newname for datafile '/oradata/node1/users01.dbf'  to '/oradata/node2/users01.dbf';
restore database ;
switch datafile all;
}

run{
   allocate channel c1 type disk;
   recover database;
}

第二种:目标端路径和源端完全一样直接 restore database;

RMAN> restore database;

Starting restore at 04-FEB-16
Starting implicit crosscheck backup at 04-FEB-16
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=20 device type=DISK
Crosschecked 15 objects
Finished implicit crosscheck backup at 04-FEB-16

Starting implicit crosscheck copy at 04-FEB-16
using channel ORA_DISK_1
Finished implicit crosscheck copy at 04-FEB-16

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

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 /oradata/node1/sysaux01.dbf
channel ORA_DISK_1: restoring datafile 00003 to /oradata/node1/undotbs01.dbf
channel ORA_DISK_1: reading from backup piece /oradata/backup/full_NODE1_20160127_20_1
channel ORA_DISK_1: piece handle=/oradata/backup/full_NODE1_20160127_20_1 tag=TAG20160127T072041
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:35
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 /oradata/node1/system01.dbf
channel ORA_DISK_1: restoring datafile 00004 to /oradata/node1/users01.dbf
channel ORA_DISK_1: restoring datafile 00005 to /oradata/node1/bbb.dbf
channel ORA_DISK_1: reading from backup piece /oradata/backup/full_NODE1_20160127_19_1
channel ORA_DISK_1: piece handle=/oradata/backup/full_NODE1_20160127_19_1 tag=TAG20160127T072041
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:35
Finished restore at 04-FEB-16

RMAN> recover database;
Starting recover at 04-FEB-16
using channel ORA_DISK_1

starting media recovery

channel ORA_DISK_1: starting archived log restore to default destination
channel ORA_DISK_1: restoring archived log
archived log thread=1 sequence=46
channel ORA_DISK_1: restoring archived log
archived log thread=1 sequence=47
channel ORA_DISK_1: restoring archived log
archived log thread=1 sequence=48
channel ORA_DISK_1: restoring archived log
archived log thread=1 sequence=49
channel ORA_DISK_1: reading from backup piece /oradata/backup/arch_NODE1_20160127_25_1
channel ORA_DISK_1: piece handle=/oradata/backup/arch_NODE1_20160127_25_1 tag=TAG20160127T072111
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:07
archived log file name=/oradata/arch1_46_901846980.dbf thread=1 sequence=46
archived log file name=/oradata/arch1_47_901846980.dbf thread=1 sequence=47
archived log file name=/oradata/arch1_48_901846980.dbf thread=1 sequence=48
archived log file name=/oradata/arch1_49_901846980.dbf thread=1 sequence=49
unable to find archived log
archived log thread=1 sequence=50
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 02/04/2016 20:03:15
RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 50 and starting SCN of 436825


12.源库查看
SQL> select group#,sequence#,status,first_change#,next_change# from v$log;

    GROUP#  SEQUENCE# STATUS       FIRST_CHANGE# NEXT_CHANGE#
---------- ---------- -------------------------------- ------------- ------------
 1   49 INACTIVE      436817   436825
 2   50 CURRENT      436825   2.8147E+14
 3   48 INACTIVE      436808   436817

可以看到sequence 50的是current日志

主库先备份归档:RMAN> backup archivelog all format '/oradata/backup/arch_%d_%T_%s_%p';
将归档备份集Scp到备库;
[root@node1 backup]# scp arch_NODE1_20160127_27_1 oracle@192.168.56.12:/oradata/backup
The authenticity of host '192.168.56.12 (192.168.56.12)' can't be established.
RSA key fingerprint is f4:26:86:52:23:76:4c:09:1b:b0:6d:32:a7:7a:0a:80.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.56.12' (RSA) to the list of known hosts.
oracle@192.168.56.12's password: 
arch_NODE1_20160127_27_1                                                                                                                                     100%  293MB  29.3MB/s   00:10    
[root@node1 backup]# 


13.备库再注册归档备份集:
RMAN> catalog backuppiece '/oradata/backup/arch_NODE1_20160127_27_1';

cataloged backup piece
backup piece handle=/oradata/backup/arch_NODE1_20160127_27_1 RECID=25 STAMP=902952783

RMAN> recover database;

Starting recover at 04-FEB-16
using channel ORA_DISK_1

starting media recovery

channel ORA_DISK_1: starting archived log restore to default destination
channel ORA_DISK_1: restoring archived log
archived log thread=1 sequence=50
channel ORA_DISK_1: reading from backup piece /oradata/backup/arch_NODE1_20160127_27_1
channel ORA_DISK_1: piece handle=/oradata/backup/arch_NODE1_20160127_27_1 tag=TAG20160127T081756
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
archived log file name=/oradata/arch1_50_901846980.dbf thread=1 sequence=50
unable to find archived log
archived log thread=1 sequence=51
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 02/04/2016 20:13:22
RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 51 and starting SCN of 438344

SQL> select group#,thread#,sequence#,status,first_change#,next_change# from v$log;

    GROUP#    THREAD#  SEQUENCE# STATUS   FIRST_CHANGE# NEXT_CHANGE#
---------- ---------- ---------- -------------------------------- ------------- ------------
 1    1      49 INACTIVE 436817       436825
 2    1      50 ACTIVE  436825       438344
 3    1      51 CURRENT 438344   2.8147E+14
 
可以看到sequence 51 已经是最新的日志了

14. 打开数据库
SQL> alter database open resetlogs;

Database altered.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值