Februar 5, 2022

Lloios‘ Blog < Lloios 'Blog < Lloios' Blog < Lloios 'Blog < Lloios' Blog <

Datenschutz und Cookies

diese Website verwendet Cookies. Indem Sie fortfahren, stimmen Sie Ihrer Verwendung zu. Erfahren Sie mehr darüber, wie Sie Cookies kontrollieren können.

verstanden!

anzeigen

in daily IT process, There are many possible causes of a block corruption including:

– Fehlerhafte IO–Hardware / Firmware
– Betriebssystemprobleme
– Oracle-Probleme
– Wiederherstellung durch „NICHT WIEDERHERSTELLBARE“ oder „NOLOGGING“ Datenbankaktionen (in diesem Fall ist ORA-01578& ORA-01110 erwartetes Verhalten)

Bevor ich mit dem Posten beginne, möchte ich Sie daran erinnern, wie viele Beschädigungen wir haben … Es gibt 2 Arten von Beschädigungen. Datenbeschädigung kann sich als physische oder logische Beschädigung manifestieren.

Definieren wir also alle diese,

● Physische Beschädigung eines Blocks manifestiert sich als ungültige Prüfsumme oder Header oder wenn der Block alle Nullen enthält. In diesem Fall erkennt die Datenbank den Block unabhängig von seinem Inhalt nicht als gültigen Oracle-Block. Physische Korruptionen (Medien korrupte Blöcke) sind Blöcke, die offensichtlichen physischen Schaden erlitten haben. Wenn Oracle eine Inkonsistenz zwischen dem CSN im Blockheader und dem CSN in der Blockfußzeile feststellt oder die erwarteten Kopf- und Fußzeilenstrukturen nicht vorhanden oder fehlerhaft sind, löst die Oracle-Sitzung beim Lesen des Blocks eine Ausnahme aus (ORA-01578: ORACLE data block corrupted …). Eine physische Korruption wird auch als Medienkorruption bezeichnet.

● Logische Beschädigung tritt auf, wenn ein Datenblock eine gültige Prüfsumme usw. hat., aber der Blockinhalt ist logisch inkonsistent. Logische Blockbeschädigung kann auch auftreten, wenn die Struktur unterhalb des Blockanfangs (unterhalb des Blockheaders) beschädigt ist. In diesem Fall ist die Blockprüfsumme korrekt, aber die Blockstrukturen können beschädigt sein. Logische Korruption kann auch aus einem verlorenen Schreibvorgang resultieren.

Weitere Informationen finden Sie in meinem Oracle Support-Hinweis 840978.1.

Also?? Wann können Sie diese Fehlermeldungen erhalten? Möglicherweise wird während des Zugriffs auf beschädigte Blöcke keine Fehlermeldung angezeigt, bis auf zugriffsbezogene Blöcke

– Tabelle analysieren zugegriffen wird.. Validate structure
– Dbverify
– CTAS (Tabelle als Select erstellen)
– Export
– Während des RMAN-Prozesses

Alle diese Datenbankdienstprogramme werden ausgefüllt V $DATABASE_BLOCK_CORRUPTION beim Erkennen von Korruption:

Verhalten In 9i und 10g wurde die Ansicht v $ database_block_corruption verwendet, um nur dann ausgefüllt zu werden, wenn RMAN 2690>der Befehl check logical validate wurde ausgeführt.

Die ausgefüllten Informationen werden nur aktualisiert, wenn die Beschädigung repariert wurde (Medienwiederherstellung / Objekt gelöscht) und beim erneuten Ausführen des Befehls Rman Backup validate / check logical validate in der Datenbank oder in der betroffenen Datendatei.

Mit 11g hat sich dieses Verhalten geändert.Wenn ein Datenbankdienstprogramm oder -prozess auf eine Intrablock-Beschädigung stößt, zeichnet es diese automatisch in V$DATABASE_BLOCK_CORRUPTION auf.

Die Reparatur entfernt Metadaten über beschädigte Blöcke aus der Ansicht.

Sie können die Objekte, die einen beschädigten Block enthalten, mit einer Abfrage wie dieser identifizieren

