ITPub博客

首页 > 数据库 > Oracle > 闪回删除、闪回查询

闪回删除、闪回查询

原创 Oracle 作者:GM_DBA 时间:2013-12-04 20:19:11 0 删除 编辑
一、闪回删除
实验步骤:
利用闪回删除恢复被删除的job_history表;

操作如下:
(1) 删除HR用户中的JOB_HISTORY表; 
SYS@GMDBA> conn hr/oracle
Connected.
HR@GMDBA> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
COUNTRIES TABLE
DEPARTMENTS TABLE
EMPLOYEES TABLE
EMPLOYEES_TEST TABLE
EMP_DETAILS_VIEW VIEW
JOBS TABLE
JOB_HISTORY TABLE
LOCATIONS TABLE
REGIONS TABLE
9 rows selected.
HR@GMDBA> drop table JOB_HISTORY;
Table dropped.
HR@GMDBA> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
BIN$7JztDH4gOM/gQwpQqMChGg==$0 TABLE
COUNTRIES TABLE
DEPARTMENTS TABLE
EMPLOYEES TABLE
EMPLOYEES_TEST TABLE
EMP_DETAILS_VIEW VIEW
JOBS TABLE
LOCATIONS TABLE
REGIONS TABLE
9 rows selected.
(2) 进行闪回删除;
HR@GMDBA> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ --------------
JOB_HISTORY BIN$7JztDH4gOM/gQwpQqMChGg==$0 TABLE 2013-12-03:16:17:24 


HR@GMDBA> flashback table "BIN$7JztDH4gOM/gQwpQqMChGg==$0" to before drop;
Flashback complete.
HR@GMDBA> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
COUNTRIES TABLE
DEPARTMENTS TABLE
EMPLOYEES TABLE
EMPLOYEES_TEST TABLE
EMP_DETAILS_VIEW VIEW
JOBS TABLE
JOB_HISTORY TABLE
LOCATIONS TABLE
REGIONS TABLE
9 rows selected.

二、闪回查询
实验步骤:
1.删除hr用户下的job_history表的数据;
2.使用闪回查询查看删除前的数据;
3.利用闪回删除恢复删除的数据;

操作如下:
(1) 查询hr用户下的job_history表数据;
SYS@GMDBA> conn hr/oracle
Connected.
HR@GMDBA> select * from job_history;
EMPLOYEE_ID START_DAT END_DATE JOB_ID DEPARTMENT_ID
----------- --------- --------- ---------- -------------
102 13-JAN-01 24-JUL-06 IT_PROG 60
101 21-SEP-97 27-OCT-01 AC_ACCOUNT 110
101 28-OCT-01 15-MAR-05 AC_MGR 110 
201 17-FEB-04 19-DEC-07 MK_REP 20
114 24-MAR-06 31-DEC-07 ST_CLERK 50
122 01-JAN-07 31-DEC-07 ST_CLERK 50
200 17-SEP-95 17-JUN-01 AD_ASST 90
176 24-MAR-06 31-DEC-06 SA_REP 80
176 01-JAN-07 31-DEC-07 SA_MAN 80
200 01-JUL-02 31-DEC-06 AC_ACCOUNT 90
10 rows selected.
(2) 确定当前时间;
HR@GMDBA> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
Session altered.
HR@GMDBA> select sysdate from dual;
SYSDATE
-------------------
2013-12-03 22:59:37
(3) 删除hr用户下的job_history表数据;
HR@GMDBA> delete from job_history;
10 rows deleted.
HR@GMDBA> commit;
Commit complete.
HR@GMDBA> select * from job_history;
no rows selected
(4) 利用闪回查询查看删除前的数据;
HR@GMDBA> select * from job_history as of timestamp to_timestamp('2013-12-03 22:59:37','yyyy-mm-dd hh24:mi:ss');
EMPLOYEE_ID START_DAT END_DATE JOB_ID DEPARTMENT_ID
----------- --------- --------- ---------- -------------
102 13-JAN-01 24-JUL-06 IT_PROG 60
101 21-SEP-97 27-OCT-01 AC_ACCOUNT 110
101 28-OCT-01 15-MAR-05 AC_MGR 110 
201 17-FEB-04 19-DEC-07 MK_REP 20
114 24-MAR-06 31-DEC-07 ST_CLERK 50
122 01-JAN-07 31-DEC-07 ST_CLERK 50
200 17-SEP-95 17-JUN-01 AD_ASST 90
176 24-MAR-06 31-DEC-06 SA_REP 80
176 01-JAN-07 31-DEC-07 SA_MAN 80
200 01-JUL-02 31-DEC-06 AC_ACCOUNT 90
10 rows selected.
(5) 把数据插回job_history表中;
HR@GMDBA> insert into job_history select * from job_history as of timestamp to_timestamp('2013-12-03 22:59:37','yyyy-mm-dd hh24:mi:ss');
10 rows created.
HR@GMDBA> select * from job_history;
EMPLOYEE_ID START_DAT END_DATE JOB_ID DEPARTMENT_ID
----------- --------- --------- ---------- -------------
102 13-JAN-01 24-JUL-06 IT_PROG 60
101 21-SEP-97 27-OCT-01 AC_ACCOUNT 110
101 28-OCT-01 15-MAR-05 AC_MGR 110
201 17-FEB-04 19-DEC-07 MK_REP 20
114 24-MAR-06 31-DEC-07 ST_CLERK 50
122 01-JAN-07 31-DEC-07 ST_CLERK 50
200 17-SEP-95 17-JUN-01 AD_ASST 90
176 24-MAR-06 31-DEC-06 SA_REP 80
176 01-JAN-07 31-DEC-07 SA_MAN 80
200 01-JUL-02 31-DEC-06 AC_ACCOUNT 90
10 rows selected.
HR@GMDBA> commit;
Commit complete.




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

上一篇: 闪回数据库
下一篇: 闪回表
请登录后发表评论 登录
全部评论

注册时间:2013-11-20

  • 博文量
    33
  • 访问量
    207646