oracle--闪回摘要

1.数据闪回查询
select * from  jw_jh_zxjhkcb  as of timestamp to_timestamp('2018-06-01 08:45:00','yyyy-mm-dd hh24:mi:ss')
2 闪回已经删除的数据
alter table jw_cj_bkcxmdb_0228 enable row movement
flashback  table jw_cj_bkcxmdb_0228 to timestamp to_timestamp('2018-06-07 13:30:00','yyyy-mm-dd hh24:mi:ss')
3 闪回drop的表
flashback table jw_cj_bkcxmdb_0228 to before drop

SQL> flashback table emp to before
  如果要还原的表名在当前系统中已经被占用,也可以在闪回删除的时候对表重命名

SQL> flashback table emp to before drop rename to emp_new

 

闪回数据归档(Flashback Data Archive )

   功能描述:闪回数据归档可使表具有回退到过去任何时间点的能力,前面提到的闪回查询,闪回表都会受限于撤销数据是否失效,如果撤销数据被覆盖重写了,闪回操作自然会失败,闪回删除则受限于表空间是否有足够可用空间,而闪回数据归档,则没有这些限制。

   创建闪回归档

   1.创建一个用户闪回数据归档的表空间,当然,也可以使用已经存在的表空间。

    SQL> create tablespace test_tb datafile 'test.dbf' size 20m; 

   2.创建一个保留时间为2年的闪回归档

     SQL> create flashback archive test_fa tablespace test_tb retention 2 year;

   

    为scott用户下的emp表启用闪回归档

   1.赋予用户归档的权限

     SQL> grant flashback archive on test_fa to scott;

    2.连接用户

     SQL> conn scott/tiger;

    3.为emp表启用闪回归档

     SQL> alter table emp flashback archive test_fa;

  至此,emp表就拥有了可以查询或回退到过去2年任意时间点的能力!

   闪回数据库(Flashback Database)

   功能描述:闪回数据库可将整个数据库回退到过去某个时间点,闪回表是某张表的时空穿梭,闪回数据库则是整个数据库的时空穿梭。当然,闪回点之后的所有工作就丢失了,其实就相当于数据库的不完整恢复,所以只能以resetlogs模式打开数据库。闪回数据库会造成停机时间,当然相比于传统备份恢复机制,恢复过程会快很多。

   工作原理:闪回数据库不使用撤销数据,使用另外一种机制来保留回退所需要的恢复数据,当启用闪回数据库,发生变化的数据块会不断从数据库缓冲区缓存中复制到闪回缓冲区,然后,称为恢复写入器(Recovery Writer)的后台进程会将这些数据刷新到磁盘中的闪回日志文件中。闪回的过程,则是一个 提取闪回日志-->将块映像复制回数据文件 的过程。

   配置闪回数据库(闪回数据库要求数据库为归档模式)

    1.指定闪回恢复区,也就是存放闪回日志的位置,但闪回恢复区不仅仅是为了存放闪回日志,Oracle的很多备份恢复技术都用到这个区域,比如控制文件的自动备份等都会存放到此区域。

   SQL> alter system set db_recovery_file_dest ='/flash_recovery_area';

     2.指定恢复区大小

   SQL> alter system set db_recovery_file_dest_size=4G; 

    3.指定闪回日志保留时间为2小时,即通过闪回操作,可以将数据库回退到前两小时内的任意时间点

   SQL> alter system set db_flashback_retention_target=120; 

    4.有序关闭数据库--mount模式下启用闪回数据库--打开数据库

复制代码
   SQL> shutdown immediate;

   SQL> startup mount;    SQL> alter database flashback on;    SQL> alter database open;
复制代码

  至此,闪回数据库配置完成!

  

   使用闪回数据库功能

复制代码
   SQL> shutdown immediate;

   SQL> startup mount;

   SQL> flashback database to timestamp sysdate-60/1440;

   SQL> alter database open resetlogs;

 

posted @ 2018-06-07 14:45  老街巷口熟睡的猫  阅读(238)  评论(0编辑  收藏  举报