Oracle 10g闪回技术

一、Flashback Database

1、  架构及实现原理

Flashback DatabaseRVWR进程和Flashback Database日志组成。当Flashback Database被启用时,RVWR进程会将数据库的修改写入Flashback Database log中,恢复时读取Flashback Database logs中信息进行恢复。

Flashback Database使用RMAN CONFIGURE RETENTION POLICY命令设置Flashback Database logs的保存策略。当flash recovery area空间使用了90%95%时数据库会向alter.log文件中写入warning。到使用90%的空间时,Oracle会自动删除flash recovery area中的文件。

2、  限制条件

n         Media failure不能使用Flashback Database

n         datafile被大小改变或这被shrink后,不能使用Flashback Database进行还原

n         control file被重建或restore后,不能进行flashback database

n         删除一个表空间后,不能使用restlogs

3、  启用方法

把数据库置为ARCHIVE LOG模式

SQL> connect / as sysdba

SQL> startup mount

SQL> alter db_flashback_retention_target=4320;----设置可以进行多久的闪回(分钟)

SQL> alter database flashback on;

SQL> alter database open;

4、  配置闪回区域

SQL> alter system set db_recovery_file_dest_size=10M scope=both;

SQL> alter system set db_recovery_file_dest=’ C:/oracle/flash_recovery_area/ora101t’;

5、  备份Flashback Recovery Area

RMAN> backup recovery area;

RMAN> backup recovery files;

6、  相关视图

V$FLASHBACK_DATABASE_LOG:可以用来查询OLDEST_FLASHBACK_SCN

V$FLASHBACK_DATABASE_STAT:查询每次闪回操作的信息

二、其他闪回功能

包括Flashback Drop, Flashback Versions Query, Flashback Transaction Query,

Flashback Table,这些都是利用Undo data进行闪回的

a)         Flashback Drop

Oracle 10g中,删除一个table后,会将数据放在Recycle Bin中,而不是直接删除。

n         语法

FLASHBACK TABLE table_name TO BEFORE DROP

b)        Recycle Bin

n         show recyclebin:显示回收站中的内容

n         内容查询

       SQL> select object_name as recycle_name, original_name, object_name from recyclebin;

n         对闪回表进行重命名

       SQL> flashback table  "BIN$0ZVR8eDEQbK4s8G2Csf2kg==$0" to before drop

rename to t2;

n         彻底删除

PURGE TABLE original_table_name;

PURGE TABLE recycle_bin_object_name;

n         彻底删除回收站中特定表空间中的特定用户创建的对象

PURGE TABLESPACE tablespace USER user

SQL> purge tablespace users user test;

n         清空回收站

PURGE RECYCLEBIN;

PURGE DBA_RECYCLEBIN;

c)        Flashback Versions Query

n         只能查询已经提交的数据

SQL> select salary from t1

  2  versions between

  3  scn minvalue and maxvalue

  4  where employee = 'JONES';

SQL> select salary from t1

2         versions between timestamp

  3  to_timestamp('2004-10-26 11:37:01','YYYY-MM-DD HH:MI:SS') and

  4  to_timestamp('2004-10-26 11:43:01','YYYY-MM-DD HH:MI:SS')

  5  where employee = 'JONES';

n         伪列

VERSIONS_STARTTIME

VERSIONS_STARTSCN

VERSIONS_ENDTIME

VERSIONS_ENDSCN

VERSIONS_XID

VERSIONS_OPERATION

select to_char(versions_starttime,'DD-MON HH:MI') "START DATE",

         to_char (versions_endtime, 'DD-MON HH:MI') "END DATE",

         versions_xid,

         versions_operation,

         employee,

         salary

         from test.t1

         versions between scn

         minvalue and maxvalue

         where employee = 'JONES'

d)        Flashback Transaction Query

可以查询已提交和未提交的数据

SQL> select table_name, operation, undo_sql

  2  from flashback_transaction_query

  3  where start_timestamp >= to_timestamp ('2004-10-26 06:45:00',

  'YYYY-MM-DDHH:MI:SS')

  4  and table_owner = 'TEST';

e)         Flashback Table

SQL> alter table t1 enable row movement;

SQL> flashback table t1 to scn 771511;

闪回的同时,启用被删除的trigger

SQL> flashback table table_name to scn 771551 enable triggers;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值