Chinaunix首页 | 论坛 | 博客
  • 博客访问: 605149
  • 博文数量: 841
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-28 10:08
文章分类

全部博文(841)

文章存档

2011年(1)

2008年(840)

我的朋友

分类:

2008-10-28 10:11:57

  有人问起,能用以前的冷备份+冷备份以来的所有归档日志将数据库恢复到当前状态么?

  冷备份是一致的,如果冷备份包含所有的datafile,controlfile,online redo logfile,并且将所有的这些文件全部restore后再来做recover,是不行的,oracle会告诉你,当前数据库是一致的,无须recover。

  首先关闭数据库,做一个冷备份
  SQL> shutdown immediate;
  数据库已经关闭。
  已经卸载数据库。
  ORACLE 例程已经关闭。

  然后启动到mount状态,试着做recover(这就相当于将所有的冷备份文件都restore回来的情况)
  SQL> startup mount;
  ORACLE 例程已经启动。

  Total System Global Area 142606336 bytes
  Fixed Size 1247732 bytes
  Variable Size 83887628 bytes
  Database Buffers 50331648 bytes
  Redo Buffers 7139328 bytes
  数据库装载完毕。

  SQL> recover database;
  ORA-00283: 恢复会话因错误而取消
  ORA-00264: 不要求恢复

  可以看到,oracle会给出正确的提示:ORA-00264: 不要求恢复,数据库是一致的。

  打开数据库,建立表并插入数据
  SQL> alter database open;

  数据库已更改。

  SQL> create table tt(id int,name varchar2(20));

  表已创建。

  SQL> insert into tt values(1,'a');

  已创建 1 行。

  SQL> commit;

  提交完成。

  切换日志,进行归档
  SQL> alter system switch logfile;

  系统已更改。

  SQL> /

  系统已更改。

  SQL> /

  系统已更改。

  SQL> /

  系统已更改。

  关闭系统
  SQL> shutdown immediate;
  数据库已经关闭。
  已经卸载数据库。
  ORACLE 例程已经关闭。

  恢复场景一:当前联机日志文件,控制文件都是ok的,数据文件损坏

  恢复方法
  1.restore冷备份中的数据文件

  2.启动数据库,报错
  SQL> startup
  ORACLE 例程已经启动。

  Total System Global Area 142606336 bytes
  Fixed Size 1247732 bytes
  Variable Size 83887628 bytes
  Database Buffers 50331648 bytes
  Redo Buffers 7139328 bytes
  数据库装载完毕。
  ORA-01113: 文件 1 需要介质恢复
  ORA-01110: 数据文件 1: 'E:/ORACLE/ORA10/ORADATA/NING/SYSTEM01.DBF'

  3.使用recover database恢复数据库
  SQL> recover database;
  ORA-00279: 更改 301820 (在 11/29/2006 10:16:00 生成) 对于线程 1 是必需的
  ORA-00289: 建议: E:/ORACLE/ARCH/NING/ARC00133_0607342148.001
  ORA-00280: 更改 301820 (用于线程 1) 在序列 #133 中

  指定日志: {=suggested | filename | AUTO | CANCEL}
  auto
  ORA-00279: 更改 301821 (在 11/29/2006 10:26:15 生成) 对于线程 1 是必需的
  ORA-00289: 建议: E:/ORACLE/ARCH/NING/ARC00134_0607342148.001
  ORA-00280: 更改 301821 (用于线程 1) 在序列 #134 中
  ORA-00278: 此恢复不再需要日志文件 'E:/ORACLE/ARCH/NING/ARC00133_0607342148.001'

  ORA-00279: 更改 302089 (在 11/29/2006 10:27:30 生成) 对于线程 1 是必需的
  ORA-00289: 建议: E:/ORACLE/ARCH/NING/ARC00135_0607342148.001
  ORA-00280: 更改 302089 (用于线程 1) 在序列 #135 中
  ORA-00278: 此恢复不再需要日志文件 'E:/ORACLE/ARCH/NING/ARC00134_0607342148.001'

  已应用的日志。
  完成介质恢复。

 

[1]    

【责编:Peng】

--------------------next---------------------

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