Rman备份异机恢复指南

简介:

环境介绍:
操作系统版本:RHEL5.4  32位 
ORALCE版本:  10.2.0.1 32位
ORACLE_SID:  orcl
源服务器和目的服务器的操作系统,oracle版本均一致

源服务器:192.168.227.20
目的服务器:192.168.227.30,只需要安装oracle软件即可,不需要建库操作

一:在源服务器上使用rman备份数据库,包括数据文件,归档日志文件和控制文件,参数文件的备份

 
  1. [oracle@orcl ~]$ mkdir /u01/backup  
  2. [oracle@orcl ~]$ rman target /  
  3. Recovery Manager: Release 10.2.0.1.0 - Production on Tue Sep 6 16:04:53 2011  
  4. Copyright (c) 1982, 2005, Oracle.  All rights reserved.  
  5. connected to target database: ORCL (DBID=1287906064)  
  6.  
  7. RMAN> run {   
  8. 2> allocate channel c1 device type disk;  
  9. 3> backup incremental level 0    
  10. 4> format '/u01/backup/db_full_%U.bkp'    
  11. 5> tag '2011-09-06-FULL'  
  12. 6> database plus archivelog;  
  13. 7> release channel c1;  
  14. 8> }  
  15. RMAN> backup current controlfile format '/u01/backup/control20110906.bak';  
  16. RMAN> backup spfile format '/u01/backup/spfile20110906.bak'; 

