设为首页 收藏本站
查看: 663|回复: 0

[经验分享] Oracle 11g闪回归档技术

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-10-15 08:58:33 | 显示全部楼层 |阅读模式
闪回数据归档
使用闪回数据归档功能可以自动跟踪和归档启用了闪回数据归档的表中的数据。这可确保闪回查询能够获得对数据库对象版本的
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;
  TEST_USER1@PROD>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);


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-26058-1-1.html 上篇帖子: ORA-00600 qerpxInitialize 下篇帖子: oracle中字符串相似度函数实测 Oracle 技术
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表