行情北京 上海 广州 深圳 沈阳 济南 郑州 武汉 长沙 南京 西安 成都 昆明 杭州
e杂志下载
 首页 | 资讯 网刊 视频 评测  企业:服务器 网络 存储 通信 安全 技术开发 信息化-方案 | ITPUB IXPUB
 商务笔记本 台式机 投影机 打印扫描 办公产品 耗材 软件 学院 下载 驱动  家庭数字家电 家庭组网
 个人DIY硬件 | 手机 GSM CDMA 无线电 GPS| 数码影像 相机 摄像机 | 消费数码 MP3 | 论坛 | 经销商社区
 报价中心 三维图秀 产品评论 产品大全 使用手册 术语详解 厂商专区 二手市场 维修服务 疑难解答 IT搜索
 

Oracle RMAN物理备份技术详解

作者:IT168 周卫丰 发表日期:2007-02-10 04:33
  内容导航: 上一页 1 2 3 4 5 6 7 8 9 10 11 12 13 下一页
 
RMAN恢复(RECOVER)
两个重要的恢复命令:

RESTORE:按照RMAN存储库的条目从备份文件恢复需要的文件。
RECOVER:使用数据文件和REDO文件进行完全的或者时间点的数据库媒体恢复。

RMAN恢复概要:

1、 首先要确定需要恢复哪些文件,控制文件、参数文件、归档日志文件和数据文件。

2、 选择正确的恢复方式。例如恢复一个单独的表空间或者数据文件,可以在数据库OPEN状态下把需要恢复的表空间或者数据文件OFFLINE,如果需要恢复所有的数据文件,必须关闭数据库然后在数据库MOUNT状态执行RESTORE。

3、 用RESTORE命令从备份恢复丢失的数据库文件的时候,可以把备份数据库文件恢复原始位置或者恢复到一个新的位置(例如原始磁盘损坏),例如我们想把控制文件恢复到新的位置,则必须要修改SPFILE;如果想把数据文件或者REDO文件恢复到其他位置,则必须修改CONTROLFILE。

4、 如果从备份中恢复了数据文件,必须执行RECOVER来执行数据库恢复。

恢复的最终结果就是要让我们可以再次使用数据库。例如丢失了控制文件而从备份执行恢复我们需要RESTART数据库;如果恢复了个别的表空间或者数据文件我们最终需要把恢复的表空间或者数据文件ONLINE。

总之,执行数据库恢复是要根据具体情况来决定我们到底概要执行什么样的操作的。例如仅仅恢复了SPFILE的话,我们不必执行媒体恢复RECOVER操作。如果我们丢失了部分CONTROLFILE,数据库会自动SHUTDOWN,我们可以从有效的CONTROLFILE拷贝覆盖已经损坏的CONTROLFILE,或者修改参数文件中的CONTROL_FILES参数,把已经损坏的控制文件去掉,这样我么就可以再次启动我们的数据库了;如果我们从备份中恢复了CONTROLFILE,尽管我们没有恢复数据文件,我们也必须要执行媒体恢复并且用带有OPEN RESETLOGS参数的方式来OPEN数据库。

数据库的状态和数据文件的位置决定了什么时候该执行恢复,该如何恢复,我们可以按照如下方式来检查是否有数据库文件需要执行媒体恢复。

检查数据库的状态:
SQL>SELECT STATUS FROM V$INSTANCE;
如果数据库处在OPEN状态,我们可以检查哪些数据库文件处于需要恢的的状态:
SQL>COL FILE# FORMAT 999 SQL>COL STATUS FORMAT A7 SQL>COL ERROR FORMAT A10 SQL>COL TABLESPACE_NAME FORMAT A10 SQL>COL NAME FORMAT A30 SQL>SELECT FILE#, STATUS, ERROR, RECOVER, TABLESPACE_NAME, NAME SQL>FROM V$DATAFILE_HEADER SQL>WHERE RECOVER = 'YES' OR (RECOVER IS NULL AND ERROR IS NOT NULL);
如果ERROR列不为NULL或者RECOVER列不等于’NO’,检查硬件和操作系统问题;
如果不是以上问题则需要对结果数据进行RESTORE。

如果ERROR列为NULL并且RECOVER列为’YES’,则该文件可以进行恢复。如果我们是做全库恢复,我们只要把结果集中的数据文件进行恢复就可以,如果我们想做基于时间点的恢复,则必须恢复所有的数据文件或者Flashback Database。

