免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4249 | 回复: 9
打印 上一主题 下一主题

还是不理解物理日志的作用 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-02-21 14:51 |只看该作者 |倒序浏览
感觉物理日志没有什么作用,因为按照
文档上的说法

物理日志的作用在于保持一批dbspace页的前映象。
这些“前映象”代表了所有数据在物理上与逻辑上都保持一致的这
样一个时刻。
将物理日志中的前映象与逻辑日志中的逻辑日志记录结合起来,
可以恢复数据库自上一次已知的一致点以来发生的所有事务。
这样的已知的一致点称为检查点。在快速恢复过程中,
第一步首先用到物理日志,
将整个系统恢复在Online中最近一次检查点时所处的物理一致的状态。


如果要恢复,用逻辑日志不也是OK的吗?这里提到一个快速恢复?逻辑日志就不能快速恢复吧?
好像其他数据库就没有提物理日志这个概念,例如oracle的日志应当就是informix的逻辑日志

论坛徽章:
5
荣誉会员
日期:2011-11-23 16:44:17CU大牛徽章
日期:2013-09-18 15:15:15CU大牛徽章
日期:2013-09-18 15:15:45未羊
日期:2014-02-25 14:37:19射手座
日期:2014-12-26 22:55:37
2 [报告]
发表于 2010-02-21 17:09 |只看该作者
IDS的设计,逻辑日志不保留前映像,你怎么回滚?
DB2倒是前后映像都在一个日志,所以没有所谓的物理日志。

论坛徽章:
0
3 [报告]
发表于 2010-02-22 20:05 |只看该作者
本帖最后由 我是DBA 于 2010-02-22 20:07 编辑

物理日志保存修改前的数据用于数据恢复

论坛徽章:
0
4 [报告]
发表于 2010-02-23 16:55 |只看该作者
明白了,谢谢

论坛徽章:
11
数据库技术版块每日发帖之星
日期:2016-06-25 06:20:00数据库技术版块每日发帖之星
日期:2016-06-24 06:20:00数据库技术版块每日发帖之星
日期:2016-05-03 06:20:00数据库技术版块每日发帖之星
日期:2016-04-21 06:20:00数据库技术版块每日发帖之星
日期:2016-01-23 06:20:00数据库技术版块每日发帖之星
日期:2015-12-03 06:20:00综合交流区版块每周发帖之星
日期:2015-12-02 15:03:53数据库技术版块每日发帖之星
日期:2015-10-19 06:20:00数据库技术版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15数据库技术版块每日发帖之星
日期:2016-07-30 06:20:00
5 [报告]
发表于 2010-02-23 22:22 |只看该作者
物理日志里面放的就是脏页的前映象!检查点时就会逻辑清空!
对于用户来说物理日志没有意义,你什么也看不到!onlog可以看逻辑日志!

论坛徽章:
0
6 [报告]
发表于 2010-03-11 12:08 |只看该作者
回复 1# jayli426


    我倒认为INFORMIX应该能够利用物理日志实现ORACLE的快速回滚的,不知道为何INFORMIX不这么做,弄得长事务回滚只有死等。

论坛徽章:
0
7 [报告]
发表于 2010-03-12 16:20 |只看该作者
回复 2# wolfop
大哥能否在具体的范例上指导我一下呢?

       例如一个表 table1
   user_id  user_name
    10000    tom
    10001    mike
    10002    jerry
    10003    john
   
    如果我删除一条记录
    delete * from table1 where user_id=10001
   
    那么照我现在的理解
    informix 会在 物理日志中保存一条
    table1
    user_id  user_name
    10001    mike  
   或者确切的说这条记录对应的一个数据page
   
   然后会在逻辑日志里面记下
   delete * from table1 where user_id=10001
   这么一个操作
   
  那么恢复的时候,是直接拷贝数据page恢复,
  还是执行一个insert into table1(user_id,user_name) values(10001,'mike')
  这样语句来恢复呢

论坛徽章:
11
数据库技术版块每日发帖之星
日期:2016-06-25 06:20:00数据库技术版块每日发帖之星
日期:2016-06-24 06:20:00数据库技术版块每日发帖之星
日期:2016-05-03 06:20:00数据库技术版块每日发帖之星
日期:2016-04-21 06:20:00数据库技术版块每日发帖之星
日期:2016-01-23 06:20:00数据库技术版块每日发帖之星
日期:2015-12-03 06:20:00综合交流区版块每周发帖之星
日期:2015-12-02 15:03:53数据库技术版块每日发帖之星
日期:2015-10-19 06:20:00数据库技术版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15数据库技术版块每日发帖之星
日期:2016-07-30 06:20:00
8 [报告]
发表于 2010-03-17 00:03 |只看该作者
你删除的那条记录所在的页会先放在物理日志中,再把删除的那么记录写到逻辑日志中。
这时可以会有两种情况发生,可以理解为你的恢复:
1、你的事务rollback;
会直接从逻辑日志里面去CLR操作,回到删除前的状态。
2、系统意外宕机;
下次启动informix的时候会做Fast Recovery,这里会检查物理日志是否为空,不为空就把里面的页还原回以前位置,再把open 的事务rollback。

对应用来说是透明的!检查点的时候会逻辑的清空物理日志。

论坛徽章:
0
9 [报告]
发表于 2010-04-16 14:16 |只看该作者
回复 6# 3sane


    我觉得这是结构本身的问题,ORACLE本身就有回滚段,存修改前的信息。这样在回滚时只要改个标识就可以。informix则是在物理日志里记录这些信息,回滚时只有一条一条往回做。这样唯一的优点就是数据结构没那么复杂。听IBM说这个已经建议过修改了,可一直没能实现。

论坛徽章:
0
10 [报告]
发表于 2010-04-22 12:35 |只看该作者
好像就是和oracle里undo一样的作用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP