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

全部博文(1211)

文章存档

2011年(1)

2008年(1210)

我的朋友

分类: 服务器与存储

2008-06-14 13:49:11

作为一个dba,最重要的工作莫过于保证数据库中数据的安全,当一个数据库down掉之后,恢复旧变成了至关重要的事情。能否成功的恢复,并不在于数据库down掉时采取的恢复策略,要保证数据的万无一失,一套完整的备份方案是必须的。但作为dba,还应该了解和掌握各种情况下应该采取哪些恢复措施,并且清楚的指导每一种恢复方式的会产生什么样的结果。以下是几种常用的的备份和恢复方式的具体示例,是入门的dba必须掌握的。

  实例1:归档的数据库,完整的数据库全库备份,完整的归档备份,此时数据库down掉,只留下控制文件和日志文件可用。

  1:安全关闭当前数据库。(确保当前数据库处于归档模式下)。

  2:copy所有的数据文件,日志文件和控制文件到一个目录下。

  3:打开数据库,建新用户user1

  create user user1 identified by aaaaaa;

  grant dba to user1;

  connect user1/aaaaaa;

  4:在user1 下建表T1,向T1中插入10000条数据。

  Begin

  For I in 1……100000 loop

  Insert into t1 values(i);

  End loop;

  Commit;

  End;

  5:切换几次日志,使所有日志都已经归档。

  Alter system switch log file;

  6:正常关闭数据库。Shutdown immediate;

  7:恢复:

  把当前数据库所有文件移动到一个临时文件夹里,模拟数据库损坏。

  8:COPY最初复制的数据库的所有文件,但控制文件和日志文件要使用目前数据库的。

  9:启动数据库 startup

  mount 后会提示SYSTEM表空间需要恢复。并给出恢复使用的归档日志文档。

  确定归档日志位置正确后,输入auto.

  ORACLE将一个一个的应用归档文档。直至提示完全恢复成功。

  10:打开数据库 alter database open;

  11:查看user1用户及t1表中是否有刚才插入的10000条记录。

  至此,整个使用归档日志对完整的数据库冷备份进行完全恢复的模拟成功完成。

  实例2:上面的例子,并且在线日志online redo也丢失,在这种情况下,只能做不完全恢复。前8步同上。

  9:startup mount;

  10:步完全恢复:

  recover database until cance;

  o mount 后会提示SYSTEM表空间需要恢复。并给出恢复使用的归档日志文档。

  确定归档日志位置正确后,回车,一个个应用归档日志,直至最后提示的归档日志用完后下一个归档日志时输入cancel.

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