ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle 误删除的处理方法

oracle 误删除的处理方法

原创 Linux操作系统 作者:wadekobe9 时间:2012-02-02 14:23:24 0 删除 编辑
       这里简单的描述一下to_timestamp的用法,在测试库上面,经常会有开发人员误删除或修改一些数据,并且已经提交。方法如下:

SQL> select * from emp;
 
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7369 SMITH      CLERK      7902 1980/12/17     800.00               20
 7499 ALLEN      SALESMAN   7698 1981/2/20     1600.00    300.00     30
 7521 WARD       SALESMAN   7698 1981/2/22     1250.00    500.00     30
 7566 JONES      MANAGER    7839 1981/4/2      2975.00               20
 7654 MARTIN     SALESMAN   7698 1981/9/28     1250.00   1400.00     30
 7698 BLAKE      MANAGER    7839 1981/5/1      2850.00               30
 7782 CLARK      MANAGER    7839 1981/6/9      2450.00               10
 9999 SCOTT      ANALYST    7566 1987/4/19     3000.00               20
 7839 KING       PRESIDENT       1981/11/17    5000.00               10
 7844 TURNER     SALESMAN   7698 1981/9/8      1500.00      0.00     30
 7876 ADAMS      CLERK      7788 1987/5/23     1100.00               20
 7902 FORD       ANALYST    7566 1981/12/3     3000.00               20
 7934 MILLER     CLERK      7782 1982/1/23     1300.00               10
 
13 rows selected

---在2点20分进行了如下误操作
Delete From emp Where deptno=20;
commit;

现在如何找回已经被删除的deptno=20的数据呢?
只需进行如下操作,时间点是在2点20分以前就可以了
select * from  emp as of timestamp to_timestamp('2012-02-02 14:13:05','YYYY-MM-DD HH24:MI:SS')

将查询出来的数据直接insert回去,如果是update的出的问题,就将现有出问题的行删除再insert回去,
正式库上面的闪回肯定是关掉的,用次方法能够较为简单快捷的恢复,当然它也它的局限性,这里是
直接查询undo表空间中记录的前镜像,如果前镜像没有了,此方法就不适用了

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10678398/viewspace-715517/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 停掉oracle自带job
请登录后发表评论 登录
全部评论

注册时间:2010-11-30

  • 博文量
    36
  • 访问量
    69955