RMAN: crosscheck archivelog all: ORA-06502: PL/SQL: Numeric Or Value Error / RMAN-00600: [8606]

11 Okt

— Beim Versuch von “crosscheck archive log all” mittels RMAN – kommt es zu folgendem Fehler:
RMAN> crosscheck archivelog all;
RMAN-12015: configuration for SBT_TAPE channel 2 is ignored
RMAN-08030: allocated channel: ORA_DISK_1
RMAN-08500: channel ORA_DISK_1: SID=494 device type=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of crosscheck command on ORA_DISK_1 channel at 07/08/2016 09:47:24
ORA-06502: PL/SQL: numeric or value error

— Auch der Versuch eines Backups scheitert –  mit RMAN-00600: [8606]
Starting backup at 08-JUL-16
current log archived
configuration for SBT_TAPE channel 2 is ignored
allocated channel: ORA_SBT_TAPE_1
channel ORA_SBT_TAPE_1: SID=494 device type=SBT_TAPE
channel ORA_SBT_TAPE_1: Data Protection for Oracle: version 6.3.0.0
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup command at 07/08/2016 08:22:22
RMAN-00600: internal error, arguments [8606] [] [] [] []

— Nach Einschalten des DEBUG Modus in RMAN (+Statement) – ergibt sich folgendes Bild:
DBGPLSQL: channel ORA_DISK_1: processing (file/handle=,recid=63773, old_status=A, hdl_isdisk=1,
devicetype=DISK, source_dbid=0) [09:47:24.590] (change)
DBGPLSQL: channel ORA_DISK_1: force: 0 [09:47:24.590] (change)
DBGPLSQL: channel ORA_DISK_1: Calling ValidateArchivedLog for [09:47:24.591] (change)
DBGRPC: krmxrpc – channel ORA_DISK_1 kpurpc2 err=6502 db=target
proc=SYS.DBMS_BACKUP_RESTORE.VALIDATEARCHIVEDLOG excl: 93
DBGRPC: krmxrpc – caloing krmxtrim: with message of length 93: @@@ORA-06502: PL/SQL: numeric or value
error
DBGRPC: ORA-06512: at “SYS.DBMS_BACKUP_RESTORE”, line 4036…

— Das zugehörige trace-File:
…  the recid=63773.
DBGMISC: 1 RAL key=848857255 recid=63773 stamp=915781729 thread=1 seq=60474 site_key=529375987
DBGMISC: lowscn=7412726846714 nxtscn=7412726857503 rstscn=1
DBGMISC: lowtime=2016-06-29 07:46:52 nexttime=2016-06-29 07:48:46 rlgtime=2014-11-13 11:24:26
DBGMISC: status=A blocks=82465 krmkch { count=1 found=FALSE }
DBGMISC: name=

  • => der Datei-Name ist nicht sauber validierbar / der Status des archivelogs ist unklar (u. U. versehentlich gelöscht)

Test:
select DB_KEY, DBINC_KEY, DB_NAME, AL_KEY, STAMP, NAME, STATUS from rc_archived_log where RECID = 63773 and SEQUENCE# =60474;

DB_KEY       DBINC_KEY      DB_NAME    AL_KEY     STAMP        NAME                                           STA
————-    ——————   ————– ————–  ———–  ————————————     —
529375985  529375986         ICAMPRD       848857255   915781729                                                               A

Lösungsvorschlag:
Löschen des Eintrags aus dem RMAN catalog table rc_archived_log in Verbindung mit dem archived redo log
delete from rc_archived_log where DB_KEY=529375985 and DB_NAME=’ICAMPRD’ and SEQUENCE#=60474;
commit;

—  CROSSCHECK-Validierung sollte nun wieder laufen (Listings, Löschvorgänge und Backups).
RMAN> crosscheck archivelog all;

— Zum Handling – das Einschalten des DEBUG-Modus in RMAN (drei Versionen):

— Ausgabe ins Script:
$rman target / debug=ALL log=/u01/app/oracle/rmandebug.txt

— Über den RMAN prompt
RMAN>debug on;
RMAN>backup database;
RMAN>debug off;

 — Im run block:
RMAN> run {
debug on;
allocate channel c1 type disk;
backup database;
debug off;
}

— Debug-Modi:
debug all / io / sql / plsql / revman / rpe

Diesen Artikel teilen :Share on Google+Share on LinkedInTweet about this on TwitterShare on Facebook