我们可以按照以下SQL来查询需要恢复的数据文件和错误:
SELECT FILE#, ERROR, ONLINE, ONLINE_STATUS, CHANGE#, TIME FROM V$RECOVER_FILE;
我们可以关联V$DATAFILE and V$TABLESPACE两个视图来得到表空间和数据文件的名字:
SELECT r.FILE# AS df#, d.NAME AS df_name, t.NAME AS tbsp_name, d.STATUS, r.ERROR, r.CHANGE#, r.TIME FROM V$RECOVER_FILE r, V$DATAFILE d, V$TABLESPACE t WHERE t.TS# = d.TS# AND d.FILE# = r.FILE#;
预恢复操作

RESTORE命令支持预操作。我们在执行RESTORE操作之前可以执行RESTORE…PREVIEW来检验一下备份文件是否有效,如下给出几个示例:
RESTORE DATABASE PREVIEW; RESTORE TABLESPACE users PREVIEW; RESTORE DATAFILE 3 PREVIEW; RESTORE ARCHIVELOG FROM LOGSEQ 200 PREVIEW; RESTORE ARCHIVELOG FROM TIME 'SYSDATE-7' PREVIEW; RESTORE ARCHIVELOG FROM SCN 234546 PREVIEW;
我们可以利用CHANGE命令来修改给分集的状态,例如:
RMAN> restore datafile 5 preview; 启动 restore 于 19-1月 -07 使用通道 ORA_DISK_1 备份集列表 =================== BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间 ------- ---- -- ---------- ----------- ------------ ---------- 92 Full 9.09M DISK 00:00:01 19-1月 -07 BP 关键字: 87 状态: AVAILABLE 已压缩: NO 标记: TAG20070119T100745 段名:D:\TEST.BAK 备份集 92 中的数据文件列表 文件 LV 类型 Ckp SCN Ckp 时间 名称 ---- -- ---- ---------- ---------- ---- 5 Full 963842 19-1月 -07 E:\ORACLE\ORADATA\ROME\TEST.DBF 在资料档案库中未找到 SCN 963842 后生成的归档日志 介质恢复启动 SCN 是 963842 恢复范围必须超出 SCN 963842 才能清除数据文件模糊性 完成 restore 于 19-1月 -07 RMAN> change backupset 92 unavailable; 不能使用更改的备份段 备份段 handle=D:\TEST.BAK recid=87 stamp=612266866 1 对象已更改为 UNAVAILABLE 状态 RMAN> restore datafile 5 preview; 启动 restore 于 19-1月 -07 使用通道 ORA_DISK_1 备份集列表 =================== BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间 ------- ---- -- ---------- ----------- ------------ ---------- 90 Full 257.89M DISK 00:00:31 16-1月 -07 BP 关键字: 85 状态: AVAILABLE 已压缩: NO 标记: TAG20070116T093035 段名:D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ROME\BACKUPSET\2007_01_16\O1_M F_NNNDF_TAG20070116T093035_2TRBP0F5_.BKP 备份集 90 中的数据文件列表 文件 LV 类型 Ckp SCN Ckp 时间 名称 ---- -- ---- ---------- ---------- ---- 5 Full 833817 16-1月 -07 E:\ORACLE\ORADATA\ROME\TEST.DBF 已存档的日志副本列表 关键字 Thrd Seq S 短时间 名称 ------- ---- ------- - ---------- ---- 28 1 17 A 15-1月 -07 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\R OME\ARCHIVELOG\2007_01_17\O1_MF_1_17_2TWBZJX9_.ARC 29 1 18 A 17-1月 -07 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\R OME\ARCHIVELOG\2007_01_18\O1_MF_1_18_2TY5T8F5_.ARC 30 1 19 A 18-1月 -07 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\R OME\ARCHIVELOG\2007_01_18\O1_MF_1_19_2TY5XNL2_.ARC 31 1 20 A 18-1月 -07 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\R OME\ARCHIVELOG\2007_01_18\O1_MF_1_20_2TY61NDP_.ARC 32 1 21 A 18-1月 -07 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\R OME\ARCHIVELOG\2007_01_18\O1_MF_1_21_2TY62DNJ_.ARC 33 1 22 A 18-1月 -07 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\R OME\ARCHIVELOG\2007_01_18\O1_MF_1_22_2TZ4C43X_.ARC 介质恢复启动 SCN 是 833817 恢复范围必须超出 SCN 833817 才能清除数据文件模糊性 完成 restore 于 19-1月 -07 RMAN> restore datafile 5 preview; 启动 restore 于 19-1月 -07 使用通道 ORA_DISK_1 备份集列表 =================== BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间 ------- ---- -- ---------- ----------- ------------ ---------- 92 Full 9.09M DISK 00:00:01 19-1月 -07 BP 关键字: 87 状态: AVAILABLE 已压缩: NO 标记: TAG20070119T100745 段名:D:\TEST.BAK 备份集 92 中的数据文件列表 文件 LV 类型 Ckp SCN Ckp 时间 名称 ---- -- ---- ---------- ---------- ---- 5 Full 963842 19-1月 -07 E:\ORACLE\ORADATA\ROME\TEST.DBF 在资料档案库中未找到 SCN 963842 后生成的归档日志 介质恢复启动 SCN 是 963842 恢复范围必须超出 SCN 963842 才能清除数据文件模糊性 完成 restore 于 19-1月 -07
我们可以用RESTORE... PREVIEW SUMMARY命令来预览恢复的汇总信息。
RESTORE DATABASE PREVIEW SUMMARY; RESTORE TABLESPACE users PREVIEW SUMMARY; RESTORE DATAFILE 3 PREVIEW SUMMARY; RESTORE ARCHIVELOG FROM LOGSEQ 200 PREVIEW SUMMARY; RESTORE ARCHIVELOG FROM TIME 'SYSDATE-7' PREVIEW SUMMARY; RESTORE ARCHIVELOG FROM SCN 234546 PREVIEW SUMMARY; RMAN> restore datafile 5 preview summary; 启动 restore 于 19-1月 -07 使用通道 ORA_DISK_1 备份列表 =============== 关键字 TY LV S 设备类型 完成时间 段数 副本数 压缩标记 ------- -- -- - ----------- ---------- ------- ------- ---------- --- 92 B F A DISK 19-1月 -07 1 1 NO TAG20070119T10 0745 在资料档案库中未找到 SCN 963842 后生成的归档日志 介质恢复启动 SCN 是 963842 恢复范围必须超出 SCN 963842 才能清除数据文件模糊性 完成 restore 于 19-1月 -07 RMAN> change backupset 92 unavailable; 不能使用更改的备份段 备份段 handle=D:\TEST.BAK recid=87 stamp=612266866 1 对象已更改为 UNAVAILABLE 状态 RMAN> restore datafile 5 preview summary; 启动 restore 于 19-1月 -07 使用通道 ORA_DISK_1 备份列表 =============== 关键字 TY LV S 设备类型 完成时间 段数 副本数 压缩标记 ------- -- -- - ----------- ---------- ------- ------- ---------- --- 90 B F A DISK 16-1月 -07 1 1 NO TAG20070116T09 3035 已存档的日志副本列表 关键字 Thrd Seq S 短时间 名称 ------- ---- ------- - ---------- ---- 28 1 17 A 15-1月 -07 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\R OME\ARCHIVELOG\2007_01_17\O1_MF_1_17_2TWBZJX9_.ARC 29 1 18 A 17-1月 -07 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\R OME\ARCHIVELOG\2007_01_18\O1_MF_1_18_2TY5T8F5_.ARC 30 1 19 A 18-1月 -07 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\R OME\ARCHIVELOG\2007_01_18\O1_MF_1_19_2TY5XNL2_.ARC 31 1 20 A 18-1月 -07 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\R OME\ARCHIVELOG\2007_01_18\O1_MF_1_20_2TY61NDP_.ARC 32 1 21 A 18-1月 -07 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\R OME\ARCHIVELOG\2007_01_18\O1_MF_1_21_2TY62DNJ_.ARC 33 1 22 A 18-1月 -07 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\R OME\ARCHIVELOG\2007_01_18\O1_MF_1_22_2TZ4C43X_.ARC 介质恢复启动 SCN 是 833817 恢复范围必须超出 SCN 833817 才能清除数据文件模糊性 完成 restore 于 19-1月 -07
RESTORE ... VALIDATE 和 VALIDATE BACKUPSET 一样可以检测备份文件有效性,是否可以进行恢复。
RESTORE ... VALIDATE #tests whether RMAN can restore a specific object from a backup. RMAN chooses which backups to use. VALIDATE BACKUPSET #tests the validity of a backup set that you specify RESTORE CONTROLFILE VALIDATE; RESTORE TABLESPACE SYSTEM VALIDATE; RESTORE ARCHIVELOG ALL VALIDATE; VALIDATE BACKUPSET 1121,1122;

上一页 1 2 3 4 5 6 7 8 9 10 11 12 13 下一页
【内容导航】  
第1页 第2页
第3页 第4页
第5页 第6页
第8页
第9页 第10页
第11页 第12页
第13页
【相关文章】  
Oracle 9i轻松取得建.. 在Oracle里加快SQL执..
使用Oracle9i全索引扫.. 用.NET调用oracle存..
Oracle大文本在ASP中.. Oracle绑定变量测试
获得应用程序所执行的SQL语句 利用存储过程参数控制JOB的..
查找低劣的SQL方法 RMAN从无到有小测试
下一篇:Oracle ERP数据转换论
©版权所有。未经许可,不得转载。 【责任编辑:赵建凯
 
  网友评论