暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oracle闪回flashback

程序碎碎念 2021-10-15
475

说明:目前了解到oracle的flashback包含flashback database、flashback tablespace、flashback table,当然也还可以闪回其他对象,只是目前没有用到

1.闪回表flashback table

作用:恢复表数据
※:flashback table是基于回收站recyclebin的,如果情况了回收站(PURGE RECYCLEBIN或PURGE TABLE xxx),便无法恢复,恢复的前提是回收站仍然存在该表
使用语句:

    FLASHBACK TABLE xxxx TO BEFORE DROP;
    #闪回表
    select * from xxxx as of TIMESTAMP
    TO_TIMESTAMP('xxxx-xx-dd xx:xx:xx', 'YYYY-MM-DD HH:MI:SS')
    #闪回查询
    复制

    2.闪回表空间flashback tablespace

    作用:恢复表空间,也影响是否闪回数据库失败
    ※:ORACLE新建表空间时默认开启闪回表空间,它的开启与否会影响flashback log是否会记录此tablespace的变更历史,而拥有从历史上某段时间到当前时间的连续flashback log 和redo log是flashback database的前提。
    如果需要打开或关闭,需要在mount状态下执行

      alter tablespace xxx flashback on
      #或者
      alter tablespace xxx flashback off
      复制

      3.闪回数据库flashback database

      作用:能够恢复整个数据库(flashback log和redo log不全会有风险)
      ※:并不能闪回到任意时间点,可以恢复的区间是:数据库有完整flashback log(即所有的tablespace都有flashback log)的最早时间到当前时间,这个时间flashback log 和redo log的不能出现中断。
      ※:一旦执行了一次flashback database后,必须使用resetlogs来open 数据库,此时flashback log和redo log发生中断,此前的日志会全部作废,对介质恢复也有影响。

        select flashback_on from  v$database
        oracle默认是不开启的。如果需要打开或关闭,
        需要在mount状态下使用下面的命令:


        alter database flashback on
        #或者
        alter database flashback off
        复制

        flashback database之所以能恢复是通过flashback log和redo log来实现,所以要求redo log 必须是archive mode。当在非archive mode下,打开flashback database时,会报出错误:

          ORA-38706: Cannot turn on FLASHBACK DATABASE logging.  
          #无法创建用来flashback database 的flashback log
          ORA-38707: Media recovery is not enabled.
          #介质恢复功能关闭,而介质恢复用的就是redo log
          其想表达的是redo log没有打开。
          复制
            查看redo log的归档模式,执行:archive log list(mount或open状态);
            修改redo log的归档模式,在mount状态下,执行:


            alter database archivelog; #开启
            alter database noarchivelog; #关闭


            闪回数据库:


            flashback database to scn xxx;
            #或者
            flashback database to timestamp xxx;
            复制


            文章转载自程序碎碎念,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

            评论