数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

用Flashback功能恢复表中数据


发布日期:2022年03月24日
 
用Flashback功能恢复表中数据
这里只罗列出利用Oracle i R的flashback功能来恢复一下某表中的数据的步骤其实很简单

首先如果数据库在归档模式下我们可以通过查询v$archived_log视图来查看各个归档日志所属的检查点

select namefirst_change#next_change#first_time from v$archived_log

通过包dbms_flashbackget_system_change_number来获得数据库的SCN号当然如果你的数据库是g的话还可以查看v$database中的字段current_scn

select dbms_flashbackget_system_change_number from dual

select count(*) from student 看看我们的表中的数据有多少

create table student_recovery

as

select * from student where =

来创建恢复表的结构

开始我们的闪回查询

选择一个前面的SCN进行向前恢复

select count(*) from student as of scn

尝试多个scn来获得我们所期望的结构

最后通过

insert into student_recovery select * from student as of scn commit

来恢复我们表中的数据

还有一点需要我们注意的是什么呢?

就是smon_scn_time这个表这个表记录了Oracle数据库的系统表用以进行辅助的恢复等功能这个表在iR的时候是每分钟刷新一次而且smon_scn_time会记录天的数据也就是行记录因此在OracleiR表属性修改时间和flashback时间差至少应为分钟否则会报ora的错误

上一篇:如何使用Oracle case函数

下一篇:讲解Oracleshowparameter命令的小技巧