miten tunnistaa korruptoituneet lohkot Oracle-tietokannassa ja korjata ne

korruptiota on kahdenlaisia.

a.fyysinen korruptio: tämä tapahtuu yleensä median korruption vuoksi. Tässä tapauksessa lohko ei ole virheellinen checksum.it toukokuuta sisältää nolla. Tämä on yleensä seurausta infrastruktuurin ongelma, kuten media, verkko, muisti.

RMAN Blockin palautusta voidaan käyttää fyysisen korruption poistamiseen

näemme virheen ORA-01578: Oraclen datalohko vioittunut hälytyslokissa, kun oracle havaitsee fyysisen korruption. Oracle havaita korruptio tarkistamalla lohko otsikko ja lohko alatunniste.

B. looginen korruptio: näin käy, kun oracle pitää lohkon ylä-ja alatunnusta hyvänä, mutta löytää lohkon sisäisen johdonmukaisuuden. Yleensä se tapahtuu jonkin vian vuoksi Oracle-ohjelmistossa. Kun oracle havaitsee sen, se heittää virheen hälytyslokiin.

ORA – 08103-tämä virhe on tietyn datalohkon looginen korruptiovirhe.
ORA – 00600-tämä virhe liittyy lohkon korruptioon , ja johtuu siitä, että SCN on korkeampi kuin tietokannan SCN.

tietokannan korruption tarkistaminen

tietokannan korruptio voidaan löytää alla olevalla menetelmällä

a. RMAN

C. hälytyslokin tarkistaminen mahdollisen esiintymisen varalta

c. dbverify

D. vienti

E. Analyze-komento

RMAN

Suorita komennon alapuolella

RMAN> backup validate check logical database;

”tarkista looginen” vaihtoehtoa käytetään tunnistamaan sekä fyysinen että looginen lohko korruptiot.

Voimme käyttää alla olevaa komentoa, jos haluamme tehdä tarkistuksia valikoivasti

BACKUP VALIDATE DATAFILE 1;BACKUP VALIDATE check logical DATAFILE 1;BACKUP VALIDATE TABLESPACE TOOLS;BACKUP VALIDATE check logical TABLESPACE TOOLS;BACKUP VALIDATE BACKUPSET 1;BACKUP VALIDATE CURRENT CONTROLFILE;

Valitse näkymä tunnistaaksesi RMAN: n havaitsemat vioittuneet lohkot.

SQL> select * from v$database_block_corruption;For each row, find the segment impactedSQL> SELECT TABLESPACE_NAME, SEGMENT_NAME, PARTITION_NAME, SEGMENT_TYPE FROM DBA_EXTENTS WHERE FILE_ID=&FILE_ID AND &BLOCK_ID BETWEEN BLOCK_ID AND BLOCK_ID + BLOCKS - 1; 

huomaa, että kun vioittunut lohko on korjattu, lohkon tunnistava rivi poistetaan näkymästä.

tarkistettu varoitusloki mahdollisen esiintymisen varalta

Tarkista hälytys. lokitiedosto vioittuneille lohkoille, datatiedostoluettelo.

For ex:- ORA-01578: ORACLE data block corrupted (file # 11, block # 45)ORA-01110: data file 5: '/xyz/db01.dbf'

dbverify

Voit myös käyttää dbverify-apuohjelmaa tunnistamaan fyysisiä ja loogisia Lohkovaurioita.

dbv file=datafile_name blocksize=datafile_block_size

voit käyttää alla olevaa komentoa DBV-komennon luomiseen kaikille datafiileille

sqlplus /nologconnect / as sysdbaset feedback offset head offset echo offset linesize 200set pagesize 2500spool /tmp/dbvlogs/dbvchk.shselect 'dbv file=' || name || ' blocksize='|| block_size || ' logfile=' ||substr(name, instr(name, '/', -1, 1) +1) ||'.' || file# || '.log' from v$datafile/spool off

RAW device

select 'dbv file='||name||' blocksize='||block_size||' end='||(bytes/block_size)||' logfile='||substr (name, instr (name, '/', -1, 1) + 1)||'.'||file#||'.log'from v$datafile;

ASM storage

select 'dbv file=' || name || ' blocksize='|| block_size || ' USERID=sys/&SYS_PASSWORD logfile=' ||substr(name, instr(name, '/', -1, 1) +1) ||'.' || file# || '.log' from v$datafile/

Export

käyttämällä taulukon tai skeeman vientiä löydät myös korruption taulukossa tai skeemassa

, mutta suuri rajoitus viennissä on se, että se epäonnistuu heti ensimmäisen korruption kohtaamisen jälkeen., joten kokonaiskuva jää näkemättä.

ANALYZE-komentoa

ANALYZE on kutsuttu parhaaksi apuohjelmaksi, joka suorittaa maksimitarkistukset.

tämä on helppo apuohjelma tarkistaa indeksiin liittyvät korruptiot millä tahansa keinolla.

jos haluat tarkistaa korruption taulukolla, toimi seuraavasti:

ANALYZE TABLE <OWNER.TABLE_NAME> VALIDATE STRUCTURE;

jos haluat tarkistaa korruption indeksillä, toimi seuraavasti:

ANALYZE INDEX <OWNER.INDEX_NAME> VALIDATE STRUCTURE;

tarkista korruptio taulukon ja sen indeksit suorittaa ristiviittaukset tee seuraavat:

ANALYZE TABLE <OWNER.TABLE_NAME> VALIDATE STRUCTURE CASCADE;

partition taulukot, meidän täytyy käyttää analysoida komento INTO INVALID_ROWS vaihtoehto, samanlainen kuin seuraavat:

ANALYZE TABLE <OWNER.TABLE_NAME> VALIDATE STRUCTURE CASCADE INTO INVALID_ROWS;

miten korruptio korjataan

a. Käyttämällä blockrecover RMAN-komentoa

Block recover-komentoa

RMAN>blockrecover-datatiedosto on saatavilla

RMAN

RMAN > BLOCKRECOVER-KORRUPTIOLISTAN palautus kunnes aika ”SYSDATE– 7′;

B. käyttämällä datafile recovery varmuuskopiosta tai valmiustilasta (jos sinulla on)

C. Complete database recovery

D. Jos kyseessä on vain indeksin korruptio, voimme pudottaa indeksin ja luoda sen uudelleen

e. Voimme käyttää dbms_repairia. Se ei korjaa korruptoitunut lohko, mutta se merkitsee, että lohko ohitetaan ja et tarkista, että lohko nyt eteenpäin

Vastaa

Sähköpostiosoitettasi ei julkaista.