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

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

0

积分

1

好友

14

主题
1#
发表于 2013-7-29 12:31:16 | 查看: 3446| 回复: 2
最近在一本书上看到说“DBWR将要写出的数据的HIGH RBA超过LGWR的ON-DISK RBA,DBWR将通知LGWR去执行写出。”
这句话不太理解 为什么DBWR要触发LGWR去写这部分日志,假如DBWR直接写进数据文件了不就不会造成数据丢失了吗,之前考虑过这部分可能会和UNDO有关,但是思路总是打不开,这个问题困扰了很久,请刘大和各位朋友帮忙点拨一下,万分感谢!
2#
发表于 2013-7-29 12:50:03
你的问题是


”DBWR 已写出dirty buffer 到disk , 而对应的rba LGWR还未写出, 会有什么问题?“

回答:

如果此时发生crash ,则当数据库打开时若读到该数据块 会出现ORA-600 [2662] “Block SCN is ahead of Current SCN”  即  block scn比current scn大。

为什么要定义“Block SCN is ahead of Current SCN”为问题?  因为Oracle的机制是 永远是先写redo,如果没有对应的redo 则认为block的change是无依据的。

回复 只看该作者 道具 举报

3#
发表于 2013-7-29 12:57:43
谢谢刘大!

回复 只看该作者 道具 举报

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

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

GMT+8, 2024-12-29 19:47 , Processed in 0.045345 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

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