当前位置:  数据库>oracle

Oracle 11g 闪回归档的简单测试

    来源: 互联网  发布时间:2017-06-22

    本文导语: Oracle 11g里面的新特性闪回归档,为历史数据的定制查询提供了一种可能。抽时间学习了一下这个特性,发现还是比较清晰易用。如果使用得当还是很不错的一个特性。 我们来简单模拟一个例子来看看。 首先需要创建独立的表...

Oracle 11g里面的新特性闪回归档,为历史数据的定制查询提供了一种可能。抽时间学习了一下这个特性,发现还是比较清晰易用。如果使用得当还是很不错的一个特性。
 我们来简单模拟一个例子来看看。
 首先需要创建独立的表空间,属性需要为segment space management auto,因为默认属性就是如此,所以我们简化语句。
SQL> create tablespace fbarch datafile'/U01/app/oracle/oradata/actvdb/fbarch.dbf' size 10M ;
 Tablespace created.
然后我们创建闪回数据归档区,可以指定多个表空间,也可以修改保留时长。
SQL> create flashback archive fda tablespace fbarch retention 1 month;
 Flashback archive created.
创建一个测试表
SQL> create table test_fbarch as select * from dba_objects;
 Table created.
然后修改表属性,指定闪回归档区,当然这个地方闪回数据归档区是不对应的。
SQL> alter table test_fbarch flashback archive fbarch;
 alter table test_fbarch flashback archive fbarch
 *
 ERROR at line 1:
 ORA-55605: Incorrect Flashback Archive is specified
我们删除原有的闪回数据归档区,重新创建一个。
SQL> drop flashback archive fda;
 Flashback archive dropped.
重新创建闪回数据归档区
SQL> create flashback archive fbarch tablespace fbarch retention 1 month;
 Flashback archive created.
然后再次修改表属性,指定为fbarch
 SQL> alter table test_fbarch flashback archive fbarch;
 Table altered.
通过闪回功能来查找以前的历史数据,可以基于时间戳或者基于SCN
 SQL> select dbms_flashback.get_system_change_number from dual;
 GET_SYSTEM_CHANGE_NUMBER
 ------------------------
                380440310
假设基于SCN查询
SQL> select count(*)from test_fbarch as of scn 380440310;
  COUNT(*)
 ----------
      86840
在此处,我们故意要刷新undo数据空间,而且要让数据的变化频率大大加快。
 使用下面的pl/sql来刷undo
 SQL> begin                 
  2  for i in 1 .. 100 loop
  3  update test_fbarch set object_id=object_id+1; 
  4  commit;
  5  end loop;
  6  end;
  7  /
当然这个时候,会不断在后台执行语句,刷新数据,当然原来的闪回数据归档区肯定是不够的。
 在alert日志中就会看到如下的报错。
Wed Apr 13 22:43:23 2016
 ORA-1688: unable to extend table CYDBA.SYS_FBA_HIST_239635 partition HIGH_PART by 1024 in                tablespace FBARCH
当然这个错误看起来还不是很清晰,我们来简单分析一下。
SQL> col segment_name format a30
 SQL> select segment_name,segment_type from user_segments;
 SEGMENT_NAME                  SEGMENT_TYPE
 ------------------------------ ------------------
 TEST_FBARCH                    TABLE
 SYS_FBA_DDL_COLMAP_239635      TABLE
 SYS_FBA_TCRV_239635            TABLE
 SYS_FBA_HIST_239635            TABLE PARTITION
 SYS_FBA_TCRV_IDX_239635        INDEX
可以看到多出了4个段对象,三个是后台数据表,一个是索引。
 通过字段的情况也可以猜出闪回归档的一些实现原理来。
