februari 5, 2022

Wat is Blokcorruptie & Hoe kunnen we Blokcorruptie oplossen

x

Privacy en Cookies

op deze site worden Cookies gebruikt. Verder gaat u akkoord met het gebruik ervan. Meer informatie, waaronder het controleren van cookies.

ik snap het!

Ads

in het dagelijkse IT-proces zijn er vele mogelijke oorzaken van een blokcorruptie, waaronder:

– slechte Io hardware / firmware
– OS problemen
– Oracle problemen
– herstellen door” UNRECOVERABLE “of” NOLOGGING ” database acties (in welk geval ORA-01578&ORA-01110 wordt verwacht gedrag)

voordat u begint te posten, laat me u eraan herinneren hoeveel corrupties we hebben… er zijn 2 soorten corrupties. Data corruptie kan zich manifesteren als een fysieke of een logische corruptie.

dus laten we al deze definiëren,

● fysieke corruptie van een blok manifesteert zich als een ongeldige checksum of header, of wanneer het blok alle nullen bevat. Als dat gebeurt, zal de database het blok niet herkennen als een geldig Oracle-blok, ongeacht de inhoud ervan. Fysieke corruptie (Media corrupte blokken) zijn blokken die duidelijke fysieke schade hebben opgelopen. Wanneer Oracle een inconsistentie detecteert tussen de CSN in de block header en de CSN in de block footer, of de verwachte kop-en voettekststructuren niet aanwezig zijn of verminkt zijn, dan roept de Oracle-sessie een uitzondering op bij het lezen van het blok (ORA-01578: Oracle data block corrupted…). Een fysieke corruptie wordt ook wel een media corruptie genoemd.

● logische corruptie gebeurt wanneer een gegevensblok een geldige checksum heeft, enz., maar de inhoud van het blok is logisch inconsistent. Logische blok corruptie kan ook optreden wanneer de structuur onder het begin van het blok (onder de blok header) is beschadigd. In dit geval is de Block checksum correct, maar de block structuren kunnen corrupt zijn. Logische corruptie kan ook het gevolg zijn van een verloren schrijven.

voor meer informatie, zie mijn Oracle Support Note 840978.1.

So?? Wanneer kunt u deze foutmeldingen krijgen? Het is mogelijk dat u geen foutmelding kreeg tijdens toegang tot beschadigde blokken totdat u gerelateerde blokken

– Analysetabel hebt geopend .. Validate structure
– Dbverify
– CTA ‘ s (Create table as Select)
– Export
– During RMAN process

al deze Database utilities zijn volgroeid V$DATABASE_BLOCK_CORRUPTION bij het detecteren van corruptie:

gedrag in 9i en 10g, de view V$database_block_corruption wordt gebruikt om alleen gevuld te worden wanneer RMAN Backup validate&check logical validate commando is uitgevoerd.

de opgevulde informatie die wordt gebruikt om alleen te worden vernieuwd zodra de corruptie is hersteld (mediaherstel / Object verwijderd) en bij het opnieuw uitvoeren van het RMAN Backup validate /check logical validate commando op de database of het betreffende databestand.

bij 11g is dit gedrag veranderd.Wanneer een database utility of proces tegenkomt een intrablock corruptie, het automatisch registreert in V$DATABASE_BLOCK_CORRUPTION.

de reparatie verwijdert metadata over corrupte blokken uit de weergave.

u kunt de objecten identificeren die een beschadigd blok bevatten met behulp van een query als deze

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;

of u kunt :

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

of gebruik:

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

of

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;

reparatietechnieken omvatten:

– block media recovery,
– restore data files,
– recovery by measuremental backups, and block newing,
– Export&import
– CREATE TABLE .. Als SELECT Commando.

vergeet niet dat Block media recovery fysieke corrupties kan herstellen, maar geen logische corrupties.

controleren op Blokcorruptie met het VALIDATE Commando
syntaxis voor Rman Validate Commando: –

Voor Database :

RMAN > Validate database;

voor databestand :

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

voor datablok :

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

Archivelog herstelt voor Block Media Recovery (BMR) kan parallel worden uitgevoerd op meerdere kanalen, maar datafile/backupset scans en het herstel sessie moet allemaal draaien in dezelfde server sessie.

om te kunnen selecteren welke back-up zal worden gebruikt om de gewenste blokken te selecteren, ondersteunt het block recover commando opties die gebruikt worden in het restore Commando:

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

dus, na het valideren van onze db dan hoe we kunnen herstellen gerelateerde corrupties? Hier zijn enkele voorbeelden:

herstel Met expliciet bestand / blok:

$ rman target / log = rman1.log

RMAN> blockrecover datafile 12 block 4207;

herstel met behulp van Corruptielijst :

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

de belangrijkste aanpak voor het opsporen en voorkomen van beschadigde gegevens is het uitvoeren van de volgende MAA Best Practices.

* gebruik Oracle Data Guard
* Stel de Oracle Database block corruption detection parameters
* implementeer een back-up – en herstelstrategie met Recovery Manager (RMAN)

er zijn te veel documenten beschikbaar bij metalink die covers zijn die concept grondig uitleggen met voorbeelden van corrupties. Zo, Ik raad ten zeerste aan om onderstaande documenten te bekijken terwijl u soortgelijke fouten op uw systeem raakt:

Behandeling Oracle Blok Beschadigingen in Oracle7/8/8l/9i/10g/11g
Master Opmerking voor de Afhandeling van de Oracle-Database Corruptie
Data Recovery Adviseur – Corruptie Referentie Gids
RMAN : Block-Level Recovery Media – Concept & Voorbeeld
OERR: ORA-1578 “ORACLE data blok beschadigd (file # %s, blok # %s)”Meester Opmerking
het OPLOSSEN van problemen EN het OPLOSSEN van een ORA-1110
11g Nieuwe Functie V$Database_block_corruption Verbeteringen en Rman Opdracht Valideren
http://www.oracle.com/technetwork/database/availability/maa-datacorruption-bestpractices-396464.pdf
Reklamlar

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.