登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

飞哥的技术博客

世上无难事,只怕有心人!

 
 
 

日志

 
 
 
 

一步一步学RMAN第八篇 演练rman恢复 - 无名扫把 - CSDN博客  

2009-05-26 09:06:08|  分类: Oracle |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 一步一步学RMAN第八篇 演练rman恢复收藏

 

  首先注意:rman备份的时候并不会备份临时表空间的数据文件(想想也是,反正是临时的,备它干嘛),所以完全恢复之后,如果临时表空间的数据文件也丢失,需要手工重新创建临时表空间的数据文件。据消息灵通人士称,10G之后的版本会在恢复过程中自动创建临时表空间的数据文件,手头没有环境(11g都出了,俺还在学9i,落后啊。),未经尝试,有心的朋友如果落实该消息,也不妨通知俺一下:)

  数据库修复:是指利用备份的数据库文件来替换已经损坏的数据库文件或者将其恢复到一个新的位置。RMAN在进行修复操作时,会利用恢复目录(没有建立恢复目录的话就使用目标数据库的控制文件)来获取备份信息,并从中选择最合适的备份进行修复操作。选择备份时有两个原则(1、选择距离恢复目录时刻最近;2、优先选择镜像复制,其次才是备份集)

  再然后需要明白:我们在对目标数据库做任何形式的修复或者恢复之前,目标数据库必须处于加载状态,恢复指定数据文件时,也可以在打开状态下恢复(什么,控制文件丢了,进不了加载状态?黑黑,麻烦了,不过也并非完全无可救药,接着往下看吧)。

RMAN> SHUTDOWN IMMEDIATE;

  DELETE ARCHIVELOGS:表示RMAN将在完成恢复过程后自动删除那些在恢复过程中修复的归档日志文件。

  SKIP TABLESPACE:跳过指定表空间,比如临时表,当然临时表空间即使你不跳过它也不会恢复的。

  此处需要注意的一点是,如果你的数据库并非处于归档模式,那么必须使用ALTER DATABASE OPEN RESETLOGS来打开数据库,因为RMAN会认为在非归档模式下是一个不一致的备份,执行resetlogs之后,oracle将会把scn重新置为0。

RMAN> SHUTDOWN IMMEDIATE;

RMAN> SQL 'ALTER TABLESPACE jweb OFFLINE IMMEDIATE';

RMAN> RESTORE TABLESPACE jweb;

RMAN> RECOVER TABLESPACE jweb;

RMAN> SQL 'ALTER TABLESPACE jweb ONLINE';

事实上,恢复表空间实际就是恢复其所对应的数据文件(一个表空间可能对应多个数据文件),所以步骤与上相似。

RMAN> SHUTDOWN IMMEDIATE;

2、进行恢复操作,在恢复之前,如果需要被恢复的表空间未处于脱机状态,需要通过alter tablespace ... Offline语句将其置为脱机,操作数据文件时可以直接指定数据文件,也可以以数据文件序号代替:

RMAN>SQL 'ALTER DATABASE DATAFILE 10 OFFLINE;

RMAN> RESTORE DATAFILE 10;

RMAN> RECOVER DATAFILE 10;

RMAN>SQL ' ALTER DATABASE DATAFILE 10 ONLINE;

E:\oracleScript\backup> database_backup_jssweb.bat

C:\Documents and Settings\Administrator>sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on 星期三 7月 18 10:17:44 2007

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

SQL> create table tmp3(col varchar2(50));

SQL> insert into tmp3 values ('test1');

SQL> insert into tmp3 values ('test2');

SQL> insert into tmp3 values ('test3');

--------------------------------------------------

SQL> conn / as sysdba

SQL> host del F:\OraHome1\oradata\jssweb\jweb.ora

Total System Global Area  143727516 bytes

Fixed Size                   453532 bytes

Variable Size             109051904 bytes

Database Buffers           33554432 bytes

Redo Buffers                 667648 bytes

SQL> select instance_name,status from v$instance;

---------------- ------------

C:\Documents and Settings\Administrator>set oracle_sid=jssweb

C:\Documents and Settings\Administrator>rman target /

Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.

RMAN> restore datafile 'F:\ORAHOME1\ORADATA\JSSWEB\JWEB.ORA';

####首先修复数据文件。是不是有疑问,为什么不像上面第三节讲的那样先将该数据文件置为脱机,笨啊你,数据库都没打开,脱什么机啊,整个数据库现在都是脱机的。

RMAN> recover datafile 'F:\ORAHOME1\ORADATA\JSSWEB\JWEB.ORA';

RMAN> alter database open;

C:\Documents and Settings\Administrator>sqlplus jss/jss

SQL*Plus: Release 9.2.0.1.0 - Production on 星期三 7月 18 10:33:50 2007

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production

With the Partitioning, OLAP and Oracle Data Mining options

JServer Release 9.2.0.1.0 - Production

SQL> select *from tmp3;

--------------------------------------------------

select ts.tablespace_name, df.file_name, df.file_id, tf.file_name

from dba_tablespaces ts, dba_data_files df, dba_temp_files tf

where ts.tablespace_name = df.tablespace_name(+)

and ts.tablespace_name = tf.tablespace_name(+)

一步一步学RMAN第八篇 演练rman恢复 - 无名扫把 - CSDN博客 - yangzhongfei - 中飞博客



引文来源  一步一步学RMAN第八篇 演练rman恢复 - 无名扫把 - CSDN博客
  评论这张
 
阅读(403)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018