kétféle korrupció létezik.
a. fizikai korrupció: ez általában a Média korrupciójának köszönhető. Ebben az esetben a blokk érvénytelen checksum.it május tartalmaz nulla. Ez általában az infrastrukturális problémák,például a média ,a hálózat, a memória eredménye.
az RMAN blokk helyreállítása a fizikai korrupció eltávolítására használható
az ORA-01578 hibát látjuk: Az ORACLE adatblokk sérült a riasztási naplóban, amikor az oracle fizikai sérülést észlel. Az Oracle észleli a korrupciót a blokk fejlécének és a blokk láblécének ellenőrzésével.
B. logikai korrupció: ez akkor fordul elő, ha az oracle a blokk fejlécét és láblécét jónak találja, de belső konzisztenciát talál a blokkban. Általában az Oracle szoftver valamilyen hibája miatt történik. Amikor az oracle észleli ,a hibát a riasztási naplóba dobja.
ORA-08103-ez a hiba egy adott adatblokk logikai korrupciós hibája.
ORA – 00600-ez a hiba a blokkolási sérüléshez kapcsolódik , és magasabb SCN miatt fordul elő, mint az adatbázis SCN.
hogyan kell ellenőrizni az adatbázis korrupció
adatbázis korrupció megtalálható az alábbi módszerrel
a. RMAN
c. ellenőrzése riasztási napló lehetséges előfordulása
c. dbverify
d. Export
e. elemzése parancs
rman
Futtatás parancs alatt
RMAN> backup validate check logical database;
“a” logikai ellenőrzés ” opció mind a fizikai, mind a logikai Blokkkorrupciók azonosítására szolgál.
használhatjuk az alábbi parancsot abban az esetben, ha szelektíven szeretnénk ellenőrizni
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;
válassza ki a nézetet az RMAN által észlelt sérült blokkok azonosításához.
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;
Felhívjuk figyelmét, hogy a Sérült blokk javítása után a blokkot azonosító sor törlődik a nézetből.
riasztási napló ellenőrzése a lehetséges előforduláshoz
ellenőrizze a riasztást. a sérült blokkok naplófájlja, az adatfájlok listája.
For ex:- ORA-01578: ORACLE data block corrupted (file # 11, block # 45)ORA-01110: data file 5: '/xyz/db01.dbf'
dbverify
a Dbverify segédprogramot a fizikai és logikai intra blokk korrupciók azonosítására is használhatja.
dbv file=datafile_name blocksize=datafile_block_size
az alábbi paranccsal generálhatja a dbv parancsot az összes adatfájlhoz
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
nyers eszköz esetén
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 tároló esetén
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álás
a táblázat vagy séma exportálása esetén a sérült a táblázatban vagy sémában
de az export nagy korlátozása az, hogy az első korrupció után azonnal meghibásodik., így a teljes kép kimarad.
ANALYZ parancs
az ANALYZ a legjobb segédprogram, amely maximális ellenőrzéseket végez.
ez az egyszerű segédprogram, hogy ellenőrizze a korrupciók kapcsolódó index bármilyen eszközzel.
a korrupció táblázattal történő ellenőrzéséhez tegye a következőket:
ANALYZE TABLE <OWNER.TABLE_NAME> VALIDATE STRUCTURE;
a korrupció index segítségével történő ellenőrzéséhez tegye a következőket:
ANALYZE INDEX <OWNER.INDEX_NAME> VALIDATE STRUCTURE;
a táblázat és az index(ek) sérülésének ellenőrzéséhez a kereszthivatkozások ellenőrzéséhez tegye a következőket:
ANALYZE TABLE <OWNER.TABLE_NAME> VALIDATE STRUCTURE CASCADE;
a partíciós táblákhoz az ANALYZE parancsot kell használnunk az INVALID_ROWS opcióval, hasonlóan a következőhöz:
ANALYZE TABLE <OWNER.TABLE_NAME> VALIDATE STRUCTURE CASCADE INTO INVALID_ROWS;
hogyan lehet kijavítani a korrupciót
a. A blockrecover rman parancs használata
a blokk helyreállításával csak a helyreállított blokkok nem érhetők el, a rest adatfájl elérhető
RMAN >blockrecover adatfájl 10 blokk 1688
RMAN > BLOCKRECOVER korrupciós lista visszaállítása az időig ‘SYSDATE– 7’;
b. adatfájl-helyreállítás használata biztonsági mentésből vagy készenléti állapotból (ha van)
c. teljes adatbázis-helyreállítás
d. abban az esetben, ha csak az index sérülése van, eldobhatjuk az indexet, és újra létrehozhatjuk
e. használhatjuk a DBMS_REPAIR alkalmazást. Nem javítja ki a sérült blokkot, de ezt a blokkot kihagyásként jelöli meg, és most nem ellenőrzi ezt a blokkot