实验环境:
一、首先进行全库数据备份:
在非归档模式下,rman备份需要在mount模式下进行
SQL> select status from v$instance; STATUS ------------ OPEN SQL> shutdown immediate; 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup mount; ORACLE 例程已经启动。 Total System Global Area 535662592 bytes Fixed Size 1375792 bytes Variable Size 327156176 bytes Database Buffers 201326592 bytes Redo Buffers 5804032 bytes 数据库装载完毕。 SQL> select status from v$instance; STATUS ------------ MOUNTED
登录rman,进行数据库全库备份:
恢复管理器: Release 11.2.0.1.0 - Production on 星期一 9月 21 12:13:44 2015 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. 已连接到目标数据库: ORCL (DBID=1362531435, 未打开) RMAN> backup database; 启动 backup 于 21-9月 -15 使用目标数据库控制文件替代恢复目录 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=10 设备类型=DISK 通道 ORA_DISK_1: 正在启动全部数据文件备份集 通道 ORA_DISK_1: 正在指定备份集内的数据文件 输入数据文件: 文件号=00006 名称=D:\APP\FX\ORADATA\ORCL\UNDOTBS02.DBF 输入数据文件: 文件号=00002 名称=D:\APP\FX\ORADATA\ORCL\SYSAUX01.DBF 输入数据文件: 文件号=00001 名称=D:\APP\FX\ORADATA\ORCL\SYSTEM01.DBF 输入数据文件: 文件号=00003 名称=D:\APP\FX\ORADATA\ORCL\UNDOTBS01.DBF 输入数据文件: 文件号=00005 名称=D:\APP\FX\ORADATA\ORCL\EXAMPLE01.DBF 输入数据文件: 文件号=00009 名称=D:\APP\FX\ORADATA\ORCL\USERS06.DBF 输入数据文件: 文件号=00008 名称=D:\APP\FX\ORADATA\ORCL\USERS04.DBF 输入数据文件: 文件号=00010 名称=D:\APP\FX\ORADATA\ORCL\TEST1.DBF 输入数据文件: 文件号=00011 名称=D:\APP\FX\ORADATA\ORCL\TEST2.DBF 输入数据文件: 文件号=00012 名称=D:\APP\FX\ORADATA\ORCL\TEST3.DBF 输入数据文件: 文件号=00013 名称=D:\APP\FX\ORADATA\ORCL\TEST4.DBF 输入数据文件: 文件号=00004 名称=D:\APP\FX\ORADATA\ORCL\USERS01.DBF 输入数据文件: 文件号=00007 名称=D:\APP\FX\ORADATA\ORCL\USERS02.DBF 输入数据文件: 文件号=00014 名称=D:\APP\FX\ORADATA\ORCL\READONLY.DBF 通道 ORA_DISK_1: 正在启动段 1 于 21-9月 -15 通道 ORA_DISK_1: 已完成段 1 于 21-9月 -15 段句柄=D:\APP\FX\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2015_09_21\O1_MF_NNNDF_TAG20150921T121354_BZZ106LK_.BKP 标记=TAG2015 0921T121354 注释=NONE 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:35 通道 ORA_DISK_1: 正在启动全部数据文件备份集 通道 ORA_DISK_1: 正在指定备份集内的数据文件 备份集内包括当前控制文件 备份集内包括当前的 SPFILE 通道 ORA_DISK_1: 正在启动段 1 于 21-9月 -15 通道 ORA_DISK_1: 已完成段 1 于 21-9月 -15 段句柄=D:\APP\FX\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2015_09_21\O1_MF_NCSNF_TAG20150921T121354_BZZ136TV_.BKP 标记=TAG2015 0921T121354 注释=NONE 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:01 完成 backup 于 21-9月 -15
备份完成
二、删除某个数据文件,数据库无法打开
SQL> startup; ORACLE 例程已经启动。 Total System Global Area 535662592 bytes Fixed Size 1375792 bytes Variable Size 327156176 bytes Database Buffers 201326592 bytes Redo Buffers 5804032 bytes 数据库装载完毕。 ORA-01157: 无法标识/锁定数据文件 13 - 请参阅 DBWR 跟踪文件 ORA-01110: 数据文件 13: 'D:\APP\FX\ORADATA\ORCL\TEST4.DBF' SQL> select status from v$instance; STATUS ------------ MOUNTED
三、通过Rman,根据备份恢复数据库
备份列表中最新的备份为全库备份,所以只需执行restore database。
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. 已连接到目标数据库: ORCL (DBID=1362531435, 未打开) RMAN> restore database; 启动 restore 于 21-9月 -15 使用目标数据库控制文件替代恢复目录 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=10 设备类型=DISK 正在略过数据文件 14; 已还原到文件 D:\APP\FX\ORADATA\ORCL\READONLY.DBF 正在略过数据文件 1; 已还原到文件 D:\APP\FX\ORADATA\ORCL\SYSTEM01.DBF 正在略过数据文件 2; 已还原到文件 D:\APP\FX\ORADATA\ORCL\SYSAUX01.DBF 正在略过数据文件 3; 已还原到文件 D:\APP\FX\ORADATA\ORCL\UNDOTBS01.DBF 正在略过数据文件 4; 已还原到文件 D:\APP\FX\ORADATA\ORCL\USERS01.DBF 正在略过数据文件 5; 已还原到文件 D:\APP\FX\ORADATA\ORCL\EXAMPLE01.DBF 正在略过数据文件 6; 已还原到文件 D:\APP\FX\ORADATA\ORCL\UNDOTBS02.DBF 正在略过数据文件 7; 已还原到文件 D:\APP\FX\ORADATA\ORCL\USERS02.DBF 正在略过数据文件 8; 已还原到文件 D:\APP\FX\ORADATA\ORCL\USERS04.DBF 正在略过数据文件 9; 已还原到文件 D:\APP\FX\ORADATA\ORCL\USERS06.DBF 正在略过数据文件 10; 已还原到文件 D:\APP\FX\ORADATA\ORCL\TEST1.DBF 正在略过数据文件 11; 已还原到文件 D:\APP\FX\ORADATA\ORCL\TEST2.DBF 正在略过数据文件 12; 已还原到文件 D:\APP\FX\ORADATA\ORCL\TEST3.DBF 通道 ORA_DISK_1: 正在开始还原数据文件备份集 通道 ORA_DISK_1: 正在指定从备份集还原的数据文件 通道 ORA_DISK_1: 将数据文件 00013 还原到 D:\APP\FX\ORADATA\ORCL\TEST4.DBF 通道 ORA_DISK_1: 正在读取备份片段 D:\APP\FX\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2015_09_21\O1_MF_NNNDF_TAG20150921T121354 _BZZ106LK_.BKP 通道 ORA_DISK_1: 段句柄 = D:\APP\FX\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2015_09_21\O1_MF_NNNDF_TAG20150921T121354_BZZ106L K_.BKP 标记 = TAG20150921T121354 通道 ORA_DISK_1: 已还原备份片段 1 通道 ORA_DISK_1: 还原完成, 用时: 00:00:07 完成 restore 于 21-9月 -15 RMAN> alter database open; 数据库已打开
四:创建表textdel,关闭数据库
SQL> create table testdel as select * from v$instance where rownum<2; 表已创建。 SQL> shutdown immediate; 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。
五:使用Rman进行增量备份
RMAN> backup incremental level 1 database; 启动 backup 于 21-9月 -15 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=10 设备类型=DISK 通道 ORA_DISK_1: 正在启动增量级别 1 数据文件备份集 通道 ORA_DISK_1: 正在指定备份集内的数据文件 输入数据文件: 文件号=00006 名称=D:\APP\FX\ORADATA\ORCL\UNDOTBS02.DBF 输入数据文件: 文件号=00002 名称=D:\APP\FX\ORADATA\ORCL\SYSAUX01.DBF 输入数据文件: 文件号=00001 名称=D:\APP\FX\ORADATA\ORCL\SYSTEM01.DBF 输入数据文件: 文件号=00003 名称=D:\APP\FX\ORADATA\ORCL\UNDOTBS01.DBF 输入数据文件: 文件号=00005 名称=D:\APP\FX\ORADATA\ORCL\EXAMPLE01.DBF 输入数据文件: 文件号=00009 名称=D:\APP\FX\ORADATA\ORCL\USERS06.DBF 输入数据文件: 文件号=00008 名称=D:\APP\FX\ORADATA\ORCL\USERS04.DBF 输入数据文件: 文件号=00010 名称=D:\APP\FX\ORADATA\ORCL\TEST1.DBF 输入数据文件: 文件号=00011 名称=D:\APP\FX\ORADATA\ORCL\TEST2.DBF 输入数据文件: 文件号=00012 名称=D:\APP\FX\ORADATA\ORCL\TEST3.DBF 输入数据文件: 文件号=00013 名称=D:\APP\FX\ORADATA\ORCL\TEST4.DBF 输入数据文件: 文件号=00004 名称=D:\APP\FX\ORADATA\ORCL\USERS01.DBF 输入数据文件: 文件号=00007 名称=D:\APP\FX\ORADATA\ORCL\USERS02.DBF 输入数据文件: 文件号=00014 名称=D:\APP\FX\ORADATA\ORCL\READONLY.DBF 略过数据文件 00014, 因为它未更改 通道 ORA_DISK_1: 正在启动段 1 于 21-9月 -15 通道 ORA_DISK_1: 已完成段 1 于 21-9月 -15 段句柄=D:\APP\FX\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2015_09_21\O1_MF_NNND1_TAG20150921T123914_BZZ2HQWB_.BKP 标记=TAG20 0921T123914 注释=NONE 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:15 通道 ORA_DISK_1: 正在启动增量级别 1 数据文件备份集 通道 ORA_DISK_1: 正在指定备份集内的数据文件 备份集内包括当前控制文件 备份集内包括当前的 SPFILE 通道 ORA_DISK_1: 正在启动段 1 于 21-9月 -15 通道 ORA_DISK_1: 已完成段 1 于 21-9月 -15 段句柄=D:\APP\FX\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2015_09_21\O1_MF_NCSN1_TAG20150921T123914_BZZ2L46T_.BKP 标记=TAG20 0921T123914 注释=NONE 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:01 完成 backup 于 21-9月 -15
六、删除某个数据文件,对数据库进行恢复,由于存在增量备份,所以在restore database之后,还要进行recover database;
RMAN> backup incremental level 1 database; 启动 backup 于 21-9月 -15 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=10 设备类型=DISK 通道 ORA_DISK_1: 正在启动增量级别 1 数据文件备份集 通道 ORA_DISK_1: 正在指定备份集内的数据文件 输入数据文件: 文件号=00006 名称=D:\APP\FX\ORADATA\ORCL\UNDOTBS02.DBF 输入数据文件: 文件号=00002 名称=D:\APP\FX\ORADATA\ORCL\SYSAUX01.DBF 输入数据文件: 文件号=00001 名称=D:\APP\FX\ORADATA\ORCL\SYSTEM01.DBF 输入数据文件: 文件号=00003 名称=D:\APP\FX\ORADATA\ORCL\UNDOTBS01.DBF 输入数据文件: 文件号=00005 名称=D:\APP\FX\ORADATA\ORCL\EXAMPLE01.DBF 输入数据文件: 文件号=00009 名称=D:\APP\FX\ORADATA\ORCL\USERS06.DBF 输入数据文件: 文件号=00008 名称=D:\APP\FX\ORADATA\ORCL\USERS04.DBF 输入数据文件: 文件号=00010 名称=D:\APP\FX\ORADATA\ORCL\TEST1.DBF 输入数据文件: 文件号=00011 名称=D:\APP\FX\ORADATA\ORCL\TEST2.DBF 输入数据文件: 文件号=00012 名称=D:\APP\FX\ORADATA\ORCL\TEST3.DBF 输入数据文件: 文件号=00013 名称=D:\APP\FX\ORADATA\ORCL\TEST4.DBF 输入数据文件: 文件号=00004 名称=D:\APP\FX\ORADATA\ORCL\USERS01.DBF 输入数据文件: 文件号=00007 名称=D:\APP\FX\ORADATA\ORCL\USERS02.DBF 输入数据文件: 文件号=00014 名称=D:\APP\FX\ORADATA\ORCL\READONLY.DBF 略过数据文件 00014, 因为它未更改 通道 ORA_DISK_1: 正在启动段 1 于 21-9月 -15 通道 ORA_DISK_1: 已完成段 1 于 21-9月 -15 段句柄=D:\APP\FX\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2015_09_21\O1_MF_NNND1_TAG20150921T123914_BZZ2HQWB_.BKP 标记=TAG20 0921T123914 注释=NONE 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:15 通道 ORA_DISK_1: 正在启动增量级别 1 数据文件备份集 通道 ORA_DISK_1: 正在指定备份集内的数据文件 备份集内包括当前控制文件 备份集内包括当前的 SPFILE 通道 ORA_DISK_1: 正在启动段 1 于 21-9月 -15 通道 ORA_DISK_1: 已完成段 1 于 21-9月 -15 段句柄=D:\APP\FX\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2015_09_21\O1_MF_NCSN1_TAG20150921T123914_BZZ2L46T_.BKP 标记=TAG20 0921T123914 注释=NONE 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:01 完成 backup 于 21-9月 -15
RMAN> recover database; 启动 recover 于 21-9月 -15 使用通道 ORA_DISK_1 数据文件14未被处理, 因为文件已脱机 通道 ORA_DISK_1: 正在开始还原增量数据文件备份集 通道 ORA_DISK_1: 正在指定从备份集还原的数据文件 数据文件 00001 的还原目标: D:\APP\FX\ORADATA\ORCL\SYSTEM01.DBF 数据文件 00002 的还原目标: D:\APP\FX\ORADATA\ORCL\SYSAUX01.DBF 数据文件 00003 的还原目标: D:\APP\FX\ORADATA\ORCL\UNDOTBS01.DBF 数据文件 00004 的还原目标: D:\APP\FX\ORADATA\ORCL\USERS01.DBF 数据文件 00005 的还原目标: D:\APP\FX\ORADATA\ORCL\EXAMPLE01.DBF 数据文件 00006 的还原目标: D:\APP\FX\ORADATA\ORCL\UNDOTBS02.DBF 数据文件 00007 的还原目标: D:\APP\FX\ORADATA\ORCL\USERS02.DBF 数据文件 00008 的还原目标: D:\APP\FX\ORADATA\ORCL\USERS04.DBF 数据文件 00009 的还原目标: D:\APP\FX\ORADATA\ORCL\USERS06.DBF 数据文件 00010 的还原目标: D:\APP\FX\ORADATA\ORCL\TEST1.DBF 数据文件 00011 的还原目标: D:\APP\FX\ORADATA\ORCL\TEST2.DBF 数据文件 00012 的还原目标: D:\APP\FX\ORADATA\ORCL\TEST3.DBF 数据文件 00013 的还原目标: D:\APP\FX\ORADATA\ORCL\TEST4.DBF 通道 ORA_DISK_1: 正在读取备份片段 D:\APP\FX\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2015_09_21\O1_MF_NNND1_TAG20150921T123914 _BZZ2HQWB_.BKP 通道 ORA_DISK_1: 段句柄 = D:\APP\FX\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2015_09_21\O1_MF_NNND1_TAG20150921T123914_BZZ2HQW B_.BKP 标记 = TAG20150921T123914 通道 ORA_DISK_1: 已还原备份片段 1 通道 ORA_DISK_1: 还原完成, 用时: 00:00:07 正在开始介质的恢复 介质恢复完成, 用时: 00:00:01 完成 recover 于 21-9月 -15
由于此种恢复方式为不完全恢复,不完全恢复后,原来的online redo log里面包含的是未做恢复前的数据,而这些数据对于恢复后的数据库不再有效,所以数据库会要求在Open之前先对online redo log的sequence置零。因此需要:
RMAN> alter database open resetlogs; 数据库已打开
至此,非归档模式下,数据库全库备份下的数据库恢复及增量备份下的数据库恢复操作结束。
_____________________________________________________________________________________________________________________