楼主: solearn

请问undo segment entry记录在哪里?

[复制链接]
论坛徽章:
2
授权会员
日期:2006-06-03 12:21:35ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:20
11#
发表于 2006-6-2 15:20 | 只看该作者

使用道具 举报

回复
论坛徽章:
0
12#
发表于 2006-6-3 08:01 | 只看该作者

再问"undo segment entry记录在哪里?"

insert /*+ append / nologging 模式下 没有redo log,如何恢复?
因为我可以rollback

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
13#
发表于 2006-6-3 10:43 | 只看该作者

Re: 再问"undo segment entry记录在哪里?"

最初由 tiger_zhangyz 发布
[B]insert /*+ append / nologging 模式下 没有redo log,如何恢复?
因为我可以rollback [/B]


这种情况不能通过 日志文件恢复啊

使用道具 举报

回复
论坛徽章:
4
授权会员
日期:2005-10-30 17:05:33生肖徽章2007版:鼠
日期:2008-01-02 17:35:53ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512013年新春福章
日期:2013-02-25 14:51:24
14#
发表于 2006-6-3 14:42 | 只看该作者
向各位学习

使用道具 举报

回复
论坛徽章:
11
授权会员
日期:2006-05-12 15:15:27数据库板块每日发贴之星
日期:2006-05-19 01:01:35ITPUB元老
日期:2006-05-19 08:58:40操作系统板块每日发贴之星
日期:2006-06-05 01:01:57会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412014系统架构师大会纪念章
日期:2014-08-28 15:15:37技术图书徽章
日期:2014-09-09 11:11:10
15#
发表于 2006-6-3 15:05 | 只看该作者

Re: 再问"undo segment entry记录在哪里?"

...

使用道具 举报

回复
论坛徽章:
0
16#
发表于 2006-6-3 18:59 | 只看该作者

Re: Re: 再问"undo segment entry记录在哪里?"

最初由 biti_rainy 发布
[B]

这种情况不能通过 日志文件恢复啊 [/B]




请问biti_rainy :
问题是这样的,
我执行完insert /*+append....之后,马上rollback,数据确实没有insert 成功.
但我的担心是:
如果我这个语句执行了很才久才完成假设24小时,这24小时之内可能redolog 和undo segment都面目全非了.
现在我马上shutdown abort
然后您猜测数据会如何呢?


redolog rollforward 我认为是没有问题的.
但是在rollback阶段,因为insert /*+append 这个事物在undo segment中是未完成的事务, 因此需要回滚,但是又没有足够的信息. 岂不乱了?
数据库能startup吗?

使用道具 举报

回复
论坛徽章:
14
奥运会纪念徽章:自行车
日期:2008-04-25 21:00:142013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-10 13:11:14奥运会纪念徽章:皮划艇激流回旋
日期:2012-08-13 10:25:38鲜花蛋
日期:2012-02-10 11:40:172010新春纪念徽章
日期:2010-03-01 11:04:58授权会员
日期:2010-01-12 09:40:47ITPUB元老
日期:2010-01-12 09:33:092009新春纪念徽章
日期:2009-01-04 14:52:28奥运会纪念徽章:拳击
日期:2008-10-24 13:22:33
17#
 楼主| 发表于 2006-6-4 15:09 | 只看该作者
24小时后应该也不会面目全非吧?
在事务complete(提交或回滚)之前,该事务在回滚段头部的transaction slot中的记录会保留,它使用的extent状态是active。因此,回滚需要的信息都还在。
如果你在提交之前shutdown abort,那么数据库startup后,会进行正常的instance recovery。

使用道具 举报

回复
论坛徽章:
0
18#
发表于 2006-6-4 19:47 | 只看该作者
最初由 solearn 发布
[B]24小时后应该也不会面目全非吧?
在事务complete(提交或回滚)之前,该事务在回滚段头部的transaction slot中的记录会保留,它使用的extent状态是active。因此,回滚需要的信息都还在。
如果你在提交之前shutdown abort,那么数据库startup后,会进行正常的instance recovery。 [/B]




请问solearn:
       如果我没有 commit, 但是buffer cache的一部分数据已经写入物理文件,这样回滚不知道如何进行.
    再如,我已经commit但是部分数据还没有物理写入文件,数据库就abort掉,那数据是否肯定丢失了未写入的部分.
因此我感觉主要需要弄清下列问题:
因此问题的关键在于我不清楚
在普通insert和nologging着两种请况,
insert时:buffer cache  和 redo log 和 undo segment 干了什么?
commit:  buffer cache  和 redo log 和 undo segment 干了什么?
请各位大牛指教.

使用道具 举报

回复
论坛徽章:
14
奥运会纪念徽章:自行车
日期:2008-04-25 21:00:142013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-10 13:11:14奥运会纪念徽章:皮划艇激流回旋
日期:2012-08-13 10:25:38鲜花蛋
日期:2012-02-10 11:40:172010新春纪念徽章
日期:2010-03-01 11:04:58授权会员
日期:2010-01-12 09:40:47ITPUB元老
日期:2010-01-12 09:33:092009新春纪念徽章
日期:2009-01-04 14:52:28奥运会纪念徽章:拳击
日期:2008-10-24 13:22:33
19#
 楼主| 发表于 2006-6-5 10:52 | 只看该作者
To tiger_zhangyz:

我是ORACLE初学者,希望能在这里和大家一起研究,向各位斑竹和高手学习。

关于你提到的问题:

1、如果你没有commit,不管db buffer cache中的数据是否已经(全部或部分)同步到磁盘上,在回滚时都会用回滚段上的信息。如果你这时回滚事务,server process会读db block的头部中的回滚段地址,找到对应的回滚段。如果是insert操作,会根据回滚段中的记录的UNDO RECORD,去除原来数据块的内容。

2、如果你已经commit,数据库abort。系统重新启动后会执行instance recovery,重做日志中记载的事务。

3、insert logging和nologging的区别在于,nologging时不会在日志中记录insert的row内容,而只是修改数据字典中受影响的tables,这样无法redo你的insert操作。

使用道具 举报

回复
论坛徽章:
9
授权会员
日期:2006-10-25 13:16:29ITPUB元老
日期:2006-12-14 09:07:14红孩儿
日期:2007-01-25 16:32:50生肖徽章:牛
日期:2007-01-25 16:50:00生肖徽章:鼠
日期:2007-01-25 16:50:22ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:442010新春纪念徽章
日期:2010-03-01 11:08:28ITPUB9周年纪念徽章
日期:2010-10-08 09:28:51优秀写手
日期:2014-03-11 06:00:14
20#
发表于 2006-6-29 01:05 | 只看该作者
up

使用道具 举报

回复

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

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表