Oracle 11g闪回归档技术

闪回数据归档

使用闪回数据归档功能可以自动跟踪和归档启用了闪回数据归档的表中的数据。这可确保闪回查询能够获得对数据库对象版本的

SQL 级别访问权限,而不会出现快照太旧的错误。

利用闪回数据归档功能,可以在“跟踪的”表的整个生命期内跟踪并存储对该表的所有事务处理更改。不再需要将此智能功能内

置到应用程序中。闪回数据归档功能对于遵守规定、审计报告、数据分析和决策支持系统非常有用。闪回数据归档后台进程随数

据库一起启动。

闪回数据归档包含一个或多个表空间。可以拥有多个闪回数据归档,它们都配置有保留时间。您应根据保留时间的要求创建不同

的闪回数据归档,例如,为必须保留两年的所有记录创建一个闪回数据归档,为必须保留五年的所有记录创建另一个闪回数据归

档。数据库将在保留期到期后的第一天自动清除所有历史记录信息。

闪回数据归档的过程:

1.创建闪回数据归档。

2.指定默认闪回数据归档。

3.启用闪回数据归档。

4.查看闪回数据归档数据。

-- create the Flashback Data Archive

CREATE FLASHBACK ARCHIVE DEFAULT fla1  TABLESPACE tbs1 QUOTA 10G RETENTION 5 YEAR;

-- Specify the default Flashback Data Archive

ALTER FLASHBACK ARCHIVE fla1 SET DEFAULT;

-- Enable Flashback Data Archive

ALTER TABLE inventory FLASHBACK ARCHIVE;

ALTER TABLE stock_data FLASHBACK ARCHIVE;

SELECT product_number ,product_name ,count

FROM inventory

AS OF TIMESTAMP TO_TIMESTAMP (‘2007-01-01 00:00:00‘ ,‘YYYY-MM-DD HH24:MI:SS‘);

可以选择增加空间:

ALTER FLASHBACK ARCHIVE fla1

ADD TABLESPACE tbs3 QUOTA 5G;

可以选择更改保留时间:

ALTER FLASHBACK ARCHIVE fla1 MODIFY RETENTION 2 YEAR;

可以选择清除数据:

ALTER FLASHBACK ARCHIVE fla1 PURGE BEFORE TIMESTAMP (SYSTIMESTAMP - INTERVAL ‘1‘ day);

可以选择删除闪回数据归档:

DROP FLASHBACK ARCHIVE fla1;

查看闪回数据归档 :

视图名称 (DBA/USER)          说明

*_FLASHBACK_ARCHIVE          显示有关闪回数据归档的信息

*_FLASHBACK_ARCHIVE_TS          显示闪回数据归档的表空间

*_FLASHBACK_ARCHIVE_TABLES  显示有关启用了闪回归档的表的信息

可使用动态数据字典视图查看跟踪的表和闪回数据归档元数据。要访问 USER_FLASHBACK_* 视图,必须拥有表的所有权。要检查

DBA_FLASHBACK_* 视图,您需要 SYSDBA 权限。

闪回数据归档的 DDL 限制 :

对启用了闪回数据归档的表执行以下任一 DDL 语句都会产生 ORA-55610 错误:

1.执行以下操作的 ALTER TABLE 语句:

--删除、重命名或修改某一列

--执行分区或子分区操作

--将 LONG 列转换为 LOB 列

--包括 UPGRADE TABLE 子句,带有或不带 INCLUDING DATA 子句

2.DROP TABLE 语句

3.RENAME TABLE 语句

4.TRUNCATE TABLE 语句

实验:闪回归档

1.创建测试数据:

create tablespace arch_tbs datafile ‘/u01/app/oracle/oradata/PROD/arch_tbs.dbf‘ size 100m autoextend on

maxsize 1G;

2.创建测试用户并授权:

create user archive_admin identified by archive_admin default tablespace arch_tbs;

grant dba,flashback archive administer to archive_admin;

3.创建闪回归档(设置默认的闪回归档时,需要使用sys用户)

conn archive_admin/archive_admin

create flashback archive fda1 tablespace arch_tbs quota 10m retention 1 year;

alter flashback archive fdb1 set default;

--sys用户下

create flashback archive default fda1 tablespace arch_tbs quota 10m retention 1 year;

--或者直接设置默认闪回归档(sys用户下)

4.设置表的闪回归档

alter table test_user1.emp flashback archive;

5.验证

conn test_user1/test

desc dba_flashback_archive_tables;

select table_name,archive_table_name from dba_flashback_archive_tables;

--查看与当前设置闪回归档相关的历史跟踪表

select owner,table_name,tablespace_name from dba_tables where table_name=‘SYS_FBA_HIST_88707‘;

--确定历史表的名称,所有者,及位置

在emp表上插入,更新以及删除操作,然后查看历史跟踪表内容:

select * from emp;

[email protected]>begin

2  for i in 5..10

3  loop

4  insert into emp values (i,‘TEST‘,sysdate+i);

5  end loop;

6  end;

7  /

PL/SQL procedure successfully completed.

