CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

数据库 | Oracle | DB2 | SQL Server | MySQL | 商业智能 | BI | DBA | Sybase| SQL Server 2008

您现在的位置: IT专家网 > 数据库子站 > 数据库技巧

Oracle备份与恢复(五):Flashback

作者: Elise,  出处:blog, 责任编辑: 李书琴, 
2008-09-07 07:00
  Flashback在开发环境(有时生产环境的特殊情况下)是很有用的一个工具。

      Oracle备份与恢复(一)      Oracle备份与恢复(二)    Oracle备份与恢复(三)

      Oracle备份与恢复(四)      Oracle备份与恢复(五)    Oracle备份与恢复(六)

  Flashback 简介

  1 原理

  当数据 update 或 delete 时,原来的数据会保存在 undo 表空间中,保存的最少时间是 UNDO_RETENTION。实际的保存时间与 undo表空间的大小和数据更改的繁忙程度相关。 UNDO_RETENTION 的参数(单位为秒)指定 Oracle保存用于 flashback查询的 undo映像 的时间。一般你可以将这个值设为一整天(864000秒),这样你就能看到前一天全天的映像。 当然,你的在线 undo日志必须足够大,大到足以能保存一整天的 undo日志数据,对于繁忙

  的 Oracle系统,这个数值可以达到很大。

  5.1.2 一些限制

  •   服务器必须配置成使用自动 undo管理。
  •   在使用 Flashback查询时不能使用 DDL或者 DML。
  •   Flashback 不取消 DDL操作,例如 DROP命令。 数据库管理员做一些必要的设置之后,一般用户才能使用 Flashback查询功能:

      SQL> ALTER SYSTEM SET UNDO_MANAGEMENT=AUTO SQL> ALTER SYSTEM SET UNDO_RETENTION=86400
  SQL> GRANT EXECUTE ON DBMS_FLASHBACK TO USERNAME;

  3 获得SCN或时间点

  在 Flashback 时,可以尝试多个 SCN,获取最佳值。

  如果能得知具体时间,那么可以获得准确的数据闪回。

      SQL> alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS'; SQL> select sysdate from v$database;

  捕捉提交的 SCN: // 不知为什么,两种方法获得的 SCN不一样

  

      SQL> select dbms_flashback.get_system_change_number scn from dual;
  SQL> select max(ktuxescnw * power(2,32) + ktuxescnb) SCN from x$ktuxe;

  4 启用或禁用flashback查询

  使用系统改变数(SCN)或者真实时间来指定 flashback 的时间点来获取数据映象。

  方法一:

      SQL> select * from [TABLE] as of scn 129292;
  SQL> select * from [TABLE] as of timestamp to_timestamp('时间', ’时间格式');
  SQL> select * from saflog as of timestamp to_timestamp('2007-12-18 08:40:00',
  'YYYY-MM-DD HH24:MI:SS');

  

共2页。 1 2 :

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅


    
天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i