把oracle数据库恢复到某个时间点或者某个scn
alter session set nls_date_format='yyyymmdd hh24:mi:ss';
select sysdate from dual;
conn dbauser/123456; 随便一个用户,然后删除其中的一张表用来做测试
drop table test;
rman target/
startup mount;
restore database; 还原数据文件
sql 'alter session set nls_date_format="yyyymmdd hh24:mi:ss"'; 因为在rman中执行,所以需要sql ‘’;
recover database until time '20110414 11:33:56'; 恢复到这个时间的数据,执行之后需要重新生成重做日志文件
sql 'alter database open resetlogs';
scn是指系统改变号,oracle数据库使用它来记录数据库的过去时间内的状态和轨迹
conn /as sysdba
select dbms_flashback.get_system_chage_number from dual;
select to_char(scn_to_timestamp(963959),'YYYY-MM-DD HH24:MI:SS') from dual; 将scn转换为时间
select * from (select time_dp,scn from smon_scn_time order by time_dp desc) where rownum<10; 根据用户删除数据时间找出相应的scn号
rman target/
startup mount;
restore database; 还原数据文件
recover database until scn 963915;
sql 'alter database open resetlogs'; 重新生成重做日志文件