ITPUB论坛-中国最专业的IT技术社区

 找回密码
 注册
查看: 279|回复: 4

数据闪回查询,不理解的地方。

[复制链接]
论坛徽章:
2
2014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11
发表于 2017-7-6 10:06 | 显示全部楼层 |阅读模式
本帖最后由 showstrong 于 2017-7-6 10:08 编辑

缘由,最近看 "深入浅出 oracle" ,对数据闪回,undo 的使用这块做了测试,
有不理解的地方,想不通。
看我的测试。
windows7 + oracle 11g

1,建立测试表
create table  zxq.dict as select * from dict ;

2,闪回OFF,归档日志,scn 的模式确认
selet  log_mode,flashback_on from,current_scn  v$database
     ARCHIVELOG    NO 1714180

3,删除表数据
delete  from zxq.dict

4,闪回查询
select  * from zxq.dict  as of   scn   1714180
   数据被检索到  OK

5,新建立一个undo 表空间,并切换
create undo tablespace  undozxq datafile 'D:\APP\test\ORADATA\ZXQDB\undozxq.DBF'  size  1m
alter system set  undo_tablespace = undozxq
6, 原来的表空间offline
alter tablespace  UNDOTBS1  offline
alter database  datafile 3  offline

4,闪回查询
select  * from zxq.dict  as of   scn   1714180
    数据被检索  OK
   
   不能理解,这里的话,UNDOTBS1 的表空间已经不可用了,为什么还能检索到数据呢??

5,数据库重启
   shutdown immediate
   startup

6,闪回查询
select  * from zxq.dict  as of   scn   1714180
    数据被检索  NG ,报不能读取D:\APP\test\ORADATA\ZXQDB\UNDOTBS01.DBF 的数据。
    这里可以理解,表被offline了,undo 信息不存在了。


接着测试
1,插入数据
    insert into zxq.dict  select    * from dict ;
    commit ;
2,当前scn
  select  log_mode,flashback_on,current_scn from v$database
        ARCHIVELOG    NO    1736128
3,删除表数据
    delete  from zxq.dict

  报undozxq 表空间不能扩张,1m 的大小太小。
4,扩大undozxq 表空间 size
alter database datafile   'D:\APP\ZHAOXIANQIANG\ORADATA\ZXQDB\undozxq.DBF'  resize  2m

5,删除表数据
    delete  from zxq.dict
   commit ;

6,闪回查询
select  * from zxq.dict  as of   scn   1736128
  数据为空
  why ????
  是因为resize 了么??



7,插入数据
    insert into zxq.dict  select    * from dict ;
    commit ;

8,当前scn
  select  log_mode,flashback_on,current_scn from v$database
        ARCHIVELOG    NO    1736992


9,删除表数据
    delete  from zxq.dict
  commit ;

10,闪回查询
select  * from zxq.dict  as of   scn   1736992
   被查询到了。OK


11,另外一个session ,对表删除并rollback ,对undo 进行覆盖。

begin  
  for i in 1..1000000  loop
    insert into zxq.dict  select    * from dict
      rollback  ;
    end loop ;
    end ;
   
12,闪回查询
select  * from zxq.dict  as of   scn   1736992
   被查询到了。
  why ??
  undo 执行了这么多次 覆盖,为什么还能查询到???


13,查看执行计划
  set autotrace on ;
  実行計画
----------------------------------------------------------
Plan hash value: 3848948118

--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      |  2042 |  4026K|    26   (0)| 00:00:01 |
|   1 |  TABLE ACCESS FULL| DICT |  2042 |  4026K|    26   (0)| 00:00:01 |
--------------------------------------------------------------------------

不是从回滚段里取的数据。书上说从回滚段取得的。

不理解,请大家指导迷津。



论坛徽章:
2
2014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11
 楼主| 发表于 2017-7-6 15:17 | 显示全部楼层
顶一下

使用道具 举报

回复
论坛徽章:
17
2008新春纪念徽章
日期:2008-02-13 12:43:032014年新春福章
日期:2014-02-18 16:42:02优秀写手
日期:2013-12-18 09:29:13奥迪
日期:2013-09-12 15:57:04凯迪拉克
日期:2013-08-26 22:55:57红旗
日期:2013-08-15 13:57:06茶鸡蛋
日期:2013-05-29 11:38:412013年新春福章
日期:2013-02-25 14:51:24ITPUB季度 技术新星
日期:2012-02-16 14:53:16ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15
发表于 2017-7-6 15:25 | 显示全部楼层
要把已经 构造的CR块 干掉否则 影响实验结果, flush buffer_cache

使用道具 举报

回复
论坛徽章:
2
2014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11
 楼主| 发表于 2017-7-6 16:39 | 显示全部楼层
maclean 发表于 2017-7-6 15:25
要把已经 构造的CR块 干掉否则 影响实验结果, flush buffer_cache

谢谢提醒。我再试试。

使用道具 举报

回复
论坛徽章:
2
2014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11
 楼主| 发表于 2017-7-7 12:18 | 显示全部楼层
maclean 发表于 2017-7-6 15:25
要把已经 构造的CR块 干掉否则 影响实验结果, flush buffer_cache

明白了谢谢。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

SACC2017购票8.8折优惠进行时

2017中国系统架构师大会(SACC2017)将于10月19-21日在北京新云南皇冠假日酒店震撼来袭。今年,大会以“云智未来”为主题,云集国内外顶级专家,围绕云计算、人工智能、大数据、移动互联网、产业应用等热点领域展开技术探讨与交流。本届大会共设置2大主会场,18个技术专场;邀请来自互联网、金融、制造业、电商等多个领域,100余位技术专家及行业领袖来分享他们的经验;并将吸引4000+人次的系统运维、架构师及IT决策人士参会,为他们提供最具价值的交流平台。
----------------------------------------
优惠时间:2017年8月30日前

活动链接>>
TOP技术积分榜 社区积分榜 徽章 电子杂志 团队 统计 虎吧 老博客 知识索引树 读书频道 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 | IT博客
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛 | SAP ERP系统
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表