crosscheck archivelog all error ORA-19587

Allen2312發表於2009-01-15
前兩天同事打電話來說在一個有catalog庫的資料庫中,做crosscheck時候報錯:
ORA-19587: error occurred reading 512 bytes at block number 1
ORA-27091: skgfqio: unable to queue I/O
ORA-27072: skgfdisp: I/O error
SVR4 Error: 2: No such file or directory
Additional information: 1
開始懷疑是系統目錄或者檔案出問題了,經過檢查沒有發現異常,目錄可讀可寫,歸檔檔案也都在,後經查詢metalink,說明如下:
RMAN CROSSCHECK ARCHIVELOG ALL fails: Ora-19587: Error Occurred Reading 1024 Bytes At Block Number 1

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of crosscheck command on ORA_MAINT_DISK_1 channel at
06/29/2006 18:45:56
ORA-19587: error occurred reading 1024 bytes at block number 1
ORA-27091: unable to queue I/O
ORA-27069: attempt to do I/O beyond the range of the file

CauseOne of the archivelogs is not the expected size.

You can confirm this by checking by getting a debug trace:

rman target / trace rman.trc debug
RMAN>crosscheck archivelog all;

Trace file is generated in target udump directory and shows:

DBGPLSQL: channel ORA_MAINT_DISK_1: processing (file/handle=
/odsprd/archive2/log_2_25283_550106137.arc,recid=81233, old_status=A,
hdl_isdisk=0, devicetype=DISK) (change)
DBGPLSQL: channel ORA_MAINT_DISK_1: force: 0 (change)
DBGRPC: krmxrpc: xc=6917529027646298352 kpurpc2 rc=19587 db=target proc=
DBMS_BACKUP_RESTORE.VALIDATEARCHIVEDLOG
DBGRPC: krmxrpc: xc=6917529027646298352 chid=ORA_MAINT_DISK_1 increment rpc
count=21
DBGMISC: krmqexe: unhandled exception on channel ORA_MAINT_DISK_1

So the problem log is:
/odsprd/archive2/log_2_25283_550106137.arc and checking the physical file we find it is zeo bytes in length.

.SolutionDelete the log using an OS command and run the crosscheck again.

解決方法就是:開啟rman trace找到一個異常大小的歸檔檔案,刪除該歸檔檔案,然後try again即可。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/122290/viewspace-539693/,如需轉載,請註明出處,否則將追究法律責任。

相關文章