delete from emp ...

update emp ...

select * from sys_fba_hist_88707;

select count(*) from sys_fba_hist_88707;

--查看历史跟踪表内容;

DDL操作(在不该表原始数据时,可以使用ddl语句)

alter table emp add dd number;

select count(*) from sys_fba_hist_88707;

alter table emp modify name varchar2(30);

6.关闭闪回归档

conn archive_admin/archive_admin

alter table test_user1.emp no flashback  archive;

drop table test_user1.emp;

desc dbms_flashback_archive;

7.解除和重建表与历史跟踪表的关联关系(和步骤6相互独立)

exec dbms_flashback_archive.disassociate_fba(‘TEST_TSER1‘,‘EMP‘);

exec dbms_flashback_archive.reassociate_fba(‘TEST_TSER1‘,‘EMP‘);

--当某些DDL语句无法执行时,就需要取消和重建;

8.闪回归档

select * from test_user1.emp as of timestamp(timestamp - interval ‘20‘ minute);

时间: 2024-07-31 19:47:59

Oracle 11g闪回归档技术的相关文章

oracle 11g 闪回测试过程

SQL> select flashback_on from v$database; FLASHBACK_ON ------------------------------------------------------ YES SQL> set linesize 3000; SQL> select * from scott.dept; DEPTNO DNAME LOC ---------- ------------------------------------------ ------

Oracle 六大闪回技术,flashback

Flashback 技术是以Undo segment中的内容为基础的, 因此受限于UNDO_RETENTON参数. 要使用flashback 的特性,必须启用自动撤销管理表空间. 在Oracle 11g里又出了一个新特性:Oracle Flashback Data Archive. FDA通过将变化数据另外存储到创建的闪回归档区(Flashback Archive)中,以和undo区别开来, 这样就可以为闪回归档区单独设置存储策略,使之可以闪回到指定时间之前的旧数据而不影响undo策略. 在Or

闪回归档(11G新功能)远离ORA-01555错误

 1.1.1.1   闪回归档 前面闪回都是基于undo来实现的闪回,由于我们的闪回都是不确定时间的,所以就会导致ORA-01555(快照太旧或者被覆盖).ORA-01466(表定义被改).ORA-08180(没有快照)等错误. 1.1.1.1.1      创建表空间,默认大小500M SQL> CREATE TABLESPACEhis_data_1 datafile '+DATA' size 500m; Tablespacecreated. 1.1.1.1.2      创建默认闪回归档

oracle的闪回

本文前半部分是一个plsql程序,程序实现了对不同职位的员工加薪,更改了数据库的数据.并且commit了事务;后半分结合前面的例子介绍了对oracle中的数据恢复,即如何撤销这个已经commit过的操作.,也由于本人技术水平和表达能力有限,对于概念性的部分和总结引自摘自: http://www.cnblogs.com/chengxiao/p/5860823.html,如果想更详细的了解oracle中的闪回机制可以访问该地址的博文,本文是重点是实例演示 一.首先需求是在emp表中实现: 给员工涨工

Oracle Flashback闪回恢复管理_超越OCP精通Oracle视频课程培训20

oracle视频教程目标 Oracle视频教程,风哥本套oracle教程培训学习oracle数据库关于Flashback概念,Flashback参数设置与归档模式,Flashback恢复案例-Flashback database,Flashback DROP,Flashback Query,Flashback version Query,Flashback Transaction Query,Flashback Table,Flashback Data Archive等常用技术. 适用人群 IT

Oracle Flashback 闪回

Oracle 的闪回技术是一种数据恢复技术,仅能对用户逻辑错误进行恢复, 闪回针对的是提交commit的事务,没有提交的事务,使用rollback 1.闪回版本查询 Flashback Version Query 所谓版本指的是每次事务所引起的数据行的变化情况,每一次变化就是一个版本. Oracle 提供了闪回版本查询,让我们可以看到数据行的整个变化过程.变化指的是已经提 交的事务引起的变化,没有提交的事务引起的变化不会显示. 闪回版本查询语法 基于 SCN 的版本查询SELECT <colum

【练习】闪回归档

1.开启归档模式: 16:02:21 SYS@ORA11GR2>archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch Oldest online log sequence 1 Next log sequence to archive 1 Current log s

ORACLE 10G 闪回建议

Flashback Tips The following tips and restrictions apply to using flashback features. Flashback Tips – Performance For better performance, generate statistics on all tables involved in a Flashback Query by using the DBMS_STATS package, and keep the s

[课]10.2演示闪回归档及闪回数据库

#=========闪回归档================== 数据库版本 1.1创建默认的闪回归档 1.2新用户授权及创建归档表 查询一下我们启动闪回归档的表: 1.3模拟测试表更改 1.4更改undo表空间设置 为了更好地演示闪回归档,避免在演示的过程中系统使用未覆盖的UNDO日志,现在我们切换当前的undo表空间,使系统在做闪回归档的时候用不到UNDO空间的数据. 1.5闪回归档livan表 #=========闪回数据库演示=============== 2.1查看当前配置 2.2开启