Bo's Oracle Station

查看: 1938|回复: 0

闪回数据归档的维护

[复制链接]

1005

主题

1469

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12012
发表于 2021-1-31 21:59:21 | 显示全部楼层 |阅读模式
创建闪回数据归档:
  1. create tablespace tbsfda datafile '+data'  size 30M ;
复制代码
  1. create flashback archive fda1 tablespace tbsfda quota 10M retention 30 day;
复制代码
  1. grant flashback archive on fda1 to hr;
复制代码

HR使用闪回数据归档:
  1. alter table t063br14_fda2  flashback archive  fda1  ;
复制代码
-----:

  1. select * from dba_flashback_archive;

  2. select  * from dba_flashback_archive_ts;

  3. select  * from dba_flashback_archive_tables;
复制代码
等待一段时间:

  1. select  * from hr.SYS_FBA_HIST_93080;
复制代码

改动整个闪回数据归档的retention:
  1. alter flashback archive fda1 modify  retention  60 day;
复制代码
改动闪回数据归档表空间上的磁盘限额:
  1. alter flashback archive fda1 modify   tablespace tbsfda    quota 20M;  
复制代码
添加新的闪回数据归档表空间:
  1. create tablespace tbsfda2  datafile '+DATA' size 30 M ;
  2. alter flashback archive fda1 add tablespace tbsfda2 quota 20M ;
复制代码
强制清理闪回数据归档:
  1. alter flashback archive fda1 purge  before  timestamp   (systimestamp - 1/1440);
复制代码

全局方案进化:
  1. begin
  2.      dbms_flashback_archive.DISASSOCIATE_FBA('HR','T063BR14_FDA');  
  3.      end;
  4. /

  5. update hr.SYS_FBA_HIST_93072  set a=100 where a=1;

  6. commit;

  7. begin
  8.      dbms_flashback_archive.reASSOCIATE_FBA('HR','T063BR14_FDA');  
  9.      end;
  10. /
复制代码
  1. QL> select * from t063br14_fda  as of scn 8139263;

  2.          A
  3. ----------
  4.        100
复制代码
全局方案进化2:
  1. create table part1 ( a  number )
  2. partition by range(a)
  3. ( partition p1  values less than ( 100),
  4.   partition p2 values less than ( maxvalue) ) ;
  5.   
  6.   insert into  part1  values ( 100 ) ;
  7.   
  8.    insert into  part1  values ( 99) ;
  9.    
  10.    commit;
  11.    
  12.    
  13.    select  * from part1 partition( p2);
  14.    
  15.    alter table part1  flashback archive fda1;
  16.    
  17.    alter table part1 split partition p2 at ( 200) into ( partition p21 , partition p22);
复制代码

Error starting at line 17 in command:
alter table part1 split partition p2 at ( 200) into ( partition p21 , partition p22)
Error report:
SQL Error: ORA-55610: Invalid DDL statement on history-tracked table

  1. begin
  2.      dbms_flashback_archive.DISASSOCIATE_FBA('HR','PART1');  
  3.      end;
  4. /

  5. alter table hr.part1 split partition p2 at ( 200) into ( partition p21 , partition p22);

  6. ------

  7. begin
  8.      dbms_flashback_archive.reASSOCIATE_FBA('HR','PART1');  
  9.      end;
  10. /
复制代码
删除带有闪回数据归档的表会报错的:
  1. drop table hr.t063br14_fda;
复制代码
drop table hr.t063br14_fda
Error report:
SQL Error: ORA-55610: Invalid DDL statement on history-tracked table

如果要删除,去掉闪回数据归档:
  1. SQL> conn hr/oracle_4U
  2. Connected.
  3. SQL> alter table t063br14_fda no flashback archive;
  4. alter table t063br14_fda no flashback archive
  5. *
  6. ERROR at line 1:
  7. ORA-55620: 无权使用闪回归档
复制代码
SYS:
  1.   alter table hr.t063br14_fda no flashback archive;
复制代码
闪回数据归档空间使用:
  1.   select  sum(bytes)/1024/1024  from dba_segments where segment_name in
  2.    ( select  table_name  from dba_flashback_archive_tables where flashback_archive_name='FDA1')  ;
  3.   
复制代码

闪回数据归档满了:
  1. begin
  2.       for i in 1..10000
  3.       loop
  4.         update t063br14_fda3  set a=to_char(i) ;
  5.         commit;
  6.      end loop;
  7.     end;
  8.     /
复制代码


ORA-55617: Flashback Archive "FDA1" runs out of space and tracking on "T063BR14_FDA3" is suspended
ORA-06512: at line 4


  1.   alter flashback archive fda1 set default;
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Bo's Oracle Station   

GMT+8, 2024-4-27 20:25 , Processed in 0.032494 second(s), 24 queries .

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