问题描述:通过scn值恢复delete误删数据的简单操作
查询系统闪回的scn值和当前日志的scn值,这个值要在创建和添加完数据的测试表后知道,因为是要根据这个scn的值进行数据的恢复。
(1)创建测试数据
SQL> create table test(id int,name varchar2(10),adress varchar2(10));
插入测试数据
SQL> insert into test values(111,'steven','changchun');
SQL> commit;
(2)获取scn的值
SQL> select current_scn from v$database;
此时,我们已经创建完测试数据,并获取了要恢复的scn值,下面将进行delete的误操作,删除测试数据,然后通过scn值进行数据恢复。
(3)误删除数据
首先检查数据是否正常
SQL>select * from test;
然后误删除数据
再次检查测试数据是否还存在
SQL>select * from test;
发现此时数据已经被删除,下面要进行数据的恢复操作。
(5)恢复数据
SQL> select * from aa as of scn 1018926;
其中1018926这个scn的值,是在第二步获取的值,也就是创建完测试数据之后获取的scn值,通过1018926这个scn值,能找到之前误删除的测试数据。
开始进行数据恢复
SQL> insert into test select * from test as of scn 1018926;
再次查询测试数据,检查是否数据已经恢复。
SQL> select * from test;
至此,误删除的测试数据就恢复完成。
(6)总结
以上所述是小生给大家简单的介绍了一下delete误删除数据并使用scn进行恢复的整体过程,希望通过上述介绍对大家有所帮助,并且如果大家有任何疑问请给我留言,小生会尽可能的帮助大家。