RMAN(Recovery Manager)是随Oracle服务器软件一同安装的工具软件,它可以用来备份和恢复数据库文件、归档日志和控制文件,用来执行完全或不完全的数据库恢复。与传统工具相比,RMAN具有独特的优势:跳过未使用的数据块。当备份一个RMAN备份集时,RMAN不会备份从未被写入的数据块,而传统的方式无法获知那些是未被使用的数据块。RMAN使用Oracle特有的二进制压缩模式,与传统备份的压缩方式相比,能够最大程度地压缩数据块中的一些典型数据。
(1) 支持增量备份:传统的exp与expdp备份工具,只能实现一个完整备份而不能增量备份,RMAN采用备份级别实现增量备份,在一个完整的备份基础上采用增量备份可以大大减少备份的数量;
(2) 自动管理备份文件:RMAN备份的数据是RMAN自动管理的,包括文件名字,备份文件存储目录等;
(3) 自动化备份与恢复:在备份与恢复操作时,使用简单的指令就可以实现备份与恢复,执行过程完全有RMAN维护。
(4) 不产生重做信息: RMAN联机备份不产生重做信息。
(5) 支持映像复制: 使用RMAN可以实现映像复制,映像以操作系统的文件格式存在,这种复制类似于用户管理的脱机备份方式。
(6) 备份的数据文件压缩处理: RMAN提供一个参数,说明是否对备份文件进行压缩,压缩的备份文件以二进制文件格式存在,可以减少备份文件的存储空间。
(7) 备份文件有效性检查功能: 可以在备份之后恢复检测备份文件是否可用,避免无效恢复操作。
Rman支持全量备份,差异增量备份,累计增量备份,快速增量备份
备份一次全库的备份,可以不添加level0关键字,可以添加level 0进行标识,如果想使用对此全备份添加增量备份,那么必须使用level0进行标识
是备份上级及同级备份以来所有变化的数据块,差异增量是默认增量备份方式,一般以level1进行标识
是备份上级备份以来所有变化的块,因为累积增量是备份上级备份以来所有变化的数据块,所以累积增量需要更多的备份时间,同时需要较小的恢复时间;
而差异增量正好相反,它可以备份同级备份以来变化的数据块。所以会减少备份时间,但需要更多的恢复时间.在oracle 9中增量备份需要通过扫描整个数据库的数据块才能知道哪些数据块发生了变化,这是一个代价很大,时间很长的过程,而且由于增量备份形成多个不同的备份集,使恢复变得更加不可靠,所以增量备份在版本9中仍然不被推荐使用;在10g中,增量备份作了很大的改进,不需要再扫描所有数据块就能得知哪些数据块发生变化(块跟踪),从而大大提升备份效率。但这些却以牺牲磁盘i/o为代价,所以在oltp事务系统中还得衡量是否愿意以i/o为代价来保证安全及高可用性。10g还支持增量合并,增量备份可支持7级增量。
开启块跟踪功能 (Database Backup and Recovery Basics 4.4.4 Improving Incremental Backup Performance: Change Tracking)会在文件中记录oracle数据块的变化,在备份的时候直接读取此文件,获取变化数据块的信息,从而加速增量备份速度.
SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '/app/oracle/product/oradata/fatdb/rman_chg.log' reuse;
Database altered.
需要说明的是10g起oracle官方只推荐使用level 0和level 1级备份,10g还能使用level 2并不推荐使用。
首先看下Oracle官方解释 载至在线文档Database Backup and Recovery Basics 4.4节RMAN Incremental Backups:
A level 1 incremental backup can be either of the following types:
A differential backup, which backs up all blocks changed after the most recent incremental backup at level 1 or 0
A cumulative backup, which backs up all blocks changed after the most recent incremental backup at level 0
Incremental backups are differential by default.
也就是differential 是上次备份(不论是level 0或者level 1)至今的变化数据,这个是level 1的缺省值。而cumulative 是从上次level 0备份后至今的所有的变化数据,也就是说,如果在level 0 至今,中间如果有若干次增量备份(level 1的differential 或者cumulative ),所有的变化内容都将保存在这个增量集中。
增量备份的level 1是从上次0或者1至今的变化,而level 2是从上次备份至今的增量,无论是0或者1或者2;
累积备份的level 1是从上次0至今的累积变化,而level 2是上次level 0或者level 1至今的累积增量(包括期间的level 2增量累计和)集合下图理解:
备份采用linux自带的crontab定时任务进行rman备份.在每天的23:00进行备份
备份策略为每周六和周三做一次全量备份,其它时间做level 1的增量备份.并且只保留两份可用的备份版本.删除过期的备份数据
星期 |
备份方式 |
周日 |
Level0 全量备份 |
周一 |
Level1 增量备份 |
周二 |
Level1 增量备份 |
周三 |
Level0 全量备份 |
周四 |
Level1 增量备份 |
周五 |
Level1 增量备份 |
周六 |
Level1 增量备份 |
生产数据库采用的虚拟化设备,由于nfs效率太慢,所以备份采用本地存储的方式.
每周的周日和周三进行全库的level0备份,备份脚本如下:
[oracle@ptdb1 scripts]$ cat backup_level0.sh
rman target / < run{ allocate channel c1 type disk; allocate channel c2 type disk; allocate channel c3 type disk; allocate channel c4 type disk; backup spfile format ‘/u01/backup/spfile_%U_%T.bak’; backup as compressed backupset incremental level 0 tag 'db0' database format '/u01/backup/db0_%U_%T.bak'; sql 'alter system archive log current'; backup as compressed backupset archivelog all format '/u01/backup/arch_%U_%T.bak' delete input ; delete noprompt obsolete; release channel c1; release channel c2; release channel c3; release channel c4; } 每周的其它时间进行level1的增量备份,脚本如下: [oracle@ptdb1 scripts]$ cat backup_level1.sh rman target / < run{ allocate channel c1 type disk; allocate channel c2 type disk; allocate channel c3 type disk; allocate channel c4 type disk; backup as compressed backupset incremental level 1 tag 'db1' database format '/u01/backup/db1_%U_%T.bak'; sql 'alter system archive log current'; backup as compressed backupset archivelog all format '/u01/backup/arch_%U_%T.bak' delete input ; release channel c1; release channel c2; release channel c3; release channel c4; } EOF 备份保留两份备份版本,设置如下: 备份计划,每周的周日和周一23:00备份全库level0,每周的其它时间备份level1增量: 每天的23:00执行备份脚本,level0备份日志如下: Recovery Manager: Release 11.2.0.4.0 - Production on Wed Mar 6 11:33:56 2019 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. connected to target database: ORCL (DBID=1524318178) RMAN> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> 12> 13> using target database control file instead of recovery catalog allocated channel: c1 channel c1: SID=3791 instance=orcl1 device type=DISK allocated channel: c2 channel c2: SID=4356 instance=orcl1 device type=DISK allocated channel: c3 channel c3: SID=4736 instance=orcl1 device type=DISK allocated channel: c4 channel c4: SID=4922 instance=orcl1 device type=DISK Starting backup at 06-MAR-2019 11:34:01 channel c1: starting compressed incremental level 0 datafile backup set channel c1: specifying datafile(s) in backup set input datafile file number=00017 name=+DATA/orcl/datafile/ek_tool.281.996540333 input datafile file number=00021 name=+DATA/orcl/datafile/cdr.285.996540349 input datafile file number=00004 name=+DATA/orcl/datafile/undotbs2.264.996537471 input datafile file number=00005 name=+DATA/orcl/datafile/users.265.996537473 input datafile file number=00009 name=+DATA/orcl/datafile/mq.273.996539359 channel c1: starting piece 1 at 06-MAR-2019 11:34:03 channel c2: starting compressed incremental level 0 datafile backup set channel c2: specifying datafile(s) in backup set input datafile file number=00006 name=+DATA/orcl/datafile/ek_tool.270.996539355 input datafile file number=00020 name=+DATA/orcl/datafile/cdr.284.996540347 input datafile file number=00001 name=+DATA/orcl/datafile/system.260.996537457 input datafile file number=00015 name=+DATA/orcl/datafile/mq.279.996540321 input datafile file number=00011 name=+DATA/orcl/datafile/cdr.275.996539361 channel c2: starting piece 1 at 06-MAR-2019 11:34:03 channel c3: starting compressed incremental level 0 datafile backup set channel c3: specifying datafile(s) in backup set input datafile file number=00018 name=+DATA/orcl/datafile/ek_tool.282.996540333 input datafile file number=00003 name=+DATA/orcl/datafile/undotbs1.262.996537465 input datafile file number=00002 name=+DATA/orcl/datafile/sysaux.261.996537461 input datafile file number=00022 name=+DATA/orcl/datafile/mdr.286.998910057 input datafile file number=00014 name=+DATA/orcl/datafile/mq.278.996540319 input datafile file number=00016 name=+DATA/orcl/datafile/mq.280.996540323 channel c3: starting piece 1 at 06-MAR-2019 11:34:03 channel c4: starting compressed incremental level 0 datafile backup set channel c4: specifying datafile(s) in backup set input datafile file number=00019 name=+DATA/orcl/datafile/ek_tool.283.996540335 input datafile file number=00010 name=+DATA/orcl/datafile/share_doc.274.996539359 input datafile file number=00013 name=+DATA/orcl/datafile/tsp_comm.277.996539363 input datafile file number=00012 name=+DATA/orcl/datafile/kb.276.996539361 input datafile file number=00007 name=+DATA/orcl/datafile/tsp_monitor.271.996539355 input datafile file number=00008 name=+DATA/orcl/datafile/his.272.996539357 channel c4: starting piece 1 at 06-MAR-2019 11:34:03 channel c3: finished piece 1 at 06-MAR-2019 11:53:38 piece handle=/u01/backup/db0_07troi9b_20190306.bak tag=DB0 comment=NONE channel c3: backup set complete, elapsed time: 00:19:35 channel c3: starting compressed incremental level 0 datafile backup set channel c3: specifying datafile(s) in backup set including current control file in backup set channel c3: starting piece 1 at 06-MAR-2019 11:53:40 channel c3: finished piece 1 at 06-MAR-2019 11:53:41 piece handle=/u01/backup/db0_09troje3_20190306.bak tag=DB0 comment=NONE channel c3: backup set complete, elapsed time: 00:00:01 channel c3: starting compressed incremental level 0 datafile backup set channel c3: specifying datafile(s) in backup set including current SPFILE in backup set channel c3: starting piece 1 at 06-MAR-2019 11:53:41 channel c3: finished piece 1 at 06-MAR-2019 11:53:42 piece handle=/u01/backup/db0_0atroje5_20190306.bak tag=DB0 comment=NONE channel c3: backup set complete, elapsed time: 00:00:01 channel c4: finished piece 1 at 06-MAR-2019 11:54:36 piece handle=/u01/backup/db0_08troi9b_20190306.bak tag=DB0 comment=NONE channel c4: backup set complete, elapsed time: 00:20:33 channel c1: finished piece 1 at 06-MAR-2019 12:01:46 piece handle=/u01/backup/db0_05troi9b_20190306.bak tag=DB0 comment=NONE channel c1: backup set complete, elapsed time: 00:27:43 channel c2: finished piece 1 at 06-MAR-2019 12:01:56 piece handle=/u01/backup/db0_06troi9b_20190306.bak tag=DB0 comment=NONE channel c2: backup set complete, elapsed time: 00:27:53 Finished backup at 06-MAR-2019 12:01:56 增量备份level1日志如下: RMAN> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> 12> 13> using target database control file instead of recovery catalog allocated channel: c1 channel c1: SID=2273 instance=orcl1 device type=DISK allocated channel: c2 channel c2: SID=3782 instance=orcl1 device type=DISK allocated channel: c3 channel c3: SID=4358 instance=orcl1 device type=DISK allocated channel: c4 channel c4: SID=4732 instance=orcl1 device type=DISK Starting backup at 06-MAR-2019 12:25:56 channel c1: starting compressed incremental level 1 datafile backup set channel c1: specifying datafile(s) in backup set input datafile file number=00017 name=+DATA/orcl/datafile/ek_tool.281.996540333 input datafile file number=00021 name=+DATA/orcl/datafile/cdr.285.996540349 input datafile file number=00004 name=+DATA/orcl/datafile/undotbs2.264.996537471 input datafile file number=00005 name=+DATA/orcl/datafile/users.265.996537473 input datafile file number=00009 name=+DATA/orcl/datafile/mq.273.996539359 channel c1: starting piece 1 at 06-MAR-2019 12:25:58 channel c2: starting compressed incremental level 1 datafile backup set channel c2: specifying datafile(s) in backup set input datafile file number=00006 name=+DATA/orcl/datafile/ek_tool.270.996539355 input datafile file number=00020 name=+DATA/orcl/datafile/cdr.284.996540347 input datafile file number=00001 name=+DATA/orcl/datafile/system.260.996537457 input datafile file number=00015 name=+DATA/orcl/datafile/mq.279.996540321 input datafile file number=00011 name=+DATA/orcl/datafile/cdr.275.996539361 channel c2: starting piece 1 at 06-MAR-2019 12:25:58 channel c3: starting compressed incremental level 1 datafile backup set channel c3: specifying datafile(s) in backup set input datafile file number=00018 name=+DATA/orcl/datafile/ek_tool.282.996540333 input datafile file number=00003 name=+DATA/orcl/datafile/undotbs1.262.996537465 input datafile file number=00002 name=+DATA/orcl/datafile/sysaux.261.996537461 input datafile file number=00022 name=+DATA/orcl/datafile/mdr.286.998910057 input datafile file number=00014 name=+DATA/orcl/datafile/mq.278.996540319 input datafile file number=00016 name=+DATA/orcl/datafile/mq.280.996540323 channel c3: starting piece 1 at 06-MAR-2019 12:25:58 channel c4: starting compressed incremental level 1 datafile backup set channel c4: specifying datafile(s) in backup set input datafile file number=00019 name=+DATA/orcl/datafile/ek_tool.283.996540335 input datafile file number=00010 name=+DATA/orcl/datafile/share_doc.274.996539359 input datafile file number=00013 name=+DATA/orcl/datafile/tsp_comm.277.996539363 input datafile file number=00012 name=+DATA/orcl/datafile/kb.276.996539361 input datafile file number=00007 name=+DATA/orcl/datafile/tsp_monitor.271.996539355 input datafile file number=00008 name=+DATA/orcl/datafile/his.272.996539357 channel c4: starting piece 1 at 06-MAR-2019 12:25:59 channel c1: finished piece 1 at 06-MAR-2019 12:29:44 piece handle=/u01/backup/db1_0gtrolam_20190306.bak tag=DB1 comment=NONE channel c1: backup set complete, elapsed time: 00:03:46 channel c1: starting compressed incremental level 1 datafile backup set channel c1: specifying datafile(s) in backup set channel c2: finished piece 1 at 06-MAR-2019 12:29:44 piece handle=/u01/backup/db1_0htrolam_20190306.bak tag=DB1 comment=NONE channel c2: backup set complete, elapsed time: 00:03:46 channel c2: starting compressed incremental level 1 datafile backup set channel c2: specifying datafile(s) in backup set including current SPFILE in backup set channel c2: starting piece 1 at 06-MAR-2019 12:29:45 channel c4: finished piece 1 at 06-MAR-2019 12:29:45 piece handle=/u01/backup/db1_0jtrolam_20190306.bak tag=DB1 comment=NONE channel c4: backup set complete, elapsed time: 00:03:46 including current control file in backup set channel c1: starting piece 1 at 06-MAR-2019 12:29:46 channel c2: finished piece 1 at 06-MAR-2019 12:29:46 piece handle=/u01/backup/db1_0ltrolho_20190306.bak tag=DB1 comment=NONE channel c2: backup set complete, elapsed time: 00:00:02 channel c1: finished piece 1 at 06-MAR-2019 12:29:47 piece handle=/u01/backup/db1_0ktrolho_20190306.bak tag=DB1 comment=NONE channel c1: backup set complete, elapsed time: 00:00:01 channel c3: finished piece 1 at 06-MAR-2019 12:29:47 piece handle=/u01/backup/db1_0itrolam_20190306.bak tag=DB1 comment=NONE channel c3: backup set complete, elapsed time: 00:03:49 Finished backup at 06-MAR-2019 12:29:47 手工检查备份结果: RMAN> list backup summary; List of Backups =============== Key TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag ------- -- -- - ----------- -------------------- ------- ------- ---------- --- 1 B 0 A DISK 06-MAR-2019 11:53:31 1 1 YES DB0 2 B 0 A DISK 06-MAR-2019 11:53:40 1 1 YES DB0 3 B 0 A DISK 06-MAR-2019 11:53:41 1 1 YES DB0 4 B 0 A DISK 06-MAR-2019 11:54:30 1 1 YES DB0 5 B 0 A DISK 06-MAR-2019 12:01:44 1 1 YES DB0 6 B 0 A DISK 06-MAR-2019 12:01:50 1 1 YES DB0 7 B A A DISK 06-MAR-2019 12:15:07 1 1 YES TAG20190306T120208 8 B A A DISK 06-MAR-2019 12:17:28 1 1 YES TAG20190306T120208 9 B A A DISK 06-MAR-2019 12:20:17 1 1 YES TAG20190306T120208 10 B A A DISK 06-MAR-2019 12:20:29 1 1 YES TAG20190306T120208 11 B 1 A DISK 06-MAR-2019 12:29:35 1 1 YES DB1 12 B 1 A DISK 06-MAR-2019 12:29:37 1 1 YES DB1 13 B 1 A DISK 06-MAR-2019 12:29:41 1 1 YES DB1 14 B 1 A DISK 06-MAR-2019 12:29:45 1 1 YES DB1 15 B 1 A DISK 06-MAR-2019 12:29:46 1 1 YES DB1 16 B 1 A DISK 06-MAR-2019 12:29:47 1 1 YES DB1 RMAN> 定期的恢复演练,可以定期校验rman备份的可用性,还有助于运维人员熟悉掌握基本的恢复步骤,帮组运维人员在数据库出现故障的时候能快速熟练进行数据库的恢复. 由于生产数据库正在使用,我们这里模拟生产库故障,进行rman集合的异地恢复. 下面模拟在linux操作系统下从rac数据库恢复到单实例的异机恢复.下面模拟进行恢复步骤: 拷贝所有的备份文件,包括level0、level1和归档日志的备份,拷贝的目录可用和原来的备份的时候的目录一致,也可以不一致 还原spfile,使用nomount打开数据库 先编辑一个最简单的pfile,只有db_name即可: [oracle@bre2 dbs]$ cat initbre1.ora db_name=bre1 然后就可以nomount打开数据库了: SQL> startup nomount; ORACLE instance started. Total System Global Area 229683200 bytes Fixed Size 2251936 bytes Variable Size 171967328 bytes Database Buffers 50331648 bytes Redo Buffers 5132288 bytes SQL> 再使用rman来恢复spfile: RMAN> restore spfile from '/home/oracle/backup/04pggb87_1_1.bak'; Starting restore at 21-AUG-2014 9:39:31 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=171 device type=DISK channel ORA_DISK_1: restoring spfile from AUTOBACKUP /home/oracle/backup/04pggb87_1_1.bak channel ORA_DISK_1: SPFILE restore from AUTOBACKUP complete Finished restore at 21-AUG-2014 9:39:32 RMAN> 使用spfile来打理数据库试试 [oracle@bre2 ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Thu Aug 21 10:08:01 2014 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to an idle instance. SQL> startup nomount; ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file '/u01/app/oracle/product/11.2.0/db_1/dbs/initbre1.ora' SQL> startup nomount; ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file '/u01/app/oracle/product/11.2.0/db_1/dbs/initbre1.ora' SQL> startup nomount; ORA-09925: Unable to create audit trail file Linux-x86_64 Error: 2: No such file or directory Additional information: 9925 有很多相关目录没有创建,可以使用strings spfilebre1.ora来查看一下spfile里面的内容,建好相关的目录,并且赋予权限,这些都做好后nomount打开数据库不再报错。 登陆到rman,控制文件还原的时候将还原到参数文件指定的位置,所以参数文件指定的控制文件目录必须存在,否则报错: RMAN> restore controlfile from '/home/oracle/04pggb87_1_1.bak'; Starting restore at 21-AUG-2014 10:27:24 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=/u01/app/oracle/oradata/bre1/control01.ctl output file name=/u01/app/oracle/fast_recovery_area/bre1/control02.ctl Finished restore at 21-AUG-2014 10:27:25 重启数据库,直接就可以启动到mount SQL> startup mount; ORACLE instance started. Total System Global Area 835104768 bytes Fixed Size 2257840 bytes Variable Size 503319632 bytes Database Buffers 322961408 bytes Redo Buffers 6565888 bytes Database mounted. SQL> 如果此时备份集所在文件目录改变,需要手工catalog注册备份集,这里我们将拷过来的备份文件复制到/home/oracle/backup下,演示一下手工catalog备份集 [oracle@bre2 ~]$ ls 03pggb7o_1_1.bak 04pggb87_1_1.bak pfile.ora test [oracle@bre2 ~]$ mkdir backup [oracle@bre2 ~]$ mv *.bak backup [oracle@bre2 ~]$ ls backup 03pggb7o_1_1.bak 04pggb87_1_1.bak RMAN> catalog backuppiece '/home/oracle/backup/03pggb7o_1_1.bak'; Starting implicit crosscheck backup at 21-AUG-2014 10:32:10 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=10 device type=DISK Crosschecked 1 objects Finished implicit crosscheck backup at 21-AUG-2014 10:32:10 Starting implicit crosscheck copy at 21-AUG-2014 10:32:10 using channel ORA_DISK_1 Finished implicit crosscheck copy at 21-AUG-2014 10:32:11 searching for all files in the recovery area cataloging files... no files cataloged cataloged backup piece backup piece handle=/home/oracle/backup/03pggb7o_1_1.bak RECID=2 STAMP=856175531 RMAN> catalog backuppiece '/home/oracle/backup/04pggb87_1_1.bak'; cataloged backup piece backup piece handle=/home/oracle/backup/04pggb87_1_1.bak RECID=3 STAMP=856175550 原来的数据文件目录在rac磁盘组下面,我们将数据文件恢复到/bre1/oradata下面,%b的意思是只获取文件名,没有目录信息 [root@bre2 ~]# mkdir -p /bre1/oradata [root@bre2 ~]# chown -R oracle:oinstall /bre1 [oracle@bre2 ~]$ rman target / Recovery Manager: Release 11.2.0.4.0 - Production on Thu Aug 21 10:36:10 2014 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. connected to target database: BRE1 (DBID=2522432392, not open) run{ allocate channel ch1 device type disk; set newname for database to '/bre1/oradata/%b'; restore database; switch datafile all; release channel ch1; 6> } using target database control file instead of recovery catalog allocated channel: ch1 channel ch1: SID=396 device type=DISK executing command: SET NEWNAME Starting restore at 21-AUG-2014 10:38:03 channel ch1: starting datafile backup set restore channel ch1: specifying datafile(s) to restore from backup set channel ch1: restoring datafile 00001 to /bre1/oradata/system01.dbf channel ch1: restoring datafile 00002 to /bre1/oradata/sysaux01.dbf channel ch1: restoring datafile 00003 to /bre1/oradata/undotbs01.dbf channel ch1: restoring datafile 00004 to /bre1/oradata/users01.dbf channel ch1: restoring datafile 00005 to /bre1/oradata/test.dbf channel ch1: reading from backup piece /home/oracle/backup/03pggb7o_1_1.bak channel ch1: piece handle=/home/oracle/backup/03pggb7o_1_1.bak tag=TAG20140821T100336 channel ch1: restored backup piece 1 channel ch1: restore complete, elapsed time: 00:00:45 Finished restore at 21-AUG-2014 10:38:48 released channel: ch1 首先恢复归档日志: RUN { SET ARCHIVELOG DESTINATION TO '/home/oracle'; ESTORE ARCHIVELOG all; } 再进行恢复: [oracle@bre2 ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Thu Aug 21 11:16:06 2014 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> recover database using backup controlfile until cancel; ORA-00279: change 830841 generated at 08/21/2014 10:03:36 needed for thread 1 ORA-00289: suggestion : /arch1_42_851018056.dbf ORA-00280: change 830841 for thread 1 is in sequence #42 Specify log: { cancel Media recovery cancelled. SQL> alter database open resetlogs; Database altered. open 过程中可能会遇到ora-00392错误,这是因为从rac恢复到单实例的原因: 解决办法: SQL> alter database clear logfile group 2; 到此恢复成功.