设为首页 收藏本站
查看: 1745|回复: 0

[经验分享] Oracle12C闪回技术

[复制链接]

尚未签到

发表于 2018-9-5 13:42:22 | 显示全部楼层 |阅读模式
  1.Oracle Flashback Query  --闪回查询
  ORACLE根据undo信息,利用undo数据,类似一致性读取方法,可以把表置于一个删除前的时间点(或SCN),从而将数据找回。
  Flashback query(闪回查询)前提:
  sys@CLONEPDB_PLUGPDB> show parameter undo
  NAME                                 TYPE        VALUE
  temp_undo_enabled                    boolean     FALSE
  undo_management                      string      AUTO
  undo_retention                       integer     900
  undo_tablespace                      string      UNDOTBS1
  其中undo_management = auto,设置自动管理
  Undo_retention = n(秒),设置决定undo最多的保存时间,其值越大,就需要越多的undo表空间的支持。修改undo_retention的命令如下:

  sys@CLONEPDB_PLUGPDB> >
  System>  Elapsed: 00:00:00.06
  sys@CLONEPDB_PLUGPDB> show parameter undo
  NAME                                 TYPE        VALUE
  temp_undo_enabled                    boolean     FALSE
  undo_management                      string      AUTO
  undo_retention                       integer     3600
  undo_tablespace                      string      UNDOTBS1
  获取数据删除前的一个时间点或scn,如下:
  sys@CLONEPDB_PLUGPDB> select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') time, to_char(dbms_flashback.get_system_change_number) scn from dual;
  TIME                SCN
  2018-01-17 14:16:00 5409876
  Elapsed: 00:00:00.11
  sys@CLONEPDB_PLUGPDB> conn scott/tiger@clonepdb_plug
  Connected.
  scott@CLONEPDB_PLUGPDB> select count(*) from emp;

COUNT(*)
  

    12  

  Elapsed: 00:00:00.03
  scott@CLONEPDB_PLUGPDB> delete from emp;
  12 rows deleted.
  Elapsed: 00:00:00.04
  scott@CLONEPDB_PLUGPDB> commit;
  Commit complete.
  Elapsed: 00:00:00.01
  scott@CLONEPDB_PLUGPDB> select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') time, to_char(dbms_flashback.get_system_change_number) scn from dual;
  select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') time, to_char(dbms_flashback.get_system_change_number) scn from dual
  *
  ERROR at line 1:

  ORA-00904: DBMS_FLASHBACK: invalid>  Elapsed: 00:00:00.02
  查询该时间点(或scn)的数据,如下:
  scott@CLONEPDB_PLUGPDB> select count(*) from emp;

COUNT(*)
  

     0  

  Elapsed: 00:00:00.01
  scott@CLONEPDB_PLUGPDB> select from emp as of timestamp to_timestamp('2018-01-17 14:16:00', 'yyyy-mm-dd hh24:mi:ss');--或select from emp as of scn 5409876;
  

EMPNO ENAME      JOB              MGR HIREDATE                   SAL       COMM     DEPTNO  

  

  7369 SMITH      CLERK           7902 1980-12-17 00:00:00        800                    20  7499 ALLEN      SALESMAN        7698 1981-02-20 00:00:00       1600        300         30
  7521 WARD       SALESMAN        7698 1981-02-22 00:00:00       1250        500         30
  7566 JONES      MANAGER         7839 1981-04-02 00:00:00       2975                    20
  7654 MARTIN     SALESMAN        7698 1981-09-28 00:00:00       1250       1400         30
  7698 BLAKE      MANAGER         7839 1981-05-01 00:00:00       2850                    30
  7782 CLARK      MANAGER         7839 1981-06-09 00:00:00       2450                    10
  7839 KING       PRESIDENT            1981-11-17 00:00:00       5000                    10
  7844 TURNER     SALESMAN        7698 1981-09-08 00:00:00       1500          0         30
  7900 JAMES      CLERK           7698 1981-12-03 00:00:00        950                    30
  7902 FORD       ANALYST         7566 1981-12-03 00:00:00       3000                    20
  

  EMPNO ENAME      JOB              MGR HIREDATE                   SAL       COMM     DEPTNO
  

  

  7934 MILLER     CLERK           7782 1982-01-23 00:00:00       1300                    10  

  12 rows selected.
  Elapsed: 00:00:00.15
  恢复
  scott@CLONEPDB_PLUGPDB> insert into emp (select * from emp as of scn 5409876);--也可以用时间
  12 rows created.
  Elapsed: 00:00:00.04
  scott@CLONEPDB_PLUGPDB> commit;
  Commit complete.
  Elapsed: 00:00:00.01
  scott@CLONEPDB_PLUGPDB> select count(*) from emp;

