oracle 11g Flashback Data Archive(闪回数据归档)
Flashback Data Archive(闪回数据归档)
UNDO表空间记录的回滚信息虽然可以提供回闪查询,但时间久了,这些信息会被覆盖掉,其实只要事务一提交,他们就变成可覆盖的对象了,所以经常在做回闪查询时,我们会因为找不到undo block而收到1555错误,11G里面引入了Flashback Data Archive ,他用于存储数据的所有改变,时间由你自己设定,消耗的是更多的磁盘空间,现在来看下这个特性。
一、创建闪回数据归档
1、为了创建闪回数据归档,必须拥有DBA角色或拥有系统权限flashback archive administer。
sys@MYDB> select * from dba_sys_privs where privilege like '%FLASH%';
GRANTEE PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
SYS FLASHBACK ANY TABLE NO
DBA FLASHBACK ANY TABLE YES
SYS FLASHBACK ARCHIVE ADMINISTER NO
DBA FLASHBACK ARCHIVE ADMINISTER YES
sys@MYDB> grant flashback archive administer to gyj;
Grant succeeded.
2、创建表空间
sys@MYDB> create tablespace flash_tbs1 datafile '/u01/app/oracle/oradata/mydb/flash_tbs1.dbf' size 20480M;
Tablespace created.
3、创建闪回归档
sys@MYDB> create flashback archive flash1 tablespace flash_tbs1 quota 1024M retention 5 year;
Flashback archive created.
二、更改闪回数据归档
sys@MYDB> alter flashback archive flash1 set default;
Flashback archive altered.
sys@MYDB> alter flashback archive flash1 add tablespace tp1; --添加表空间
Flashback archive altered.
sys@MYDB> alter flashback archive flash1 remove tablespace tp1;--删除表空间
Flashback archive altered.
sys@MYDB> alter flashback archive flash1 modify tablespace flash_tbs1 quota 2048M;--添加配额
Flashback archive altered.
sys@MYDB> alter flashback archive flash1 modify retention 3 year;
Flashback archive altered.
sys@MYDB> alter flashback archive flash1 purge all; -- 清除所有
Flashback archive altered.
sys@MYDB> alter flashback archive flash1 purge before timestamp (systimestamp - interval '2' day);--清除2天前的
Flashback archive altered.
sys@MYDB> alter flashback archive flash1 purge before scn 123344;
Flashback archive altered.
三、启用和禁用闪回数据归档
1、在建表的同时就启用表的闪回日志
gyj@MYDB> create table t1(id int,name varchar2(10)) flashback archive flash1;
Table created.
2、也可以在建表后,再启用表的闪回日志
alter table t1 flashback archive;--为表启用闪回数据归档,没指定表示使用数据库默认的
alter table t1 flashback archive flash1; ;--为表启用闪回数据归档,指定在特定的闪回数据归档中存储表的变化
3、数据库将把T1表的数据归档到默认的闪回数据归档中
gyj@MYDB> select * from dba_flashback_archive_tables;
TABLE_NAME OWNER_NAME FLASHBACK_ARCHIVE_NAME ARCHIVE_TABLE_NAME STATUS
----------- ----------- ---------------------- ---------------- -------------
T1 GYJ FLASH1 SYS_FBA_HIST_17877 ENABLED
4、在使用闪回数据归档前,必须设置默认闪回数据归档
gyj@MYDB> select flashback_archive_name,status from dba_flashback_archive;
FLASHBACK_ARCHIVE_NAME STATUS ------------------------------------
FLASH1 DEFAULT
5、禁用闪回数据归档
gyj@MYDB> alter table t1 no flashback archive;
Table altered.
四、闪回数据归档的限制
在使用闪回归档的过程中有某些限制。对于已经启用闪回的表,不能使用DDL命令drop column(11r2可以drop column),但可以add column命令。删除属于一个启用了闪回数据归档的表列的唯一方法是首先关闭闪回归档功能。但是,这样会删除所有闪回归档数据。
1、ALTER TABLE:
Drops, renames, or modifies a column (11GR2是可以的)
Performs partition or subpartition operations
Converts a LONG column to a LOB column
Includes an UPGRADE TABLE clause, with or without an INCLUDING DATA clause
2、 DROP TABLE
3、TRUNCATE TABLE (11GR2是可以的)
4、RENAME TABLE (11GR2也是可以的)
gyj@MYDB> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
gyj@MYDB> alter table t1 drop column name;
Table altered.
gyj@MYDB> alter table t1 add(name varchar2(100));
Table altered.
gyj@MYDB> alter table t1 rename to t10;
Table altered.
gyj@MYDB> truncate table t10;
Table truncated.
gyj@MYDB> drop table t10;
drop table t10
*
ERROR at line 1:
ORA-55610: Invalid DDL statement on history-tracked table
gyj@MYDB> alter table t10 no flashback archive;
Table altered.
gyj@MYDB> drop table t10;
Table dropped.
五、监控认回数据归档
1、查哪些表已经启用了闪回数据归档
gyj@MYDB> select * from dba_flashback_archive_tables;
TABLE_NAME OWNER_NAME FLASHBACK_ARCHIVE_NAME ARCHIVE_TABLE_NAME STATUS
----------- ----------- ---------------------- ---------------- -------------
T1 GYJ FLASH1 SYS_FBA_HIST_17877 ENABLED
2、查数据库中所有的闪回数据归档
gyj@MYDB> select flashback_archive_name,retention_in_days from dba_flashback_archive;
FLASHBACK_ARCHIVE_NAME RETENTION_IN_DAYS
-------------------------------------------------- -----------------
FLASH1 1095
3、查有关闪回数据归档所使用的表空间的信息
gyj@MYDB> select flashback_archive_name,tablespace_name,quota_in_mb from dba_flashback_archive_ts;
FLASHBACK_ARCHIVE_NAME TABLESPACE_NAME QUOTA_IN_MB
---------------------------- ----------------------- -----------------
FLASH1 FLASH_TBS1 2048
六、使用闪回数据归档:例子
gyj@MYDB> create table test_gyj (id int,name varchar2(10));
Table created.
gyj@MYDB> alter table test_gyj flashback archive flash1;
Table altered.
gyj@MYDB> begin
2 for i in 1 .. 100 loop
3 insert into test_gyj values(i,'gyj'||i);
4 commit;
5 end loop;
6 end;
7 /
PL/SQL procedure successfully completed.
gyj@MYDB> select count(*) from test_gyj;
COUNT(*)
----------
100
gyj@MYDB> col FLASHBACK_ARCHIVE_NAME for a10
gyj@MYDB> col TABLE_NAME for a10
gyj@MYDB> col ARCHIVE_TABLE_NAME for a20
gyj@MYDB> col OWNER_NAME for a5
gyj@MYDB> select * from dba_flashback_archive_tables;
TABLE_NAME OWNER FLASHBACK_ ARCHIVE_TABLE_NAME STATUS
---------- ----- ---------- -------------------- -------------
T1 GYJ FLASH1 SYS_FBA_HIST_17890 ENABLED
T10 GYJ FLASH1 SYS_FBA_HIST_17898 ENABLED
TEST_GYJ GYJ FLASH1 SYS_FBA_HIST_17908 ENABLED
gyj@MYDB> select count(*) from SYS_FBA_HIST_17908;
COUNT(*)
----------
0
gyj@MYDB> select current_scn from v$database;
CURRENT_SCN
-----------
2353743
gyj@MYDB> delete from test_gyj;
100 rows deleted.
gyj@MYDB> commit;
Commit complete.
gyj@MYDB> select current_scn from v$database;
CURRENT_SCN
-----------
2353790
gyj@MYDB> select count(*) from test_gyj as of scn 2353743;
COUNT(*)
----------
100
gyj@MYDB> select count(*) from test_gyj as of scn 2353790;
COUNT(*)
----------
0
gyj@MYDB> select count(*) from SYS_FBA_HIST_17908;
COUNT(*)
----------
0
gyj@MYDB> select count(*) from SYS_FBA_HIST_17908;--刷新数据有缓慢,耐心等待!!!
COUNT(*)
----------
200
七、删除闪回归档数据
drop flashback archive flash1;
未完!!!继续更新中。。。。。。。。。。。。。。。。。。
oracle 11g Flashback Data Archive(闪回数据归档)相关推荐
- oracle闪回数据归档,oracle 11g Flashback Data Archive(闪回数据归档)
Oracle 11G提供了丰富的回闪查询功能,对于人为的错误操作,历史数据订正,操作流程记录等有非常大的帮助,下面就来详细介绍下这个特性 回闪查询的原理: Oracle中有UNDO表空间,用来存放数据 ...
- ORACLE 11G 闪回数据归档
ORACLE 11G中闪回相关的新特性: oracle 9i和10g中具有用于增强DBA和开发人员执行逻辑数据修补的几个和闪回相关的特新.比如9i中支持闪回查询(基于undo数据),oracle 10 ...
- [每日一题] 11gOCP 1z0-053 :2013-09-29 Flashback Data Archive ...................................6...
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/12205299 正确答案:A 具体请参考:http://blog.csdn.net/guoy ...
- oracle flashback 功能,Oracle 11g 新特性 Flashback Data Archive 使用实例
Flashback Data Archive(闪回日志归档)其实理解为长时间的保存undo数据,对于某些重要的表可以自定义它的历史记录保存期限,它的的种种行为与undo表空间十分相似,使用的时候也是完 ...
- 闪回之 Flashback Data Archive
背景: Oracle 11g 中 Flashback Data Archive 特性.将变化数据另外存储到创建的闪回归档区(Flashback Archive)中,以和 undo 区别开来,这样就可以 ...
- oracle flashback archive,ORACLE Flashback Data Archive
Flashback Data Archive 11g的新功能,有如下特性. 1.在有效期内保存事务改变的信息. 2.FDA包含一个或多个表空间,可以创建多个FDA,以sysdba登陆时,可以指定默认的 ...
- oracle flashback archive,ORACLE 11G flashback archive
ORACLE 11G flashback archive 闪回数据存档,它是由一个或多个表空间存储对指定表进行的更改,也可对数据库级别做闪回数据存档 create flashback archive的 ...
- 视频教程-赵强老师:Oracle数据库从10g到11g(16)闪回-Oracle
赵强老师:Oracle数据库从10g到11g(16)闪回 毕业于清华大学,拥有超过13年的工作经验. Oracle认证讲师,拥有6年以上授课经验.精通Oracle数据库.中间(Weblogic)和大数 ...
- Flashback Data Archive(转)
自己一直希望找到一篇关于将一个表的一列不小心删除了,怎么来修复,可是一直找不到,自己最近看到一篇在oracle11的一篇文章,特意在这里转一下,没有试过,因为自己的是10,如果那个网友有在10下实现的 ...
最新文章
- UA MATH571A 一元线性回归II 统计推断1
- java 8大happen-before原则超全面详解
- FI_ITEMS_MASS_CHANGE 批量更新 凭证文本 (凭证被锁、一些项目没更改到的解决方法)
- 【转】linux su和sudo命令的区别——百度知道
- K8S报错:controller-manager Unhealthy Get http://127.0.0.1:10252/healthz: dial tcp 127.0.0.1:10252
- 使用lxml代替beautifulsoup
- 论文浅尝 | 基于RNN与相似矩阵CNN的知识库问答
- 虽然有点“2”,但还是有意义的:PoseNet+LSTM 实现虚拟“逛街”
- Java学习笔记1.2.2 使用Java集成开发环境 - IntelliJ IDEA
- 聊聊传说中的散列哈希Hash算法,以及Java中的HashTable,HashMap,HashSet,ConcurrentHashMap......
- 电池电堆及发动机的测试软件,燃料电池发动机测试系统的开发
- Win11右键菜单切回经典模式
- 阿里云ACE-第一天笔记
- 1976年图灵奖--米凯尔·拉宾和达纳·斯科特简介
- top在linux的命令,Linux命令详解之–top命令 | Linux大学
- 说一下浏览器垃圾回收机制?
- RANSAC的实现与应用
- IBMMQ详解(一)
- SpringBoot JPA(JpaRepository)动态查询 分页展示
- TA游戏推荐:黑暗画风3D动作游戏《恐惧之魂》
热门文章
- Silverlight 2 DataGrid December 2008
- OpenCV-均值滤波cv::blur
- mvc路由原理 php_PHP实战002:CodeIgniter安装和入门使用
- python版本可执行可嵌入_Python程序打包成exe可执行文件的方法探究
- 玩转接口测试,那些必备的技能
- Java get set6_Java oop 的题与答案6:使用程序模拟英雄金币数,get与set知识,访问修饰符(有图)...
- PHP网站首页空白刷新就好了,部署好后网站一片空白,不显示内容
- 《只管去做》-如何做靠谱的年度计划
- Java21天打卡day19-异常
- 同窗多年,一个无经验的应届生,一起转行做了软件测试并月薪8K