Chinaunix首页 | 论坛 | 博客
  • 博客访问: 84988
  • 博文数量: 93
  • 博客积分: 2141
  • 博客等级: 大尉
  • 技术积分: 785
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-13 14:08
文章分类
文章存档

2011年(93)

我的朋友

分类: Oracle

2011-09-06 11:50:42

  示例一:表空间的数据文件被误删除

  open状态下删除表空间对应的所有数据文件.

  在open状态下使用alter tablespace ... offline for recover 脱机表空间.

  使用restore tablespace ...转储表空间所有的数据文件.

  使用recover tablespace ...应用归档日志.

  最后使用alter tablespace ... online使表空间联机.

  --open状态下删除表空间对应的所有数据文件.

  [oracle@localhost ~]$ rm /oracle/10g/oracle/product/10.2.0/oradatabak/users01.dbf;

  --恢复表空间

  [oracle@localhost ~]$ rman target sys/oracle@oralife nocatalog

  RMAN> run {

  2> sql 'alter tablespace users offline for recover';

  3> restore tablespace users;

  4> recover tablespace users;

  5> sql 'alter tablespace users online';

  6> }

  示例二:表空间的数据文件所在磁盘出现故障

  open状态下删除表空间对应的所有数据文件.

  在open状态下使用alter tablespace ... offline for recover 脱机表空间.

  执行set newname为数据文件指定新的位置.

  使用restore tablespace ...转储表空间所有的数据文件.

  执行switch datafile改变控制文件中数据文件位置和名称.

  使用recover tablespace ...应用归档日志.

  最后使用alter tablespace ... online使表空间联机.

  --open状态下删除表空间对应的所有数据文件.

  [oracle@localhost ~]$ rm /oracle/10g/oracle/product/10.2.0/oradatabak/users01.dbf;

  SQL> select * from t_user;

  select * from t_user

  *

  ERROR at line 1:

  ORA-00376: file 4 cannot be read at this time

  ORA-01110: data file 4:

  '/oracle/10g/oracle/product/10.2.0/oradatabak/users01.dbf'

  SQL> select file#,error from v$recover_file;

  FILE# ERROR

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

  4 FILE NOT FOUND

  --恢复表空间

  [oracle@localhost ~]$ rman target sys/oracle@oralife nocatalog

  run {

  sql 'alter tablespace users offline for recover';

  set newname for datafile 4 to '$ORACLE_BASE/product/10.2.0/oradata/oralife/user01.dbf';

  restore tablespace users;

  switch datafile all;

  recover tablespace users;

  sql 'alter tablespace users online';

  }

  --已恢复

  SQL> select * from t_user;

  TEXT

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

  java_

  SQL> select name from v$datafile where file# = 4;

  NAME

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

  /oracle/10g/oracle/product/10.2.0/oradata/oralife/user01.dbf

  数据块介质恢复

  如果数据文件部分数据块出现损坏,可以使用blockrecover 命令恢复损坏数据块.

  如:

  RMAN> blockrecover device type disk

  2>datafile 5 block 2,7,88;

  关于RMAN恢复之表空间和数据块介质的恢复方法就介绍到这里了,希望本次的介绍能够对您有所帮助.

阅读(252) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~