本文主要针对备份和恢复数据文件,具体rman知识点查阅我的另一篇文章:http://blog.csdn.net/perfect_db/article/details/8765022
首先看看数据文件的情况:
SQL> selectfile_name,file_id,tablespace_name from dba_data_files;
FILE_NAME FILE_ID TABLESPACE_NAME
---------------------------------------------------------------------- ------------------------------
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF 4 USERS
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF 3 SYSAUX
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF 2 UNDOTBS1
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF 1 SYSTEM
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF 5 EXAMPLE
E:\RM_TAB.DBF 6 RM_TABLESPACE
E:\RMAN.DBF 7 RMAN_TAB
已选择7行。
C:\Documents andSettings\Administrator>rman target /
恢复管理器: Release 11.2.0.1.0 - Production on 星期二 9月 17 15:54:092013
Copyright (c) 1982, 2009, Oracle and/or itsaffiliates. All rights reserved.
连接到目标数据库: ORCL (DBID=1318810635)
查看数据库已有备份情况:
RMAN> list backup;
备份集列表
===================
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------------------- ----------
145 Full 1.60G DISK 00:03:35 02-9月 -13
BP 关键字: 144 状态:AVAILABLE 已压缩: NO 标记:TAG20130902T160350
段名:D:\BACKUP\FULL_ORCL_825091431_171.BAK
备份集 145 中的数据文件列表
文件 LV 类型 CkpSCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
1 Full 33823078237 02-9月 -13E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
2 Full 33823078237 02-9月 -13E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
3 Full 33823078237 02-9月 -13E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
4 Full 33823078237 02-9月 -13E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
5 Full 33823078237 02-9月 -13E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF
6 Full 33823078237 02-9月 -13E:\RM_TAB.DBF
7 Full 33823078237 02-9月 -13E:\RMAN.DBF
BS 关键字 大小 设备类型占用时间 完成时间
------- ---------- ----------- ----------------------
150 698.25M DISK 00:01:40 02-9月 -13
BP 关键字: 149 状态:AVAILABLE 已压缩: NO 标记:TAG20130902T165210
段名:D:\BACKUP\ARCH_ORCL_20130902_176.BAK
备份集 150 中的已存档日志列表
线程序列 低 SCN 时间下限 下一个 SCN 下一次
---- ------- ---------- ---------- ---------- ---------
1 42 33822522080 25-8月 -1333822546427 26-8月 -13
1 43 33822546427 26-8月 -1333822572086 26-8月 -13
1 44 33822572086 26-8月 -1333822577968 26-8月 -13
1 45 33822577968 26-8月 -1333822597826 27-8月 -13
1 46 33822597826 27-8月 -1333822632804 27-8月 -13
1 47 33822632804 27-8月 -1333822708919 27-8月 -13
1 48 33822708919 27-8月 -1333822741205 27-8月 -13
1 49 33822741205 27-8月 -1333822776061 28-8月 -13
1 50 33822776061 28-8月 -1333822806367 28-8月 -13
1 51 33822806367 28-8月 -13 3382284917730-8月 -13
1 52 33822849177 30-8月 -1333822855569 30-8月 -13
1 53 33822855569 30-8月 -1333822890493 30-8月 -13
1 54 33822890493 30-8月 -1333822914392 31-8月 -13
1 55 33822914392 31-8月 -1333822923253 31-8月 -13
1 56 33822923253 31-8月 -1333822946575 01-9月 -13
1 57 33822946575 01-9月 -1333822953742 01-9月 -13
1 58 33822953742 01-9月 -1333822956954 01-9月 -13
1 59 33822956954 01-9月 -1333822972848 01-9月 -13
1 60 33822972848 01-9月 -1333823003071 01-9月 -13
1 61 33823003071 01-9月 -1333823038838 02-9月 -13
1 62 33823038838 02-9月 -1333823060805 02-9月 -13
1 63 33823060805 02-9月 -1333823080230 02-9月 -13
1 64 33823080230 02-9月 -13 3382308026302-9月 -13
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------------------- ----------
154 Full 96.00K DISK 00:00:01 17-9月 -13
BP 关键字: 153 状态:AVAILABLE 已压缩: NO 标记:TAG20130917T160606
段名:D:\BACKUP\ORCL_180.BAK
备份集 154 中的数据文件列表
文件 LV 类型 CkpSCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
7 Full 33823344873 17-9月 -13E:\RMAN.DBF
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------------------- ----------
155 Full 9.55M DISK 00:00:03 17-9月 -13
BP 关键字: 154 状态:AVAILABLE 已压缩: NO 标记:TAG20130917T160610
段名:F:\RMANBACKUP\CONTROLFILE\C-1318810635-20130917-00
包含的 SPFILE: 修改时间: 17-9月 -13
包括的控制文件: CkpSCN: 33823344928 Ckp 时间: 17-9月 -13
RMAN> backup datafile 7;
启动 backup 于 17-9月 -13
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00007 名称=E:\RMAN.DBF
通道 ORA_DISK_1: 正在启动段 1 于 17-9月 -13
通道 ORA_DISK_1: 已完成段 1 于 17-9月 -13
段句柄=D:\BACKUP\ORCL_182.BAK 标记=TAG20130917T161421注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:01
完成 backup 于 17-9月 -13
启动 Control File and SPFILE Autobackup 于 17-9月 -13
段 handle=F:\RMANBACKUP\CONTROLFILE\C-1318810635-20130917-01comment=NONE
完成 Control File and SPFILE Autobackup 于 17-9月 -13
RMAN> report obsolete;
RMAN 保留策略将应用于该命令
将 RMAN 保留策略设置为冗余 1
已废弃的备份和副本报表
类型 关键字 完成时间 文件名/句柄
-------------------- ------------------------ --------------------
备份集 154 17-9月 -13
备份片段 153 17-9月 -13 D:\BACKUP\ORCL_180.BAK
备份集 155 17-9月 -13
备份片段 154 17-9月 -13 F:\RMANBACKUP\CONTROLFILE\C-1318810635-20130917-00
说明之前与该次相同备份的备份集失效,包括一个自动备份的控制文件;而通过list backup发现多了下列的备份内容:
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------------------- ----------
156 Full 96.00K DISK 00:00:01 17-9月 -13
BP 关键字: 155 状态:AVAILABLE 已压缩: NO 标记:TAG20130917T161421
段名:D:\BACKUP\ORCL_182.BAK
备份集 156 中的数据文件列表
文件 LV 类型 CkpSCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
7 Full 33823346326 17-9月 -13E:\RMAN.DBF
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------------------- ----------
157 Full 9.55M DISK 00:00:04 17-9月 -13
BP 关键字: 156 状态:AVAILABLE 已压缩: NO 标记:TAG20130917T161422
段名:F:\RMANBACKUP\CONTROLFILE\C-1318810635-20130917-01
包含的 SPFILE: 修改时间: 17-9月 -13
包括的控制文件: CkpSCN: 33823346333 Ckp 时间: 17-9月 -13
顺便查看一下rman的配置情况
RMAN> show all;
db_unique_name 为 PRIMARY 的数据库的 RMAN 配置参数为:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1;# default
CONFIGURE BACKUP OPTIMIZATION OFF; #default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; #default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FORDEVICE TYPE DISK TO 'f:\rmanbackup\controlfile\%F';
CONFIGURE DEVICE TYPE DISK PARALLELISM 1BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICETYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FORDEVICE TYPE DISK TO 1; # default
CONFIGURE CHANNEL DEVICE TYPE DISKFORMAT 'd:\backup\%d_%s.bak';
CONFIGURE MAXSETSIZE TO UNLIMITED; #default
CONFIGURE ENCRYPTION FOR DATABASE OFF; #default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; #default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' ASOF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TONONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO'E:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\SNCFORCL.ORA'; # default
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
手动把文件E:\RMAN.DBF删除;再打开数据库
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 836976640 bytes
Fixed Size 1377812 bytes
Variable Size 683674092 bytes
Database Buffers 146800640 bytes
Redo Buffers 5124096 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 7 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 7: 'E:\RMAN.DBF'
RMAN> restore datafile 7;
RMAN-06900: 警告: 无法生成V$RMAN_STATUS 或 V$RMAN_OUTPUT 行
RMAN-06901: 警告: 禁止更新V$RMAN_STATUS 和 V$RMAN_OUTPUT 行
来自目标数据库的 ORACLE 错误:
ORA-03113: 通信通道的文件结尾
进程 ID: 6068
会话 ID: 8 序列号: 5
启动 restore 于 17-9月 -13
RMAN-00571:===========================================================
RMAN-00569: =============== ERROR MESSAGESTACK FOLLOWS ===============
RMAN-00571:===========================================================
说明刚才在sql窗口对数据库关闭了,此通道不能用,就退出重新登录
RMAN> exit
恢复管理器完成。
C:\Documents andSettings\Administrator>rman target /
恢复管理器: Release 11.2.0.1.0 - Production on 星期二 9月 17 16:28:142013
Copyright (c) 1982, 2009, Oracle and/or itsaffiliates. All rights reserved.
已连接到目标数据库: ORCL (DBID=1318810635, 未打开)
RMAN> restore datafile 7;
启动 restore 于 17-9月 -13
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=10 设备类型=DISK
通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00007 还原到 E:\RMAN.DBF
通道 ORA_DISK_1: 正在读取备份片段 D:\BACKUP\ORCL_182.BAK
通道 ORA_DISK_1: 段句柄 = D:\BACKUP\ORCL_182.BAK 标记 = TAG20130917T161421
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:00:04
完成 restore 于 17-9月 -13
SQL> startup
ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它
SQL> selectfile_name,file_id,tablespace_name from dba_data_files;
select file_name,file_id,tablespace_namefrom dba_data_files
*
第 1 行出现错误:
ORA-01219: 数据库未打开: 仅允许在固定表/视图中查询
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01113: 文件 7 需要介质恢复
ORA-01110: 数据文件 7: 'E:\RMAN.DBF'
SQL> recover datafile 7;
完成介质恢复。
SQL> alter database open;
数据库已更改。
SQL> selectfile_name,file_id,tablespace_name from dba_data_files;
FILE_NAME FILE_ID TABLESPACE_NAME
---------------------------------------------------------------------- ------------------------------
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF 4 USERS
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF 3 SYSAUX
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF 2 UNDOTBS1
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF 1 SYSTEM
E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF 5 EXAMPLE
E:\RM_TAB.DBF 6 RM_TABLESPACE
E:\RMAN.DBF 7 RMAN_TAB
已选择7行。
OK说明已经恢复;这里有个问题,restore是从rman里执行,而recover是从sql*plus窗口中执行的;
下面演示一下完全从sql窗口中执行和完全从rman 中执行;
sql*plus窗口:
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
手动把文件E:\RMAN.DBF删除;再打开数据库
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 836976640 bytes
Fixed Size 1377812 bytes
Variable Size 683674092 bytes
Database Buffers 146800640 bytes
Redo Buffers 5124096 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 7 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 7: 'E:\RMAN.DBF'
看来sql*plus窗口下不能使用restore命令
SQL> restore datafile 7;
SP2-0734: 未知的命令开头 "restoreda..." - 忽略了剩余的行。
rman 窗口
RMAN> restore datafile 7;
启动 restore 于 17-9月 -13
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=10 设备类型=DISK
通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00007 还原到 E:\RMAN.DBF
通道 ORA_DISK_1: 正在读取备份片段 D:\BACKUP\ORCL_182.BAK
通道 ORA_DISK_1: 段句柄 = D:\BACKUP\ORCL_182.BAK 标记 =TAG20130917T161421
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:00:03
完成 restore 于 17-9月 -13
RMAN> recover datafile 7;
启动 recover 于 17-9月 -13
使用通道 ORA_DISK_1
正在开始介质的恢复
线程 1 序列 88 的归档日志已作为文件 F:\FLASH_RECOVER_AREA\ORCL\ARCHIVELOG\00010000000088823188844.ARC 存在于磁盘上
线程 1 序列 89 的归档日志已作为文件 F:\FLASH_RECOVER_AREA\ORCL\ARCHIVELOG\00010000000089823188844.ARC 存在于磁盘上
线程 1 序列 90 的归档日志已作为文件 F:\FLASH_RECOVER_AREA\ORCL\ARCHIVELOG\00010000000090823188844.ARC 存在于磁盘上
线程 1 序列 91 的归档日志已作为文件 F:\FLASH_RECOVER_AREA\ORCL\ARCHIVELOG\00010000000091823188844.ARC 存在于磁盘上
归档日志文件名=F:\FLASH_RECOVER_AREA\ORCL\ARCHIVELOG\00010000000088823188844.ARC 线程=1 序列=88
归档日志文件名=F:\FLASH_RECOVER_AREA\ORCL\ARCHIVELOG\00010000000089823188844.ARC 线程=1 序列=89
介质恢复完成, 用时: 00:00:08
完成 recover 于 17-9月 -13
看来rman窗口操作很清晰,很直观,能够看到从哪些归档文件中恢复;所以既然备份用的是rman,那么恢复也全部用rman比较好(restore只能在rman下操作,recover 还可以在sql*plus下操作,我想读取的应该是控制文件中的信息,如果用恢复目录不知道能用不?有待验证);
-----------------------------------------------------------------------------------------------------------------------
博文所有内容均属原创,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
Blog: http://blog.csdn.net/perfect_db
Email: p[email protected]
QQ: 787266309