Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->数据库应用 ->Oracle ->正文

Oracle中用户管理的不完全恢复简介

来源:chinaitlab  作者:Webmaster 时间:2007-04-23 点击: [收藏] [投稿]

用户管理的不完全恢复必须满足下面三个条件才可以使用:

a) 归档模式

b) 要有所有datafile在误操作之前的备份

c) 要有自要使用的备份以来的所有归档

不完全恢复的类型

a) 基于时间点 :比如从alter警告文件中查到drop table操作是什么时候发生的  

recover database until time '2000-10-01 10:10:10'

b) 基于Cancel : 可能中间某个归档损坏或丢失

recover database untill cancel

c) 基于SCN(系统改编号)  

recover database until scn

-- 另同时使用备份的控制文件的不完全恢复

using backup control file

实例说明几种场景的不完全恢复

1.

truncate table dept;
alter system switch logfile;
delete from emp where empno=;
alter system switch logfile;
alter system switch logfile;

--发现是误操作

--启动EM,用logminer(日志查看器)查时间点或SCN

oemapp consol

登陆到management server(参看:怎么样使用management server,后面会发布)

-->工具-->数据库应用程序-->日志查看器-->创建查询条件

--比如:表=DEPT (必须大写) 开始时间 结束时间

查询出误操作时间或SCN,比如时间:2006-07-14 13:52:18 SCN 12345

--好现在开始做基于时间点的不完全恢复

a.shutdown immediate

b.restore(复制) full backup到数据文件目录下

c.startup mount

d.alter session set NLS_date_format = 'YYYY-MM-DD HH24:MI:SS'

e.recover database until time '2004-07-14 13:52:17';

//recover database until scn 12345

f.alter database open resetlogs --必须带resetlogs

g.删除所有归档、冷备 热备(已经都没用了,必须重新备份)

h.备份(不要忘了)

2.基于cancel的模拟

delete dept where depno=42;//假如users表空间下的表
commit;
alter database switch logfile;--多次
alter database switch logfile;
alter database switch logfile;
--发现失误,实行恢复
shutdown immediate

删除users表空间(对应的文件号假如是9)和一个归档日志

试着做完全恢复,失败,

--参看http://www.david-studio.org/new/resource/showdetail.jsp?ID=12

--做基于cancel的恢复

shutdown immediate

还原所有文件

startup mount
alter tablespace users online--将offline的所有文件online
recover database until cancel
alter database open resetlogs

别忘了重新备份

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:常见数据库系统比较之Oracle数据库   下一篇:Oracle用户——我渴望开源数据库

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号