Skip to Main Content

Chinese

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

如何修復 ORA-01578: ORACLE data block corrupted ?

user5734681Dec 2 2012 — edited Dec 5 2012
[現象]
Oracle 版本是 11.2.0.3.0
本來打算做backup server的Oracle備份,但是RMAN報錯如下:
RMAN-03009: failure of backup command on oem_disk_backup channel at 11/28/2012 18:42:02
ORA-19566: exceeded limit of 0 corrupt blocks for file /u01/app/oracle/oradata/SID/users01.dbf
然後去查alter log,發現有如下錯誤:
ORA-01578: ORACLE data block corrupted (file # 4, block # 642)
ORA-01110: data file 4: '/u01/app/oracle/oradata/SID/users01.dbf'

用如下sql:
SELECT segment_name,segment_type,extent_id,block_id, blocks
from dba_extents t
where file_id = 4
AND 642 between block_id and (block_id + blocks - 1) ;
檢查結果是
no rows selected

[起因]
問了同事,他想做個production server的完全鏡像,他通過RAID 1熱插拔從production server拷貝過來了,他說當時Oracle還在運行中。

[問題]
1. 我覺得這種方式的拷貝肯定有問題,但是是如何造成ORA-01578的,希望能從redo log buffer,redo log, data files和control file這些層面有個詳細的瞭解?
2. 爲什麽上面的sql結果是no rows selected?不是報file # 4, block # 642有錯嗎?
3. 如何修復ORA-01578? 現在的production server和backup server上都沒有任何備份,想通過RMAN命令修復,估計是不行吧?那怎麼才能修復USERS01.dbf呢?可以重建USERS表空間嗎?
4. 還有幾個問題待續。。。

帖子经 user5734681编辑过

帖子经 user5734681编辑过
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jan 2 2013
Added on Dec 2 2012
4 comments
1,746 views