创建闪回数据归档

来源:互联网 发布:淘宝5元包邮 编辑:程序博客网 时间:2024/05/22 01:42

创建闪回数据归档:
(1)创建一个供闪回数据归档使用的表空间:
SQL> create tablespace fda datafile 'd:\data\fda1.dbf' size 10m;

表空间已创建。
(2)在表空间创建一个保留时间为1年的闪回数据归档
SQL> create flashback archive flal tablespace fda retention 1 year;

闪回档案已创建。
(3)创建用于此练习的模式,并授予它DBA角色:
SQL> grant dba to fbdauser identified by fbdauser;

授权成功。
(4)授予用户操作归档的必要权限:
SQL> grant flashback archive on flal to fbdauser;

授权成功。
(5)作为fbdauser进行连接。创建一个表并为此表启用闪回数据归档:
SQL> conn fbdauser/fbdauser
已连接。
SQL> create table t1 as select * from all_users;

表已创建。

SQL> alter table t1 flashback archive flal;

表已更改。
(6)运行这些查询来确定归档创建的对象。
SQL> select object_name,object_type from user_objects;

OBJECT_NAME
----------------------------------------------------------

OBJECT_TYPE
-------------------
T1
TABLE
SQL> select segment_name,segment_type from dba_segments
  2  where tablespace_name='FDA';

SEGMENT_NAME
----------------------------------------------------------

SEGMENT_TYPE
------------------
T1
TABLE
(7)对保护的表执行DMl:
SQL> delete from t1;

已删除39行。

SQL> commit;

提交完成。
(8)使用标准的闪回查询语法对保护的表执行闪回查询,然后查询归档中的历史表。
SQL> select count(*) from t1;

  COUNT(*)
----------
         0

SQL> select count(*) from t1 as of timestamp(sysdate-5/1440);

  COUNT(*)
----------
        39
(9)对保护的表执行一些DDL命令:
SQL> alter table t1 drop column created;

表已更改。

SQL> truncate table t1;

表被截断。

SQL> drop table t1;

表已删除。
作为sysdba连接,并尝试执行如下命令:
SQL> drop user fbdauser cascade;
drop user fbdauser cascade
*
第 1 行出现错误:
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-55622: 不允许对表 "FBDAUSER"."SYS_FBA_TCRV_75396" 执行 DML, ALTER 和 CREATE
UNIQUE INDEX 操作


SQL> drop tablespace fda including contents and datafiles;
drop tablespace fda including contents and datafiles
*
第 1 行出现错误:
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-55622: 不允许对表 "FBDAUSER"."SYS_FBA_TCRV_75396" 执行 DML, ALTER 和 CREATE
UNIQUE INDEX 操作
(10)删除表的除归档保护
SQL> alter table fbdauser.t1 no flashback archive;

表已更改。
(11)删除闪回数据归档
SQL> drop flashback archive flal;

闪回档案已删除。
(12)重新运行步骤9的命令
SQL> alter table t1 drop column created;

表已更改。

SQL> truncate table t1;

表被截断。
SQL> drop user fbdauser cascade;

用户已删除。
SQL> drop tablespace fda including contents and datafiles;

表空间已删除。

原创粉丝点击