COUNT(*)
  

    12  

  局限:
  |    不能Falshback到5天以前的数据。
  |     闪回查询无法恢复到表结构改变之前,因为闪回查询使用的是当前的数据字典。
  |     受到undo_retention参数的影响,对于undo_retention之前的数据,Flashback不保证能Flashback成功。
  |      对drop,truncate等不记录回滚的操作,不能恢复。
  |      普通用户使用dbms_flashback包,必须通过管理员授权。
  2.Oracle Flashback Drop Table 闪回Drop掉表
  scott@clonepdb_plugPDB> show recyclebin
  scott@clonepdb_plugPDB> select * from test;
  no rows selected
  Elapsed: 00:00:00.00
  scott@clonepdb_plugPDB> drop table test;
  Table dropped.
  Elapsed: 00:00:00.06
  scott@clonepdb_plugPDB> show recyclebin
  ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
  TEST             BIN$lHb2N8coS86p8/1o8xr29A==$0 TABLE        2018-01-18:15:26:16
  scott@clonepdb_plugPDB> create table test as select * from emp where rownum select count(*) from test;

COUNT(*)
  

     1  

  Elapsed: 00:00:00.01
  scott@clonepdb_plugPDB> drop table test;
  Table dropped.
  Elapsed: 00:00:00.03
  scott@clonepdb_plugPDB> show recyclebin
  ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
  TEST             BIN$Kqeo3hZ/RA+w3PdIGKlt6Q==$0 TABLE        2018-01-18:15:27:11
  TEST             BIN$lHb2N8coS86p8/1o8xr29A==$0 TABLE        2018-01-18:15:26:16
  scott@clonepdb_plugPDB> flashback table test to before drop;
  Flashback complete.
  Elapsed: 00:00:00.06
  scott@clonepdb_plugPDB> select count(*) from test;

COUNT(*)
  

     1  

  Elapsed: 00:00:00.03
  scott@clonepdb_plugPDB> show recyclebin
  ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
  TEST             BIN$lHb2N8coS86p8/1o8xr29A==$0 TABLE        2018-01-18:15:26:16
  scott@clonepdb_plugPDB> drop table test;
  Table dropped.
  Elapsed: 00:00:00.04
  scott@clonepdb_plugPDB> show recyclebin
  ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
  TEST             BIN$WZphkGyLQjqqgTNlaFN6jA==$0 TABLE        2018-01-18:15:29:52
  TEST             BIN$lHb2N8coS86p8/1o8xr29A==$0 TABLE        2018-01-18:15:26:16
  scott@clonepdb_plugPDB> flashback table "BIN$WZphkGyLQjqqgTNlaFN6jA==$0" to before drop;
  Flashback complete.
  Elapsed: 00:00:00.02
  scott@clonepdb_plugPDB> select count(*) from test;

COUNT(*)
  

     1  

  Elapsed: 00:00:00.03
  scott@clonepdb_plugPDB> drop table test;
  Table dropped.
  Elapsed: 00:00:00.03
  scott@clonepdb_plugPDB> show recyclebin
  ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
  TEST             BIN$Avlh8rB/Q22J0WciRhx58g==$0 TABLE        2018-01-18:15:30:43
  TEST             BIN$lHb2N8coS86p8/1o8xr29A==$0 TABLE        2018-01-18:15:26:16
  scott@clonepdb_plugPDB> flashback table "BIN$lHb2N8coS86p8/1o8xr29A==$0" to before drop;
  Flashback complete.
  Elapsed: 00:00:00.02
  scott@clonepdb_plugPDB> show recyclebin
  ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
  TEST             BIN$Avlh8rB/Q22J0WciRhx58g==$0 TABLE        2018-01-18:15:30:43
  scott@clonepdb_plugPDB> select count(*) from test;

COUNT(*)
  

     0  

  scott@clonepdb_plugPDB> flashback table "BIN$Avlh8rB/Q22J0WciRhx58g==$0" to before drop rename to test_new;
  Flashback complete.
  Elapsed: 00:00:00.02

  scott@clonepdb_plugPDB> show recyclebinscott@clonepdb_plug%5BPDB%5D(10.8.5.204-12.2)>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-563643-1-1.html 上篇帖子: oracle-11g 数据库的安装 下篇帖子: Oracle Data Integrator Installation Guide-candon123
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表