oracle10g/11g 新特性二(Flashback Database)

Flashback Technology


Flashback Database Architecture


配置flashback database 条件

1.数据库必须启用归档模式

2.数据库必须启用闪回模式

3.闪回写进程后台进程(fvwr)必须启动


1.使数据库处于归档模式
2.启用闪回模式
  shutdown
  startup mount;
  alter database flashback on;
  alter database open;
3.配置闪回写进程后台进程(fvwr)的步骤
  配置闪回日志目录     /u01/app/oracle/flash_recovery_area/KING/flashback
  配置闪回日志保存时间
  DB_FLASHBACK_PETENTION_TARGET

Configuring Flashback Database


Flashback Database :Examples

shutdown 
startup mount
flashback database to timestamp (sysdate-1/24)
alter database open resetlogs

FLASHBACK DATABASE TO TIMESTAMP to_TIMESTAMP('2010-11-28:16:08:44','yyyy-mm-dd:hh24:mi:ss')


Flashback Database Considerations

1.先用read-only方式打开数据库 确认数据

2.用RESETLOGS 打开数据库

3.以下方式不能使用闪回: a.控制文件被重新创建或被修复

                                           b.表空间被删除

                                           c.数据文件被reduce size


Monitoring Flashback Database

SQL> select ESTIMATED_FLASHBACK_SIZE, flashback_size from v$flashback_database_log;                                          

ESTIMATED_FLASHBACK_SIZE FLASHBACK_SIZE
------------------------ --------------
                       0       16384000
					   
SQL> select oldest_flashback_scn,oldest_flashback_time from v$flashback_database_log;                                        

OLDEST_FLASHBACK_SCN OLDEST_FL
-------------------- ---------
             1104524 01-MAY-15
			 
SQL> select * from v$FLASHBACK_DATABASE_STAT;  
			 
SQL> select file_type, percent_space_used as ued, percent_space_reclaimable as reclaimable,number_of_files as number1 from v$flash_recovery_area_usage;

FILE_TYPE           UED RECLAIMABLE    NUMBER1
------------ ---------- ----------- ----------
CONTROLFILE           0           0          0
ONLINELOG             0           0          0
ARCHIVELOG            0           0          0
BACKUPPIECE        2.08           0          6
IMAGECOPY             0           0          0
FLASHBACKLOG       1.14         .76          3



Flash Recovery Area Space Usage

虽然我们设置了 闪回的时间窗口,但是当系统空间严重不足的时候, flashback log也会被删除

和恢复相关的文件 占多少空间


Restore Points

Create restore point before_upgrade GUARANTEE FLASHBACK DATABASE;

版本必须是 10.2或者10.2以后 


Oracle Total Recall (11G的功能)

1.可以设置表级别的保存期,一般表默认是不产生闪回数据归档区 要配置

2.保存期到了 闪回数据归档区 自动清除

3.用以下句子来查询历史

   select ... as of timestamp...

   select ...versions between timestamp and timestamp..

How Total Recall Works

闪回数据归档 自动分区存储,一般一天一个分区,每一个的磁盘都是1M


Setup Process




练习1:

建表空间
create tablespace fbda_tbs datafile '/xxxxxx/xxx/fdba_tabs.dbf'  size 40M
创建一个管理员
create user fbda_admin identified by fdba_admin default tablespace fdba_tabs;
授权: 
grant flashback archive administer to fdba_admin;
grant connect, resource to fdba_admin;
创建一个一般用户 
create user test identified by test default tablespace fdba_tabs;
grant flashback any table to test; 
grant execute on dbms_flashback to test;
grant connect, resource to test;
以fdba_admin登录
conn fdba_admin/fdba_admin
//创建归档区
create falshback archive   fbda_area1 tablespace fdba_tbs quota 10M retention 10 day;
create falshback archive   fbda_area2 tablespace fdba_tbs quota 10M retention 1 year;
grant falshback archive on fbda_area1 to test;

以test登录, 做DML 然后提交事务,然后闪回查询,这个时候是可以查询的
以sys登录, 建一个undo表空间,把这个表空间设置为系统默认的,然后把原来的undo
表空间删掉,
以test登录, 重新查询闪回插叙,报 flash太旧的错误

以test登录,启用emp表的flashback archive 功能
alter table emp flashback archive fbda_area1;
往emp中添两条数据
然后删除UNDO  然后 在执行闪回查询 ,结果仍然可以查询


维护闪回归档



Restrictions

1.you cannot enable Total Recall for base tables with Hybrid Columnar compression

2.if disassociate is used, immutability of history is no longer  guaranteed(but you could aways purge history previously anyway with the right privilege)

3.There is no transportability of histor tables;


Guidelines

Use SCN for precise queries

Use Flashback technology for your convenience

Flashback uses current system settings

Ensure database consistency with a COMMIT or ROOLBACK operation before querying past data

you cannot retrieve past data from dynamic performance view, They contain current data

However you can perform queries on past data in static data dictionary views such as *_TABLES


Flashback Drop and the Recycle Bin

RECYCLEBIN 默认是on;

查询DBA_FREE_SPACE时候:被重新命名的表  计算在空闲空间内

被重新命名的表可以在tab表里查到 select * from tab;

show recyclebin:在回收站里的表 已经对应的重命名的表

select *from  user_recyclebin;

索引,约束,触发器也一样,当我们用闪回技术 闪回回来, 名字都是在回收站里的名字

如果回收站有表的多个版本, 则 从最近的一个回复  last in , first out

flashback table <table_name> to before drop rename to <new_name>  //如果一个表没有被删除,但是想要回收站里的内容来覆盖,直接回闪 就会报 对象已经存在,也可以通过这个方式来解决

purge user_recyclebin;  //清空当前用户回收站

purge dba_recyclebin;//清空回收站的所有内容

如果空间不够,回收站空间也会被自动释放。


Manual Space Reclamation

[]里的内容如果加了 ,会把回收站的相关内容也一起删掉

Query  the Recyle Bin




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值