mikä on Block Corruption & How We can Solve Block Corruption
Yksityisyys ja evästeet
evästeitä käytetään tällä sivustolla. Jatkan, hyväksyt niiden käytön. Lue lisää, mukaan lukien evästeiden tarkistaminen.
päivittäisessä IT-prosessissa on monia mahdollisia syitä korttelikorruptioon mm.:
– Bad IO hardware / firmware
– OS problems
– Oracle problems
– Recovering through ”UNCOVERABLE” tai ”NOLOGGING” database actions (jolloin ORA-01578&ORA-01110 is expected behavior)
ennen kuin alkaa julkaista, haluan muistuttaa kuinka monta korruptiota meillä on… on olemassa 2 erilaista korruptiota. Tietojen korruptio voi ilmetä fyysisenä tai loogisena korruptiona.
Määritelläänpä siis kaikki nuo,
● lohkon fyysinen korruptio ilmenee virheellisenä tarkistussummana tai otsikkona, tai kun lohko sisältää kaikki nollat. Kun näin tapahtuu, tietokanta ei tunnista lohkoa kelvolliseksi Oracle-lohkoksi riippumatta sen sisällöstä. Fyysinen korruptio (median korruptoituneet lohkot) ovat palikoita, jotka ovat kestäneet selvää fyysistä vahinkoa. Kun Oracle havaitsee epäjohdonmukaisuuden CSN: n ja CSN: n välillä lohkon otsikossa tai odotetut otsikko-ja alatunnisterakenteet eivät ole läsnä tai ne ovat mankeloituneet, Oracle-istunto nostaa poikkeuksen luettuaan lohkon (ORA-01578: Oraclen datalohko vioittunut…). Fyysistä korruptiota kutsutaan myös mediakorruptioksi.
● looginen korruptio tapahtuu, kun datalohkolla on voimassa oleva tarkistussumma jne., mutta lohkon sisältö on loogisesti epäjohdonmukainen. Looginen lohkokorruptio voi syntyä myös silloin, kun lohkon alun alapuolella (lohkootsikon alapuolella) oleva rakenne on korruptoitunut. Tällöin lohkon tarkistussumma on oikea, mutta lohkorakenteet voivat olla korruptoituneita. Looginen korruptio voi johtua myös kadonneesta kirjoituksesta.
lisätietoja on Oraakkelintukikirjassa 840978.1.
niin?? Milloin saat tämän virheilmoituksen? Et voi saada virheilmoitusta aikana access vioittuneet lohkot kunnes access liittyvät lohkot
– analysoi taulukko .. Validate structure
– Dbverify
– Ctas(Create table as Select)
– Export
– During RMAN process
All those Database utilities are populates V$DATABASE_BLOCK_KORRUPTION on detecting corruption:
Behavior in 9i and 10g, the view v$database_block_korruption used to get asked only when RMAN Backup validate&check looginen validation-komento ajettiin.
asutut tiedot, joita käytetään päivittymään vain, kun korruptio on korjattu (media recovery/Object pudotettu) ja RMAN Backup validate /check looginen validate-komento uudelleenajossa tietokannassa tai kyseisessä datafilessä.
11g: n kohdalla tämä käyttäytyminen on muuttunut.Kun jokin tietokanta apuohjelma tai prosessi kohtaa intrablock korruptio, se automaattisesti tallentaa sen V$DATABASE_BLOCK_KORRUPTION.
korjaus poistaa näkymästä metatiedot korruptoituneista lohkoista.
voit tunnistaa kohteet, joissa on vioittunut lohko, käyttämällä tällaista kyselyä
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;
tai voit käyttää :
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
tai käytä:
SELECT segment_type, segment_name
FROM dba_extents
WHERE file_id = 1
AND 3840 BETWEEN block_id AND block_id + blocks -1;
tai
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;
korjaustekniikoita ovat:
– lohkomedioiden palautus,
– datafileiden palauttaminen,
– palautuminen inkrementaalisten varmuuskopioiden avulla ja lohkominen,
– vienti&tuonti
– Luo taulukko .. Valitse komento.
älä unohda, Block media recovery voi korjata fyysistä korruptiota, mutta ei loogista korruptiota.
tarkistaminen lohkon vian varalta VALIDATE-komennolla
syntaksi Rman Validate-komennolle: –
tietokannalle :
RMAN > Validate database;
Datafile :
RMAN > Validate datafile <file no>,<file no> ;
datalohko :
RMAN > Validate datafile <file no> block <Block no> ;
Archivelog palauttaa Block Media Recovery (BMR) voidaan ajaa rinnakkain useita kanavia, mutta datafile/backupset skannaa ja palautusistunto on kaikkien suoritettava samassa palvelinistunnossa.
jotta voit valita minkä varmuuskopion avulla halutut lohkot valitaan,block recover-komento tukee restore-komennossa käytettyjä asetuksia:
FROM BACKUPSET–> restore blocks from backupsets onlyFROM DATAFILECOPY–> restore blocks from datafile copies onlyFROM TAG–>restore blocks from tagged backupRESTORE UNTIL TIME|SCN|LOGSEQ
so, after validate our db than how we can recover related corruptions? Tässä muutamia esimerkkejä:
Recovery using Explicit File / Block:
$ RMAN target / log=rman1.loki
RMAN> blockrecover datafile 12 block 4207;
palautuminen korruptiolistaa käyttäen :
$ rman target / log=rman1.log
RMAN> blockrecover corruption list;
keskeinen lähestymistapa korruptoituneiden tietojen havaitsemiseen ja estämiseen on seuraavien MAA-parhaiden käytäntöjen suorittaminen.
* Use Oracle Data Guard
• Set the Oracle Database block corruption detection parameters
• Implement a backup and recovery strategy with Recovery Manager (RMAN)
metalinkissä on liian monta dokumenttia, jotka ovat covers deeply explain concept with corruptions examples. Niin, suosittelen ehdottomasti tarkistaa alla docs kun olet lyömällä samanlaisia virheitä järjestelmään: