Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

0

积分

1

好友

8

主题
1#
发表于 2013-4-19 23:23:01 | 查看: 2602| 回复: 1
本帖最后由 cdshrewd 于 2013-4-19 23:26 编辑

请教大家一个undo机制的问题:
对于一个数据块会在undo表空间中存在多少条记录?
假定操作场景如下:
1:00的时候我发起了一个查询Q1,需要查询大量数据,包含一个数据块B1;
1:30的时候我对B1数据块中的某行R1进行了一次更新并且已提交;
1:45的时候我又对B1数据块中的某行R2进行了一次更新并且已提交;
2:00的时候Q1这个查询需要查找B1中的R1这行记录。
问题是:
1、如果UNDO足够,B1这个数据块在UNDO中会记录几次?
2、R1和R2是否是同一条记录对UNDO中数据块记录次数会有影响吗?
3、如果数据库在UNDO中会多次记录,那么TX锁在v$lock中的ID1和ID2对应的是数据块在UNDO中的位置该如何解释?
4、如果只保存一次,那么是否意味着上面的场景一定会出现ORA-01555的报错?
5、如果UNDO空间足够,会不会出现某个事务的回滚段占满导致ORA-01555报错,而其他回滚段都还比较空闲的情况?
6、回滚段的扩展会不会导致其他回滚段的覆盖?
2#
发表于 2013-4-20 16:13:33
光这个undo的专题 够写 大概30页的 一篇文章了

回复 只看该作者 道具 举报

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

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-16 11:51 , Processed in 0.052352 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569