ORA-19566: exceeded limit of 0 corrupt blocks

Hallo, (Oracle 8.1.7.4)

ich habe folgendes Problem, die RMAN-Sicherung ist mit dem Fehler

Error backing up file 30, block 559019: logical corruption

RMAN-03006: non-retryable error occurred during execution of command: backup
RMAN-07004: unhandled exception during command execution on channel t1
RMAN-10035: exception raised in RPC: ORA-19566: exceeded limit of 0 corrupt blocks for file /ps/oradata/psdb/indx/index.dbf
RMAN-10031: ORA-19583 occurred during call to DBMS_BACKUP_RESTORE.BACKUPPIECECREATE

abgebrochen.

Leider habe ich den Index der auf dem korrupten Block lag per rebuild an eine andere Stelle verschoben, so das ich jetzt dbms_repair wohl nicht mehr verwenden kann. Ich habe zumindest keine Option gefunden bei der ich die korrupte Blocknummer explizit angeben kann.

Bei der Hardwareüberprüfung wurde kein Fehler gefunden, so das es wohl „nur“ ein logischer Fehler ist.

Die Datenbank herunterfahren und recovern ist nur im absoluten Notfall möglich, ich müßte dann mehrere Datenbanken recovern die mit dieser eng verknüpft sind und das ist in Prod. nicht gerne gesehen.

Jetzt habe ich in Bezug auf den Fehler schon gelesen man könnte ihn evtl. überschreiben indem man eine Tabelle anlegt und so lange mit Daten füllen bis dieser Block dann überschrieben wird und der logische Fehler somit wieder verschwindet.

Die Frage die ich bei diesem Vorgehen habe ist: Was passiert wenn der Fehler nicht überschrieben wird ? Welcher Fehlermeldungen gibt es dann, stürzt mir die Datenbank dabei ab ?

Grüße

Chris

Hallo Chris,

wenn ich dich richtig verstehe, dann ist der Block mittlerweile unbelegt. Das heisst aber auch, dass da kein logischer Fehler drin stehen kann. Ob sich der RMAN immer noch aufregt weiß ich nicht (kommt auch auf die Art des Backups an), ich würde es einfach mal ausprobieren. Falls dann der Fehler immer noch auftritt würde ich mich allerdings an Metalink wenden, schliesslich bezahlst du (deine Firma) dafür… (dort bezügl. Restore nicht locker lassen, notfalls behaupte dein letztes Backup ist auch im A… - die Herrschaften dort tendieren in letzter Zeit etwas dazu den einfachsten Weg zu gehen).

Gruß,
Martin

Hallo Martin,

also der Fehler besteht tatsächlich immer noch (sagt zumindest DBVERIFY und die RMAN-Sicherung die immer noch bei dem Datenfile abschmiert), und die Abfrage

select owner, segment_name, partition_name segment_type
from dba_extents
where file_id = 30
and 559019 between block_id and block_id + blocks - 1

sagt mir das der Block nicht genutzt wird.

Diese Idee mit der Tabelle (erstellen, Extents allokieren bis der Block allokiert ist und dann per FOR-Schleife voll schreiben) kommt aus Metalink, ich weiß nur nicht was passiert wenn das schreiben auf den korrupten Block fehlschlägt. gibt das nur eine Fehlermeldung und Oracle rollt meine Session zurück oder schmiert mir die DB dabei evtl. ab ?

Grüße

Chris

Problem nach RMAN ‚set maxcorrupt for datafile‘
Hallo,

ich habe für die RMAN- Sicherung (damit die nicht mit Fehlern abbricht) den Parameter „set maxcorrupt for datafile“ benutzt.

Zum Testen habe ich das Backup dann in eine andere Datenbank gespielt.
Danach hat dbverify, wahrscheinlich für jeden Block, das hier ausgespuckt:

.
.
.
Found block already marked corrupted
Block Checking: DBA = 126611381, Block Type =
Found block already marked corrupted
Block Checking: DBA = 126611382, Block Type =
Found block already marked corrupted
Block Checking: DBA = 126611383, Block Type =
Found block already marked corrupted
Block Checking: DBA = 126611386, Block Type =
Found block already marked corrupted
Block Checking: DBA = 126611387, Block Type =
Found block already marked corrupted
Block Checking: DBA = 126611388, Block Type =
Found block already marked corrupted

DBVERIFY - Verification complete

Total Pages Examined : 800000
Total Pages Processed (Data) : 0
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 769918
Total Pages Failing (Index): 0
Total Pages Processed (Other): 11673
Total Pages Empty : 18409
Total Pages Marked Corrupt : 0
Total Pages Influx : 0

gibt es eine Möglichkeit den Corrupt-Markierung wieder aufzuheben, damit ich herausfinden kann ob der eigentliche Fehler mit geklont wurde ?

Grüße

Chris