ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 11G新特性:FLASHBACK ARCHIVE - 01

11G新特性:FLASHBACK ARCHIVE - 01

原创 Linux操作系统 作者:liglewang 时间:2011-11-12 14:22:59 0 删除 编辑

 

闪回数据归档(FLASHBACK ARCHIVE)与UNDO表空间是没有任何关系的,并且与flashback logs(开启数据库闪回生成的日志)也无关。

闪回数据归档需要单独为其创建相应的表空间(falshback tablespace)用于保存对指定表修改的历史数据。

下面演示针对DML操作的闪回查询

创建FLASHBACK ARCHIVE

SQL> create flashback archive default tbs_archive01
  2  tablespace  tbs_ht02
  3  retention 1 day;
Flashback archive created.

查询ligle.t01表数据

SQL> col owner for a10
SQL> col object_name for a20
SQL> col object_type for a20
SQL> select owner,object_id,object_name,object_type from ligle.t01 where wner='SCOTT'
OWNER       OBJECT_ID OBJECT_NAME          OBJECT_TYPE
---------- ---------- --------------------
-------------------
SCOTT           75334 PK_DEPT              INDEX
SCOTT           75333 DEPT                 TABLE
SCOTT           75335 EMP                  TABLE
SCOTT           75336 PK_EMP               INDEX
SCOTT           75337 BONUS                TABLE
SCOTT           75338 SALGRADE             TABLE
删除一条数据

SQL> delete from t01 where object_id=75334;
1 row deleted.
SQL> commit;
Commit complete.

再次查询ligle.t01表数据

SQL> select owner,object_id,object_name,object_type from ligle.t01 where wner='SCOTT';
OWNER       OBJECT_ID OBJECT_NAME          OBJECT_TYPE
---------- ---------- -------------------- --------------------
SCOTT           75333 DEPT                 TABLE
SCOTT           75335 EMP                  TABLE
SCOTT           75336 PK_EMP               INDEX
SCOTT           75337 BONUS                TABLE
SCOTT           75338 SALGRADE             TABLE

可以发现OBJECT_ID为75334的数据已被删除。

通过FLASHBACK ARCHIVE查询过去某时刻该表的数据:

SQL> select owner,object_id,object_name,object_type from t01 as of timestamp (systimestamp-interval  '10' minute) where wner='SCOTT';
OWNER       OBJECT_ID OBJECT_NAME          OBJECT_TYPE
---------- ---------- -------------------- --------------------
SCOTT           75334 PK_DEPT              INDEX
SCOTT           75333 DEPT                 TABLE
SCOTT           75335 EMP                  TABLE
SCOTT           75336 PK_EMP               INDEX
SCOTT           75337 BONUS                TABLE
SCOTT           75338 SALGRADE             TABLE
6 rows selected.

我们知道,在Oracle 11g以前,通过闪回查询也可以查出过去某时刻的数据状态(该方法的前提是UNDO表空间必须还存在该表被修改时的undo数据,否则将会报ORA-01555),那么比较细心的朋友会发现,在上面的闪回归档查询中是不是也是用的UNDO数据呢?

可以通过切换当前的undo表空间来实验下:

SQL> conn /as sysdba
SQL> create undo tablespace UNDOTBS2 datafile '/soft/oradata/horizon/undotbs02.dbf' size 10M;
SQL> alter system set undo_tablespace='UNDOTBS2';
SQL> conn ligle/ligle

Connected.
SQL> select owner,object_id,object_name,object_type from t01 as of timestamp (systimestamp-interval  '20' minute) where wner='SCOTT';
OWNER       OBJECT_ID OBJECT_NAME          OBJECT_TYPE
---------- ---------- -------------------- --------------------
SCOTT           75334 PK_DEPT              INDEX
SCOTT           75333 DEPT                 TABLE
SCOTT           75335 EMP                  TABLE
SCOTT           75336 PK_EMP               INDEX
SCOTT           75337 BONUS                TABLE
SCOTT           75338 SALGRADE             TABLE

至此,可以明白,在当前UNDO表空间已被切换的情况下,依然可以查询到过去某时刻的表数据状态,所以可以证明FLASHBACK ARCHIVE与UNDO表空间是没有关系的。

通过FLASHBACK ARCHIVE恢复表数据到某时刻:

SQL> alter table t01 enable row movement;
Table altered.
SQL>  flashback table t01 to timestamp (systimestamp - interval '40' minute);
Flashback complete.
SQL> select owner,object_id,object_name,object_type from t01 where wner='SCOTT';
OWNER       OBJECT_ID OBJECT_NAME          OBJECT_TYPE
---------- ---------- -------------------- --------------------
SCOTT           75333 DEPT                 TABLE
SCOTT           75335 EMP                  TABLE
SCOTT           75336 PK_EMP               INDEX
SCOTT           75337 BONUS                TABLE
SCOTT           75338 SALGRADE             TABLE
SCOTT           75334 PK_DEPT              INDEX
6 rows selected.

通过创建FLASHBACK ARCHIVE表空间来存储指定表的变更历史数据,避免了对UNDO表空间的过度依赖。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25834554/viewspace-710834/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-09-02

  • 博文量
    52
  • 访问量
    320720