februar 5, 2022

Hvad er blok korruption&hvordan vi kan løse blok korruption

privatliv og Cookies

Cookies anvendes på denne hjemmeside. Fortsat, du accepterer deres brug. Lær mere, herunder hvordan du kontrollerer cookies.

jeg forstår det!

annoncer

i den daglige IT-proces er der mange mulige årsager til en blokkorruption, herunder:

– Dårligt io– udstyr
– os-problemer
-Oracle-problemer
– gendannelse gennem “uoprettelig” eller “NOLOGGING” databasehandlinger (i hvilket tilfælde ora-01578& ora-01110 forventes adfærd)

før start til post, lad mig minde dig om, hvor mange korruptioner vi har… der er 2 typer korruptioner. Data korruption kan manifestere sig som en fysisk eller en logisk korruption.

så lad os definere alle dem,

fysisk korruption af en blok manifesterer sig som et ugyldigt kontrolsum eller overskrift, eller når blokken indeholder alle nuller. Når det sker, genkender databasen ikke blokken som en gyldig Oracle-blok, uanset dens indhold. Fysiske korruptioner (medier korrupte blokke) er blokke, der har lidt åbenlyse fysiske skader. Når Oracle registrerer en inkonsekvens mellem CSN i blokhovedet og CSN i blokfoden, eller de forventede sidehoved-og sidefodstrukturer ikke er til stede eller mangler, rejser Oracle-sessionen en undtagelse ved læsning af blokken (ORA-01578: ORACLE data block corrupted…). En fysisk korruption kaldes også en mediekorruption.

logisk korruption sker, når en datablok har et gyldigt kontrolsum osv., men blokindholdet er logisk inkonsekvent. Logisk blokkorruption kan også forekomme, når strukturen under begyndelsen af blokken (under blokoverskriften) er korrupt. I dette tilfælde er blokchecksummen korrekt, men blokstrukturerne kan være korrupte. Logisk korruption kan også skyldes en tabt skrivning.

For mere information, se min Oracle Support Note 840978.1.

så?? Hvornår kan du få disse fejlmeddelelser? Du må ikke fik fejlmeddelelse under adgang beskadigede blokke, indtil adgang relaterede blokke

– analysere tabel .. Valider struktur
– Dbverify
– CTAS(Opret tabel som Vælg)
– eksport
– under RMAN-processen

alle disse databaseværktøjer udfyldes V$DATABASE_BLOCK_CORRUPTION ved detektering af korruption:

adfærd i 9i og 10g, visningen v$database_block_corruption bruges kun til at blive befolket, når RMAN Backup validerer&kontroller logisk Validering kommando blev kørt.

de udfyldte oplysninger, der bruges til at blive opdateret, når korruptionen blev repareret (media recovery/Object droppet) og om re-run af RMAN Backup valider /check logisk valider kommando på databasen eller den berørte datafil.

med 11g er denne adfærd ændret.Når en database nytte eller proces støder på en intrablock korruption, det automatisk registrerer det i V$DATABASE_BLOCK_CORRUPTION.

reparationen fjerner metadata om korrupte blokke fra visningen.

du kan identificere de objekter, der indeholder en korrupt blok ved hjælp af en forespørgsel som denne

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;

eller du kan bruge :

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

eller brug:

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

eller

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;

reparationsteknikker inkluderer:

– Bloker mediegendannelse,
– gendannelse af datafiler,
– gendannelse ved hjælp af trinvise sikkerhedskopier og blokering,
– eksport&import
– Opret tabel .. Som Vælg kommando.

glem ikke, Bloker mediegendannelse kan reparere fysiske korruptioner, men ikke logiske korruptioner.

kontrol af Blokkorruption med VALIDERINGSKOMMANDOEN
syntaks for RMAN Valider kommando: –

til Database :

RMAN > Validate database;

til datafil :

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

til datablokering :

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

Archivelog gendanner til Block Media Recovery (BMR) kan køres parallelt på flere kanaler, men datafil/backupset scanninger og retableringen skal alle køre i den samme server session.

for at tillade valg af hvilken sikkerhedskopi der skal bruges til at vælge de ønskede blokke,understøtter kommandoen blokgendannelse indstillinger, der bruges i kommandoen Gendan:

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

så efter validere vores db end hvordan vi kan gendanne relaterede korruptioner? Her er nogle eksempler:

gendannelse ved hjælp af eksplicit fil/blok:

$ RMAN target / log=rman1.log

RMAN> blockrecover datafile 12 block 4207;

gendannelse ved hjælp af Korruptionsliste :

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

den vigtigste tilgang til at opdage og forhindre beskadigede data er at udføre følgende MAA bedste praksis.

• brug Oracle Data Guard
• Indstil Oracle Database block corruption detection parametre
• implementere en backup og recovery strategi med Recovery Manager (RMAN)

der er for mange dokumenter til rådighed på metalink, som er dækker dybt forklare koncept med korruptioner eksempler. Så jeg foreslår kraftigt at gennemgå nedenstående dokumenter, mens du rammer lignende fejl på dit system:

håndtering af Oracle Block Corruptions i Oracle7/8/8i/9i/10G/11G
Master Note til håndtering af Oracle Database Corruption Issues
Data Recovery Advisor – Corruption Reference Guide
RMAN : Block-Level Media Recovery – Concept & eksempel
OERR: ORA-1578 “ORACLE data block corrupted (file # %s, block # %s)” Master Note
Sådan fejlfindes og løses en Ora-1110
11g ny funktion v$database_block_corruption forbedringer og RMAN valider kommando
http://www.oracle.com/technetwork/database/availability/maa-datacorruption-bestpractices-396464.pdf
Reklamlar

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.