Hva Er Blokkkorrupsjon Og Hvordan Vi Kan Løse Blokkkorrupsjon
Personvern Og Informasjonskapsler
Informasjonskapsler brukes på dette nettstedet. Fortsatt, du godtar deres bruk. Lær mer, inkludert hvordan du sjekker informasjonskapsler.
i DEN daglige IT-prosessen er det mange mulige årsaker til en blokkkorrupsjon, inkludert:
– Bad IO hardware / firmware
– OS problemer
– Oracle problemer
før du begynner å legge inn, la meg minne deg på hvor mange korrupsjoner vi har… det er 2 typer korrupsjon. Data korrupsjon kan manifestere seg som en fysisk eller en logisk korrupsjon.
så la oss definere alle disse,
● Fysisk Korrupsjon av en blokk manifesterer seg som et ugyldig sjekksum eller overskrift, eller når blokken inneholder alle nuller. Når det skjer, vil databasen ikke gjenkjenne blokken som en gyldig Oracle-blokk, uavhengig av innholdet. Fysiske korrupsjoner (media corrupt blocks) er blokker som har vedvarende åpenbare fysiske skader. Når Oracle oppdager en inkonsekvens mellom CSN i blokkhodet og CSN i blokkbunnteksten, eller de forventede topp-og bunntekststrukturer ikke er til stede eller mangler, øker oracle-økten et unntak ved lesing av blokken (ORA-01578: ORACLE data block corrupted…). En fysisk korrupsjon kalles også en media korrupsjon.
● Logisk Korrupsjon skjer når en datablokk har et gyldig sjekksum, etc., men blokkinnholdet er logisk inkonsekvent. Logisk blokkkorrupsjon kan også oppstå når strukturen under begynnelsen av blokken (under blokkoverskriften) er skadet. I dette tilfellet er blokkkontrollsummen riktig, men blokkstrukturene kan være korrupte. Logisk korrupsjon kan også skyldes en tapt skrive.
for mer informasjon, se Min Oracle Support Note 840978.1.
Så?? Når kan du få denne feilmeldingen? Du kan ikke få feilmelding under access-ødelagte blokker til access-relaterte blokker
– Analyser tabell– . Valider struktur
– Dbverify
– CTAS(Opprett tabell Som Velg)
– Eksporter
– Under RMAN-prosessen
alle Disse Databaseverktøyene fylles UT V$DATABASE_BLOCK_CORRUPTION ved å oppdage korrupsjon:
Atferd i 9i og 10g, brukes visningen v$database_block_corruption til å fylles ut bare når Rman Backup validere&kontroller logisk valideringskommando Ble Kjørt.
den utfylte informasjonen som brukes til å bli oppdatert bare når korrupsjonen ble reparert (media recovery / Object droppet) og på nytt av Rman Backup validere / sjekk logisk validere kommandoen på databasen eller den berørte datafilen.
med 11g Har denne oppførselen Endret seg.Når en database verktøy eller prosess møter en intrablock korrupsjon, registrerer den automatisk det I V$DATABASE_BLOCK_CORRUPTION.
reparasjonen fjerner metadata om korrupte blokker fra visningen.
du kan identifisere objekter som inneholder en skadet blokk ved hjelp av en spørring som dette
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 bruke :
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 bruk:
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;
Reparasjonsteknikker inkluderer:
– block media recovery,
– gjenopprette datafiler,
– gjenopprette ved hjelp av inkrementelle sikkerhetskopier og blokkere nying,
– Eksporter & import
– OPPRETT TABELL .. Som VELG kommando.
Ikke glem, Block media recovery kan reparere fysiske korrupsjon, men ikke logiske korrupsjon.
Kontrollerer Blokkkorrupsjon Med VALIDER Kommandoen
Syntaks For Rman Valider Kommando: –
For Database :
RMAN > Validate database;
For Datafile :
RMAN > Validate datafile <file no>,<file no> ;
For datablokk :
RMAN > Validate datafile <file no> block <Block no> ;
Archivelog gjenoppretter For Block Media Recovery (BMR) kan kjøres parallelt på flere kanaler, men datafil/backupset skanner og gjenopprettingsøkten må alle kjøre i samme serverøkt.
for å tillate valg av hvilken backup som skal brukes til å velge de ønskede blokkene,støtter kommandoen block recover alternativer som brukes i gjenopprettingskommandoen:
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å, etter validere vår db enn hvordan vi kan gjenopprette relaterte korrupsjon? Her er noen eksempler:
Gjenoppretting ved Hjelp Av Eksplisitt Fil / Blokk:
$ rman target / log=rman1.logg
RMAN> blockrecover datafile 12 block 4207;
Gjenoppretting ved Hjelp Av Korrupsjonsliste:
$ rman target / log=rman1.log
RMAN> blockrecover corruption list;
nøkkelen tilnærming til å oppdage og forebygge ødelagte data er å utføre FØLGENDE MAA Beste Praksis.
• Bruk Oracle Data Guard
• Sett oracle Database block corruption detection parameters
• Implementere en backup og gjenoppretting strategi Med Recovery Manager (RMAN)
det er for mange dokumenter tilgjengelig på metalink som er dekker dypt forklare konsept med korrupsjon eksempler. Så, jeg anbefaler sterkt å gjennomgå under docs mens du treffer lignende feil på systemet ditt: