# 45984
海参
来自: 厦门
|
|
|
|
|
To: 盖老师
我这里的oracle数据库是建立在window 2003 双机上,MSCS做的双机.oracle时常卡住,10来分钟后正常.oracle日志里
DEBUG: Replaying xcb 0xd4b85558, pmd 0xcf430a60 for failed op 8
ReconstructingUhdr 0x800079 for xcb 0xd4b85558, pmd 0xcf430a60
Doing block recovery for file 2 block 121
Block recovery from logseq 79891, block 32960 to scn 13421614668818
Flush retried for xcb 0xd230a448, pmd 0xcf441d78
DEBUG: Restoring block headers for xcb 0xd230a448, pmd 0xcf441d78
Recovery of Online Redo Log: Thread 1 Group 2 Seq 79891 Reading mem 0
Mem# 0: FATABASEXMJMNEWREDO201.LOG
Mem# 1: FATABASEXMJMNEWREDO202.LOG
Block recovery completed at rba 79891.38159.16, scn 3124.4136836115
DEBUG: Restoring block headers for xcb 0xd4b85558, pmd 0xcf430a60
DEBUG: Finished replay for xcb 0xd4b85558, pmd 0xcf430a60 for failed op 8
规律是,卡住后10分钟左右正常后,系统日志会报一个ql2300的警告,内容是"已复位设备device
aidport2."有升级HBA卡的驱动到最新,ql2300的警告明显减少,每天就1-2个,但是oracle卡的问题还在,而每次卡完还有ql2300的警告。不知道这是HBA卡的问题导致oracle的不正常还是oracle本身有问题?或是存储有问题(数据文件是放在两台镜像的emcvnx5300上,麻烦您给指点一下,谢谢。
From: 海参 2013.10.14 00:25
|
|
|
|
|
|
|
|
|
|
To: 海参
你给我发个awr报告,我帮你分析一下,涵盖异常点的报告。 eygle@eygle.com
From: eygle 2013.10.21 08:21
|
|
|
|
# 45981
小方
|
|
To: 盖老师
DBWR在写数据到磁盘的时候,CKPT每3秒钟查看一下DBWR沿检查点队列写到了哪里,并且将这个位置设置为检查点位置,并记录在控制文件中。那么假如,DBWR写了2秒的时候突然宕机了。oracle是用什么策略恢复的?从哪个点开始跑日志?那个点记录在哪里?是最后一个检查点对应的RBA吗?但是那个RBA已经不再跟数据库同步了呀,因为dbwr又写了2秒,ckpt却还没来得及更新检查点位置。
From: 小方 2013.09.23 18:49
|
|
|
|
To: 小方
从low-cache rba开始恢复啊,只要是提交成功的,就已经记录了Redo日志,下次可以根据提交是否成功进行事务重演。DBWR写的是DB Block,通过redo能够重演事务。
如果DBWR写出了,但是相应的RBA没有记录到控制文件,这是没有关系的,脏数据写到文件,提交和未提交都有可能,必须以来Redo来进行判断。
当然,Oracle会有非常细粒度的检查,比如判断最后一个写是否成功:
http://www.eygle.com/archives/2010/05/ora-00600_kcratr1_lostwrt.html
From: eygle 2013.10.07 23:27
|
|
|
|
# 45980
小方
|
|
To: 盖老师
盖老师,您好,我想咨询一下。DBWR在写数据到磁盘的时候,CKPT每3秒钟查看一下DBWR沿检查点队列写到了哪里,并且将这个位置设置为检查点位置,并记录在控制文件中。那么假如,DBWR写了2秒的时候突然宕机了。oracle是用什么策略恢复的?
From: 小方 2013.09.23 18:06
|
|
|
|
|