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

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

351

积分

0

好友

8

主题
1#
发表于 2012-4-28 10:39:58 | 查看: 7709| 回复: 3
考虑以下情况:

节点1修改数据块A,然后节点2也修改数据块A,两个节点都没有提交:
此时current数据块在节点2,pi数据块在节点1

这时候节点1读取数据块A,那么数据块是从节点2读取还是从节点1读取呢?

以下是我的测试,有些地方很诡异的:

--节点1
create table test(id number);
insert into test values(1);
insert into test values(2);
commit;
update test set id=id+1 where id=1;

select inst_id,dirty,status from gv$bh where file#=1 and block#=89305 and status<>'free';

INST_ID DIRTY STATUS
1 Y xcur
1 N cr

--节点2
update test set id=id+1 where id=2;

INST_ID DIRTY STATUS
1 Y pi
1 N cr
1 N cr
1 N cr
2 Y xcur
2 N cr
2 N cr

--节点1
select * from test;

INST_ID DIRTY STATUS
1 Y pi
1 N cr
1 N cr
2 Y scur
2 N cr
2 N cr

这里有点诡异,为什么节点1的cr块减少一个了?这里的block是从节点1读取还是从节点2读取的?

--继续在节点1查询
select * from test;

INST_ID DIRTY STATUS
1 Y pi
1 Y xcur
1 N cr
1 N cr
1 N cr
1 N cr
2 Y pi
2 N cr
2 N cr

此时current block传到了节点1,为什么?

--在节点2查询

INST_ID DIRTY STATUS
1 Y pi
1 N cr
1 N cr
1 N cr
1 N cr
1 N cr
2 Y pi
2 Y xcur
2 N cr
2 N cr

此时current block又回到了节点2,为什么?
4#
发表于 2012-5-2 21:42:33
问题2 为什么 RAC中cache fusion 查询CR Request 会导致 current block被传输 ?

已回复 于 Global Cache CR Requested But Current Block Received  http://www.oracledatabase12g.com ... block-received.html

回复 只看该作者 道具 举报

3#
发表于 2012-4-29 20:38:40

回复 只看该作者 道具 举报

2#
发表于 2012-4-28 16:40:51
NEED ODM TEST , SO pend this post NOW

回复 只看该作者 道具 举报

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

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

GMT+8, 2024-11-15 15:39 , Processed in 0.049657 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

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