Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1211195
  • 博文数量: 1211
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 14340
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-09 11:20
文章分类

全部博文(1211)

文章存档

2011年(1)

2008年(1210)

我的朋友

分类: 服务器与存储

2008-06-13 13:22:45

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

  冷备份是一致的,如果冷备份包含所有的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 例程已经关闭。

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