ITPub博客

首页 > 数据库 > 数据库开发技术 > 表空间级数据库备份恢复

表空间级数据库备份恢复

原创 数据库开发技术 作者:foreverlee 时间:2005-03-08 13:35:02 0 删除 编辑

案例:
最后一次对表空间aaa备份是在2005年03月03日上午
2005年04月03日上午应用报sp表不能查询,经查询user_tables发现
sp表处于aaa表空间.aaa表空间需要恢复

[@more@]

案例:
最后一次对表空间aaa备份是在2005年03月03日上午
2005年04月03日上午应用报sp表不能查询,经查询user_tables发现
sp表处于aaa表空间.aaa表空间需要恢复

现象:
SQL> select * from sp;
select * from sp
              *
ERROR 位于第 1 行:
ORA-00376: 此时无法读取文件 13
ORA-01110: 数据文件 13: 'D:ORACLEORADATALIYONGAAA.DBF'

SQL> select table_name,tablespace_name from user_tables;

TABLE_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
SP                             AAA

SQL> select file_name,
  2            tablespace_name
  3      from dba_data_files
  4     where tablespace_name='AAA';

FILE_NAME
----------------------------------------

TABLESPACE_NAME
------------------------------
D:ORACLEORADATALIYONGAAA.DBF
AAA

表空间对应数据文件为D:ORACLEORADATALIYONGAAA.DBF.
D:ORACLEORADATALIYONGAAA.DBF需要恢复.

1>
将需要介质恢复的表空间offline
SQL> alter tablespace aaa offline temporary;

表空间已更改。

2> 将最近备份的表空间数据文件放置在磁盘上,并告诉控制文件你放置的位置.
SQL> alter database rename file 'D:ORACLEORADATALIYONGAAA.DBF'
  2  to 'D:oracleoradatatsbkaaa.dbf';

数据库已更改。

3> 恢复表空间aaa
SQL> recover tablespace aaa;
完成介质恢复。

4> online 表空间aaa.
SQL> recover tablespace aaa;
完成介质恢复。
SQL> alter tablespace aaa online;

表空间已更改。

SQL> show user
USER 为"LIYONG"
SQL> select count(*) from sp;

  COUNT(*)
----------
        13
至此丢失的数据已经找回.

总结:
完全恢复成功的前提是:最近一次备份表空间aaa后的所有归档和联机日志存在.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/76065/viewspace-791938/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 爱你在心口难开
请登录后发表评论 登录
全部评论

注册时间:2008-11-26

  • 博文量
    72
  • 访问量
    1356225