二:在目的服务器上复制备份数据,并准备好相关的目录

 
  1. [oracle@orcl ~]$ mkdir /u01/backup  
  2. [oracle@orcl ~]$ scp -rp 192.168.227.20:/u01/backup/* /u01/backup/  
  3. oracle@192.168.227.20's password:   
  4. control20110906.bak                           100% 6944KB   1.7MB/s   00:04      
  5. db_full_0fmlsmdt_1_1.bkp                      100%   97MB   4.4MB/s   00:22      
  6. db_full_0gmlsme5_1_1.bkp                      100%  593MB   9.1MB/s   01:05      
  7. db_full_0hmlsmg7_1_1.bkp                      100% 6656     6.5KB/s   00:00    
  8. spfile20110906.bak                            100%   96KB  96.0KB/s   00:00   
  9.  
  10. [oracle@orcl ~]$ mkdir -p /u01/app/oracle/admin/orcl/{adump,bdump,cdump,dpdump,udump,pfile}  
  11. [oracle@orcl ~]$ mkdir -p /u01/app/oracle/oradata/orcl  
  12. [oracle@orcl ~]$ mkdir -p /u01/app/oracle/flash_recover_area/ORCL 

三:在目的服务器上进行恢复

 
  1. [oracle@orcl ~]$ echo 'db_name=orcl> $ORACLE_HOME/dbs/initorcl.ora  
  2. [oracle@orcl ~]$ export ORACLE_SID=orcl 
  3. [oracle@orcl ~]$ rman target /  
  4. Recovery Manager: Release 10.2.0.1.0 - Production on Tue Sep 6 16:18:19 2011  
  5. Copyright (c) 1982, 2005, Oracle.  All rights reserved.  
  6. connected to target database (not started)  
  7.  
  8. RMAN> set dbid 1287906064;       //指定DBID,需要和源服务器的DBID一致  
  9. RMAN> startup nomount;           //启动数据库到nomount状态,这里需要前面创建initorcl.ora文件,否则将报错  
  10. RMAN>  restore spfile from '/u01/backup/spfile20110906.bak';       //恢复参数文件  
  11. RMAN> startup nomount force;                                       //重启实例到nomout状态  
  12. RMAN> restore controlfile from '/u01/backup/control20110906.bak';  //恢复控制文件  
  13. RMAN> restore database;         //还原数据库文件  
  14. RMAN> recover database;         //恢复数据库文件,这里将报错  
  15. RMAN-03002: failure of recover command at 09/06/2011 17:03:51  
  16. RMAN-06054: media recovery requesting unknown log: thread 1 seq 15 lowscn 547974  
  17. RMAN> exit  
  18.  
  19. [oracle@orcl ~]$ sqlplus /nolog   //在sqlplus中对数据库进行until cancel操作后以resetlogs方式打开  
  20. SQL*Plus: Release 10.2.0.1.0 - Production on Tue Sep 6 17:04:22 2011  
  21. Copyright (c) 1982, 2005, Oracle.  All rights reserved.  
  22.  
  23. SQL> conn /as sysdba  
  24. Connected.  
  25. SQL> recover database using backup controlfile until cancel;  
  26. ORA-00279: change 547974 generated at 09/06/2011 16:49:11 needed for thread 1  
  27. ORA-00289: suggestion :  
  28. /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_09_06/o1_mf_1_15_%u_.ar  
  29. c  
  30. ORA-00280: change 547974 for thread 1 is in sequence #15  
  31.  
  32.  
  33. Specify log: {<RET>=suggested | filename | AUTO | CANCEL}  
  34. cancel  
  35. Media recovery cancelled.  
  36. SQL> alter database open resetlogs;  

四:测试

 
  1. SQL> select member from v$logfile;  
  2.  
  3. MEMBER  
  4. --------------------------------------------------------------------------------  
  5. /u01/app/oracle/oradata/orcl/redo03.log  
  6. /u01/app/oracle/oradata/orcl/redo02.log  
  7. /u01/app/oracle/oradata/orcl/redo01.log  
  8.  
  9. SQL> select file_name from dba_data_files;  
  10.  
  11. FILE_NAME  
  12. --------------------------------------------------------------------------------  
  13. /u01/app/oracle/oradata/orcl/users01.dbf  
  14. /u01/app/oracle/oradata/orcl/sysaux01.dbf  
  15. /u01/app/oracle/oradata/orcl/undotbs01.dbf  
  16. /u01/app/oracle/oradata/orcl/system01.dbf  
  17. /u01/app/oracle/oradata/orcl/example01.dbf  
  18. /u01/app/oracle/oradata/orcl/tbs_apple01.dbf  
  19. 6 rows selected.  
  20.  
  21.  
  22. SQL> select count(*) from dba_temp_files;  
  23.   COUNT(*)  
  24. ----------  
  25.          1  
  26.  
  27. SQL> select count(*) from hr.employees;  
  28.  
  29.   COUNT(*)  
  30. ----------  
  31.        107 

五:注意事项

 
  1. RMAN> list incarnation;  //生成一个新的incarnation  
  2. using target database control file instead of recovery catalog  
  3.  
  4. List of Database Incarnations  
  5. DB Key  Inc Key DB Name  DB ID            STATUS  Reset SCN  Reset Time  
  6. ------- ------- -------- ---------------- --- ---------- ----------  
  7. 1       1       ORCL     1287906064       PARENT  1          2005-06-30:19:09:40  
  8. 2       2       ORCL     1287906064       PARENT  446075     2011-08-25:17:55:31  
  9. 3       3       ORCL     1287906064       CURRENT 547975     2011-09-06:17:07:09  
  10.  
  11. [oracle@orcl ~]$ emctl start dbconsole  //dbconsole需要重新配置,orapwd文件也需要创建  
  12. TZ set to PRC  
  13. OC4J Configuration issue. /u01/app/oracle/product/10.2.0/db_1/oc4j/j2ee/OC4J_DBConsole_orcl.herostart.com_orcl not found 

 六:增量备份的异机恢复
1:源服务器

 
  1. SQL> create user rman_inr identified by "123456" default tablespace users;  
  2. User created.  
  3. SQL> grant connect,resource to rman_inr;  
  4. Grant succeeded.  
  5. SQL> create table rman_inr.test as select * from dba_source;  
  6. Table created.  
  7.  
  8. RMAN> backup incremental level 1   
  9. 2> format '/u01/backup/inr1_db_%U' tag 'inr_1'  
  10. 3> database plus archivelog;  
  11.  
  12. [oracle@orcl ~]$ rman target /  
  13. RMAN> backup incremental level 1   
  14. 2> format '/u01/backup/inr1_db_%U' tag 'inr_1'  
  15. 3> database plus archivelog;  
  16.  
  17. RMAN> backup current controlfile format '/u01/backup/control02.bak';  
  18.  
  19. [oracle@orcl ~]$ ls -lh /u01/backup/inr1_db_1*  
  20. -rw-r----- 1 oracle oinstall  53M Sep  8 16:34 /u01/backup/inr1_db_1omm1ud0_1_1  
  21. -rw-r----- 1 oracle oinstall  51M Sep  8 16:35 /u01/backup/inr1_db_1pmm1udk_1_1  
  22. -rw-r----- 1 oracle oinstall 6.9M Sep  8 16:35 /u01/backup/inr1_db_1qmm1uf2_1_1  
  23. -rw-r----- 1 oracle oinstall  11K Sep  8 16:35 /u01/backup/inr1_db_1rmm1uf5_1_1  
  24.  
  25. [oracle@orcl ~]$ scp /u01/backup/inr1_db_1* 192.168.227.30:/u01/backup/  
  26. [oracle@orcl ~]$ scp /u01/backup/control02.bak 192.168.227.30:/u01/backup/    

2:目标服务器

 
  1. [oracle@orcl ~]$ sqlplus /nolog  
  2. SQL> conn /as sysdba  
  3. Connected.  
  4. SQL> shutdown immediate;    
  5.  
  6. RMAN> set dbid=1287906064;  
  7. RMAN> startup nomount;  
  8. RMAN> restore controlfile from '/u01/backup/control02.bak';  
  9. RMAN> startup mount force;  
  10.  
  11. RMAN> restore database;  
  12. RMAN> recover database;  
  13. RMAN-03002: failure of recover command at 09/08/2011 16:46:44  
  14. RMAN-06054: media recovery requesting unknown log: thread 1 seq 45 lowscn 598452  
  15. RMAN> exit  
  16.  
  17. [oracle@orcl ~]$ sqlplus /nolog  
  18. SQL> conn /as sysdba  
  19.  
  20. SQL> recover database using backup controlfile until cancel;  
  21. ORA-00279: change 598452 generated at 09/08/2011 16:35:49 needed for thread 1  
  22. ORA-00289: suggestion : /u01/arch/orcl/1_45_760125331.arc  
  23. ORA-00280: change 598452 for thread 1 is in sequence #45  
  24.  
  25. Specify log: {<RET>=suggested | filename | AUTO | CANCEL}  
  26. cancel  
  27. Media recovery cancelled.  
  28.  
  29. SQL> alter database open resetlogs;  
  30. Database altered. 

3:测试

 
  1. SQL> conn rman_inr/123456  
  2. Connected  
  3.  
  4. SQL> select count(*) from test;  
  5.  
  6.   COUNT(*)  
  7. ----------  
  8.     292428 

 本文转自斩月博客51CTO博客,原文链接http://blog.51cto.com/ylw6006/659104如需转载请自行联系原作者


ylw6006

相关文章
|
数据库
rman 异机恢复
rman 异机恢复
105 0
|
Oracle 关系型数据库 数据库
oracle数据库控制文件的备份和恢复之三RMAN自动备份和恢复
使用RMAN自动备份的控制文件向数据库中恢复控制文件
322 0
|
Oracle 关系型数据库 数据库
|
监控
rman 恢复部分归档日志
rac 数据库在恢复部分归档日志的时候,需要指定数据库的线程编号。
1863 0
|
SQL otter 关系型数据库
|
SQL Oracle 关系型数据库
|
Oracle 关系型数据库 数据库
|
SQL Oracle 关系型数据库
|
Oracle 关系型数据库 Shell
|
Oracle 关系型数据库 数据库