C:/Documents and Settings/Administrator>rman target /
恢复管理器: Release 11.1.0.6.0 - Production on 星期四 6月 30 16:44:30 2011
Copyright (c) 1982, 2007, Oracle. All rights reserved.
连接到目标数据库: ORCL2 (DBID=735415714)
测试数据文件恢复,我们使用ORCL2库
首先我们查看一下在该库上面有哪些数据文件
[c-sharp] view plaincopyprint?
- RMAN> report schema;
- db_unique_name 为 ORCL2 的数据库的数据库方案报表
- 永久数据文件列表
- ===========================
- 文件大小 (MB) 表空间 回退段数据文件名称
- ---- -------- -------------------- ------- ------------------------
- 1 700 SYSTEM *** C:/APP/ADMINISTRATOR/ORADATA/ORCL2/SYSTEM01.DBF
- 2 698 SYSAUX *** C:/APP/ADMINISTRATOR/ORADATA/ORCL2/SYSAUX01.DBF
- 3 75 UNDOTBS1 *** C:/APP/ADMINISTRATOR/ORADATA/ORCL2/UNDOTBS01.DBF
- 4 5 USERS *** C:/APP/ADMINISTRATOR/ORADATA/ORCL2/USERS01.DBF
- 临时文件列表
- =======================
- 文件大小 (MB) 表空间 最大大小 (MB) 临时文件名称
- ---- -------- -------------------- ----------- --------------------
- 1 27 TEMP 32767 C:/APP/ADMINISTRATOR/ORADATA/ORCL2/TEMP01.DBF
然后我们将UNDOTBS1这个数据文件进行删除
[c-sharp] view plaincopyprint?
- RMAN> startup
- 已连接到目标数据库 (未启动)
- Oracle 实例已启动
- 数据库已装载
- DBGANY: Mismatched message length! [16:46:22.917] (krmiduem)
- DBGANY: Mismatched message length! [16:46:22.917] (krmiduem)
- RMAN-00571: ===========================================================
- RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
- RMAN-00571: ===========================================================
- RMAN-00600: internal error, arguments [3045] [] [] [] []
- RMAN-00571: ===========================================================
- RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
- RMAN-00571: ===========================================================
- RMAN-03002: startup 命令 (在 06/30/2011 16:46:22 上) 失败
- ORA-01157: 无法标识/锁定数据文件 3 - 请参阅 DBWR 跟踪文件
- ORA-01110: 数据文件 3: 'C:/APP/ADMINISTRATOR/ORADATA/ORCL2/UNDOTBS01.DBF'
通过上面的report schema我们可以看到删除的数据文件undotbs1的文件号是3,我们先让这个数据文件置为offline
[c-sharp] view plaincopyprint?
- C:/Documents and Settings/Administrator>rman target /
- 恢复管理器: Release 11.1.0.6.0 - Production on 星期四 6月 30 16:46:39 2011
- Copyright (c) 1982, 2007, Oracle. All rights reserved.
- 已连接到目标数据库: ORCL2 (DBID=735415714, 未打开)
- RMAN> sql "alter database datafile 3 offline";
- 使用目标数据库控制文件替代恢复目录
- sql 语句: alter database datafile 3 offline
然后再恢复该数据文件
[c-sharp] view plaincopyprint?
- RMAN> restore datafile 3;
- 启动 restore 于 30-6月 -11
- 分配的通道: ORA_DISK_1
- 通道 ORA_DISK_1: SID=155 设备类型=DISK
- 通道 ORA_DISK_1: 正在开始还原数据文件备份集
- 通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
- 通道 ORA_DISK_1: 将数据文件 00003 还原到 C:/APP/ADMINISTRATOR/ORADATA/ORCL2/UNDO
- TBS01.DBF
- 通道 ORA_DISK_1: 正在读取备份片段 C:/APP/ADMINISTRATOR/FLASH_RECOVERY_AREA/ORCL2
- /BACKUPSET/2011_06_30/O1_MF_NNNDF_TAG20110630T163531_70RFC07T_.BKP
- 通道 ORA_DISK_1: 段句柄 = C:/APP/ADMINISTRATOR/FLASH_RECOVERY_AREA/ORCL2/BACKUPS
- ET/2011_06_30/O1_MF_NNNDF_TAG20110630T163531_70RFC07T_.BKP 标记 = TAG20110630T16
- 3531
- 通道 ORA_DISK_1: 已还原备份片段 1
- 通道 ORA_DISK_1: 还原完成, 用时: 00:00:03
- 完成 restore 于 30-6月 -11
然后进行recover
[c-sharp] view plaincopyprint?
- RMAN> recover datafile 3;
- 启动 recover 于 30-6月 -11
- 使用通道 ORA_DISK_1
- 正在开始介质的恢复
- 介质恢复完成, 用时: 00:00:00
- 完成 recover 于 30-6月 -11
那么restore和recover有什么区别呢?
restore 是还原物理文件
recover 是用日志恢复到一致
用了RMAN备份后就必须要用restore还原,然后才用recover恢复
restore——还原,与backup相对,从备份读出恢复备份的数据。
recover——恢复,把restore回来的数据经过一番处理变成正常数据。
如果restore,而不recover的话,数据库是打不开的!因为各文件都不同步
然后将恢复好的数据文件置为online
[c-sharp] view plaincopyprint?
- RMAN> sql "alter database datafile 3 online";
- sql 语句: alter database datafile 3 online
启动即可
[c-sharp] view plaincopyprint?
- RMAN> startup
- 数据库已经启动
- 数据库已打开