我的一亩三分地 我就喜欢!
13fen  设为主页
 收藏本站
 
当前位置: > 一亩三分地:首页 > 网络学院 > 数据库 > oracle > Oracle中用户管理的不完全恢复简介
热门文章排行
热门文章排行 Oracle的客户端工具--sql*plus(二(10-18)
如何将Access和Excel导入到Mysql中之(11-16)
用SQL进行函数查询(12-15)
Oracle 9i 数据库WITH查询语法小议(12-15)
PL/SQL异常处理初步(12-15)
精采文章排行
精采文章排行 用代码打开Access文件的两种方法(11-17)
SQL Server 2000企业版安装教程(1)(11-16)
SQL数据操作基础(初级1)(11-16)
SQL数据操作基础(中级1)(11-16)
mssql 数据库的备份与恢复(11-16)
技术专题推荐
网管论坛交流
 

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

作者:佚名   来源:Linux 宝库   点击:   日期:2006-12-22

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

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



别忘了重新备份



3. 使用备份的控制文件的不完全恢复

--已经有所有数据文件的备份

--备份控制文件



















alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
alter database backup controlfile to "d:ackupcon1.ctl";
alter system switch logfile;
conn scott/tiger
delete dept where deptno=42;
commit;
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
shutdown abort/immediate/normal/transactional



删除所有数据文件,备份和删除当前的控制文件,但是归档必须存在







startup [nomount]



--报错 查看状态







nomount, select status from v$instance;



从备份中恢复控制文件

复制所有备份的数据文件(在删除前要已经有备份)







recover database until cancel using backup controlfile;
alter database open resetlogs;



别忘了做全备

4.联机日志全部丢失







shutdown immediate



删除所有的联机日志







startup



--报联机日志错误







recover database until cancel



--这步实际上什么也不做,但必须做这个操作







alter database open resetlogs;



别忘了做全备,以前的都没用了(包括归档)

5.误删除了表空间怎么恢复,必须归档模式







archive log list
select * from v$tablespace
select * from scott.emp;



--删除表空间







drop tablespace indx including contents and datafiles;
alter system switch logfile;



--开始恢复







shutdown immediate



恢复所有的数据文件和控制文件,必须用老的控制文件

查询alter,查看drop indx表空间的时间,比如: 2006-07-10 10:10:10







startup mount
alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss";
recover database until time ;2006-07-10 10:10:09" using backup controlfile;
alter database open resetlogs



别忘了做全备,以前热备的都没用了。

(T114)






文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【论坛讨论

   相关文章:
·Oracle数据库的安全策略分析(三) ·Oracle数据库的安全策略分析(二)
·SCO unix 下定时备份 Oracle dmp 文件 ·Oracle 9i密码策略--密码重用规则
·Oracle SQL 内置函数的使用方法及结果 ·WindowsXP下安装Oracle9i问题二则

   文章评论:(条)
  
 请留名: 匿名评论   点击查看所有评论 网管论坛
 

  责任编辑:一分  声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。