SELECT DISTINCT owner, segment_name FROM v$database_block_corruption dbc JOIN dba_extents e ON dbc.file# = e.file_id AND dbc.block# BETWEEN e.block_id and e.block_id+e.blocks-1 ORDER BY 1,2;

oder Sie können verwenden :

select * from V$DATABASE_BLOCK_CORRUPTION; << get file#&block from here
SELECT segment_type, segment_name
FROM dba_extents
WHERE file_id = 1
AND block_id < 3840
AND block_id + blocks >= 3840;
SEGMENT_TYPE SEGMENT_NAME
—————– —————————————-
INDEX I_SOURCE1

oder verwenden:

SELECT segment_type, segment_name
FROM dba_extents
WHERE file_id = 1
AND 3840 BETWEEN block_id AND block_id + blocks -1;

oder

select 'SELECT tablespace_name, segment_type, owner, segment_name FROM dba_extents WHERE file_id = ' || FILE# || ' and ' || BLOCK# || ' between block_id AND block_id + blocks – 1;' from v$database_block_corruption order by 1;

Reparaturtechniken umfassen:

– Block Media Recovery,
– Wiederherstellen von Datendateien,
– Wiederherstellung mittels inkrementeller Backups und Block Newing,
– Export&import
– TABELLE erstellen .. ALS SELECT-Befehl.

Vergessen Sie nicht, dass Block Media Recovery physische Beschädigungen reparieren kann, aber keine logischen Beschädigungen.

Überprüfung auf Blockbeschädigung mit dem Befehl VALIDATE
Syntax für den Befehl Rman Validate: –

Für Datenbank :

RMAN > Validate database;

Für Datafile :

RMAN > Validate datafile <file no>,<file no> ;

Für Datenblock :

RMAN > Validate datafile <file no> block <Block no> ;

Archivelog-Wiederherstellungen für Block Media Recovery (BMR) können parallel auf mehreren Kanälen ausgeführt werden, aber Datafile / Backupset-Scans und die Wiederherstellungssitzung müssen alle in derselben Serversitzung ausgeführt werden.

Um die Auswahl des Backups zu ermöglichen, mit dem die gewünschten Blöcke ausgewählt werden sollen, unterstützt der Befehl block recover Optionen, die im Befehl restore verwendet werden:

FROM BACKUPSET–> restore blocks from backupsets onlyFROM DATAFILECOPY–> restore blocks from datafile copies onlyFROM TAG–>restore blocks from tagged backupRESTORE UNTIL TIME|SCN|LOGSEQ

Also, nachdem wir unsere Datenbank validiert haben, wie können wir verwandte Beschädigungen wiederherstellen? Hier sind einige Beispiele:

Wiederherstellung mit expliziter Datei / Block:

$ rman target / log=rman1 .log

RMAN> blockrecover datafile 12 block 4207;

Wiederherstellung mit Korruptionsliste :

$ rman target / log=rman1.log 
RMAN> blockrecover corruption list;

Der Schlüsselansatz zum Erkennen und Verhindern beschädigter Daten besteht darin, die folgenden Best Practices für MAA durchzuführen.

* Verwenden Sie Oracle Data Guard
• Legen Sie die Parameter für die Erkennung von Oracle-Datenbankblocks fest
• Implementieren Sie eine Sicherungs- und Wiederherstellungsstrategie mit Recovery Manager (RMAN)

Bei metalink sind zu viele Dokumente verfügbar, die das Konzept anhand von Korruptionsbeispielen nicht ausführlich erläutern. Daher empfehle ich dringend, die folgenden Dokumente zu überprüfen, während Sie ähnliche Fehler auf Ihrem System finden:

Umgang mit Oracle Block Corruptions in Oracle7/8/8i/9i/10g/11g
Master Note für den Umgang mit Oracle Database Corruption Issues
Data Recovery Advisor – Corruption Reference Guide
RMAN : Block-Level Media Recovery – Konzept & Beispiel
OERR: ORA-1578 „ORACLE data block corrupted (file # %s, block # %s)“ Master Note
FEHLERBEHEBUNG UND BEHEBUNG eines ORA-1110
11g Neue Funktion V$Database_block_corruption Verbesserungen und Befehl Rman Validate
http://www.oracle.com/technetwork/database/availability/maa-datacorruption-bestpractices-396464.pdf
Reklamlar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.