首先说明的是我用的是Oracle9i,在一次开发过程中不小心误删掉用户信息表。以前没有任何备份,主要是冷备份,我只有自动归档。只可惜这样对我恢复表没有任何办法,在我目前的只是认知里面还不能办到。但是通过底层一些scn号统一等等,我感觉应该可以,不过那就是我现有知识体系以外的了。
基于时间点的恢复,必须要有合理的冷备份(里面不包括控制文件和联机日志文件),关闭oracle系统,然后拷贝数据文件,启动oracle到mount模式,进行recover database恢复,最后启动数据 resetlogs ,基本上就可以了,可是我在实际操作过程中遇到的问题恰恰是进行时间点恢复时,把我所有的时间点都恢复了。不知道是不是哪点操作的不对,百思不得其解。
alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss' ;
recover database until time '2009-4-22 09:51:26'
这种时间点的恢复,把我在 '2009-4-22 09:51:57'插入的一行数据也给恢复了。