用户管理的不完全恢复必须满足下面三个条件才可以使用
a) 归档模式
b) 要有所有datafile在误操作之前的备份
c) 要有自要使用的备份以来的所有归档
不完全恢复的类型
a) 基于时间点 比如从alter警告文件中查到drop table操作是什么时候发生的recover database until time ::
b) 基于Cancel 可能中间某个归档损坏或丢失recover database untill cancel
c) 基于SCN(系统改编号)recover database until scn <scn_number>
另同时使用备份的控制文件的不完全恢复 using backup control file
实例说明几种场景的不完全恢复
truncate table dept;
alter system switch logfile;
delete from emp where empno=<N>;
alter system switch logfile;
alter system switch logfile;
发现是误操作
启动EM用logminer(日志查看器)查时间点或SCN
oemapp consol
登陆到management server(参看如何使用management server后面会发布)
>工具>数据库应用程序>日志查看器>创建查询条件
比如表=DEPT (必须大写) 开始时间 结束时间
查询出误操作时间或SCN比如时间 :: SCN
好现在开始做基于时间点的不完全恢复
ashutdown immediate
brestore(复制) full backup到数据文件目录下
cstartup mount
dalter session set NLS_date_format = YYYYMMDD HH:MI:SS
erecover database until time ::;
//recover database until scn
falter database open resetlogs 必须带resetlogs
g删除所有归档冷备 热备(已经都没用了必须重新备份)
h备份(不要忘了)
基于cancel的模拟
delete dept where depno=;//假如users表空间下的表
commit;
alter database switch logfile;多次
alter database switch logfile;
alter database switch logfile;
发现失误实行恢复
shutdown immediate
删除users表空间(对应的文件号假如是)和一个归档日志
试着做完全恢复失败
参看
做基于cancel的恢复
shutdown immediate
还原所有文件
startup mount
alter tablespace users online将offline的所有文件online
recover database until cancel
alter database open resetlogs
别忘了重新备份
使用备份的控制文件的不完全恢复
已经有所有数据文件的备份
备份控制文件
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
alter database backup controlfile to d:ackupconctl;
alter system switch logfile;
conn scott/tiger
delete dept where deptno=;
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;
别忘了做全备
联机日志全部丢失
shutdown immediate
删除所有的联机日志
startup
报联机日志错误
recover database until cancel
这步实际上什么也不做但必须做这个操作
alter database open resetlogs;
别忘了做全备以前的都没用了(包括归档)
误删除了表空间怎么恢复必须归档模式
archive log list
select * from v$tablespace
select * from scottemp;
删除表空间
drop tablespace indx including contents and datafiles;
alter system switch logfile;
开始恢复
shutdown immediate
恢复所有的数据文件和控制文件必须用老的控制文件
查询alter查看drop indx表空间的时间比如 ::
startup mount
alter session set nls_date_format=yyyymmdd hh:mi:ss;
recover database until time ; :: using backup controlfile;
alter database open resetlogs
别忘了做全备以前热备的都没用了