SQL> desc SYS_FBA_TCRV_239635  --这个表记录的是在指定时间范围内,进行特定操作(OP)的记录。
 Name                                      Null?    Type
  ----------------------------------------- -------- ----------------------------
 RID                                                VARCHAR2(4000)
  STARTSCN                                          NUMBER
  ENDSCN                                            NUMBER
  XID                                                RAW(8)
  OP                                                VARCHAR2(1)

 SQL> desc SYS_FBA_HIST_239635  --这个表记录的是指定时间范围内,数据变化的明细情况,可以看到里面有原表的所有字段。
 Name                                      Null?    Type
  ----------------------------------------- -------- ----------------------------
 RID                                                VARCHAR2(4000)
  STARTSCN                                          NUMBER
  ENDSCN                                            NUMBER
  XID                                                RAW(8)
  OPERATION                                          VARCHAR2(1)
  OWNER                                              VARCHAR2(30)
  OBJECT_NAME                                        VARCHAR2(128)
  SUBOBJECT_NAME                                    VARCHAR2(30)
  OBJECT_ID                                          NUMBER
  DATA_OBJECT_ID                                    NUMBER
  OBJECT_TYPE                                        VARCHAR2(19)
  CREATED                                            DATE
  LAST_DDL_TIME                                      DATE
  TIMESTAMP                                          VARCHAR2(19)
  STATUS                                            VARCHAR2(7)
  TEMPORARY                                          VARCHAR2(1)
  GENERATED                                          VARCHAR2(1)
  SECONDARY                                          VARCHAR2(1)
  NAMESPACE                                          NUMBER
  EDITION_NAME                                      VARCHAR2(30)

 SQL> desc SYS_FBA_DDL_COLMAP_239635  --这个表记录的是在指定时间范围内的DDL相关记录。
 Name                                      Null?    Type
  ----------------------------------------- -------- ----------------------------
 STARTSCN                                          NUMBER
  ENDSCN                                            NUMBER
  XID                                                RAW(8)
  OPERATION                                          VARCHAR2(1)
  COLUMN_NAME                                        VARCHAR2(255)
  TYPE                                              VARCHAR2(255)
  HISTORICAL_COLUMN_NAME                            VARCHAR2(255)
当然对于闪回归档来说,DDL如果涉及表字段的drop操作,就会有限制,而对于添加字段的操作可以支持。
 而对于239635该怎么理解呢?我们来看看object_id
 SQL> select object_id,object_name from dba_objects where object_id=239635;
 OBJECT_ID OBJECT_NAME
 ---------- ------------------------------
    239635 TEST_FBARCH
这个时候查看后台进程,会发现闪回归档其实还有一个后台进程fbda
 SQL> !ps -ef|grep fb
 oracle  26606    1 59 22:38 ?        00:07:24 ora_fbda_actvdb
 oracle  26924 26849  0 22:51 pts/1    00:00:00 /bin/bash -c ps -ef|grep fb
 oracle  26926 26924  0 22:51 pts/1    00:00:00 grep fb


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • oracle 11g最新版官方下载地址
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍
  • Linux版本的Oracle 11g将首先被发布
  • 关于Linux下oracle是10g?还是11g?
  • Oracle 11g 相关工具netca,dbca乱码之解决
  • fedora10安装oracle11g提示物理内存不足怎么办?
  • Oracle 11g解锁scott
  • Oracle 11g R2 数据库将在9月发布
  • Oracle内存数据库11g和高速缓存11g上市
  • 有人在fedora 10下安装 oracle database 11g,没有呀?提供个安装步骤
  • 在ubuntu10.04上安装oracle11g失败
  • 关于Oracle 11g 闪回的一个小问题
  • Oracle11g备份和恢复功能的提高
  • linux redhat5.6安装oracle11g在自动创建实例时停住不动,有图
  • Oracle针对Eclipse 11g发布开发包
  • centos5.4安装oracle11g的问题
  • Oracle 11g 数据库 Alert日志的新发展
  • Redhat 6 安装 oracle 11g2的问题
  • 基于Linux环境的Oracle 11g数据库正式推出
  • Oracle 11G密码180天过期后的修改方法
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • 编程技术其它 iis7站长之家
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle 数据库开发工具 Oracle SQL Developer
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3