mi blokk korrupció & hogyan tudjuk megoldani blokk korrupció
Adatvédelmi és cookie-k
ezen az oldalon cookie-kat használunk. Folytatás, Ön elfogadja azok használatát. Tudj meg többet, beleértve a sütik ellenőrzését is.
a napi informatikai folyamat, sok lehetséges oka a blokk korrupció, beleértve:
– rossz Io hardver / firmware
– OS problémák
a közzététel megkezdése előtt hadd emlékeztessem önöket, hogy hány korrupció van… 2 típusú korrupció létezik. Az adatok korrupciója fizikai vagy logikai korrupcióként nyilvánulhat meg.
tehát definiáljuk mindazokat,
a blokk fizikai sérülése érvénytelen ellenőrző összegként vagy fejlécként jelenik meg, vagy amikor a blokk tartalmazza az összes nullát. Amikor ez megtörténik, Az adatbázis nem ismeri fel a blokkot érvényes Oracle blokkként, annak tartalmától függetlenül. A fizikai korrupció (média korrupt blokkok) olyan blokkok, amelyek nyilvánvaló fizikai károkat szenvedtek. Ha az Oracle inkonzisztenciát észlel a blokk fejlécében lévő CSN és a blokk láblécében lévő CSN között, vagy a várt fejléc és lábléc struktúrák nincsenek jelen, vagy el vannak vágva, akkor az Oracle munkamenet kivételt vet fel a blokk olvasása után (ORA-01578: ORACLE data block corrupted…). A fizikai korrupciót média korrupciónak is nevezik.
● Logikai Korrupció történik, ha egy adat a blokk egy érvényes ellenőrző, stb., de a blokk tartalma logikailag következetlen. A logikai blokk sérülése akkor is előfordulhat, ha a blokk eleje alatti szerkezet (a blokk fejléc alatt) sérült. Ebben az esetben a blokk ellenőrző összege helyes, de a blokkstruktúrák megsérülhetnek. A logikai korrupció az elveszett írásból is származhat.
további információkért lásd az Oracle Support 840978.1.számú megjegyzését.
tehát?? Mikor kaphatja meg ezt a hibaüzenetet? Lehet, hogy nem kapott hibaüzenetet hozzáférés közben sérült blokkokat, amíg a hozzáférés kapcsolódó blokkok
– elemzése tábla .. Érvényesítése szerkezet
– Dbverify
– CTA– k(Create table as Select)
– Export
– közben rman folyamat
mindazok Adatbázis segédprogramok feltölti V$DATABASE_BLOCK_CORRUPTION a korrupció észlelése:
viselkedés 9i és 10g, a nézet v$database_block_corruption használt, hogy lakott csak akkor, ha RMAN Backup érvényesítése&logikai érvényesítés ellenőrzése parancs futott.
a kitöltött információ csak akkor frissül fel, ha a sérülést kijavították (media recovery/Object leesett), majd az rman Backup validate /check logical validate parancsot újra futtatták az adatbázisban vagy az érintett adatfájlban.
11g esetén ez a viselkedés megváltozott.Ha bármely adatbázis-segédprogram vagy folyamat intrablock-sérüléssel találkozik, automatikusan rögzíti azt a V$DATABASE_BLOCK_CORRUPTION fájlban.
a javítás eltávolítja a sérült blokkok metaadatait a nézetből.
a sérült blokkot tartalmazó objektumokat egy ilyen lekérdezéssel azonosíthatja
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;
vagy használhatja :
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
vagy használja:
SELECT segment_type, segment_name
FROM dba_extents
WHERE file_id = 1
AND 3840 BETWEEN block_id AND block_id + blocks -1;
vagy
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;
javítási technikák közé tartozik:
– blokk média recovery,
– visszaállítása adatfájlok,
– helyreállítása révén inkrementális mentést, és blokk newing,
– Export&import
– Táblázat létrehozása .. Mint válassza ki a parancsot.
ne felejtsük el, hogy a blokk média helyreállítása javíthatja a fizikai korrupciót, de nem logikai korrupciót.
Blokksérülés ellenőrzése a VALIDATE paranccsal
szintaxis az Rman Validate parancshoz: –
adatbázishoz :
RMAN > Validate database;
adatfájl esetében:
RMAN > Validate datafile <file no>,<file no> ;
Adatblokkhoz :
RMAN > Validate datafile <file no> block <Block no> ;
Archivelog visszaállítja a blokk Media Recovery (BMR)lehet futtatni párhuzamosan több csatornán, de datafile / backupset vizsgál, és a helyreállítási munkamenet kell futtatni ugyanazon a szerveren.
annak érdekében, hogy kiválaszthassa, melyik biztonsági másolatot használja a kívánt blokkok kiválasztásához, a blokk helyreállítása parancs támogatja a visszaállítás parancsban használt opciókat:
FROM BACKUPSET–> restore blocks from backupsets onlyFROM DATAFILECOPY–> restore blocks from datafile copies onlyFROM TAG–>restore blocks from tagged backupRESTORE UNTIL TIME|SCN|LOGSEQ
tehát a db érvényesítése után hogyan tudjuk helyreállítani a kapcsolódó korrupciót? Íme néhány példa:
helyreállítás Explicit fájl/blokk használatával:
$ rman target / log=rman1.log
RMAN> blockrecover datafile 12 block 4207;
helyreállítás a korrupciós lista használatával:
$ rman target / log=rman1.log
RMAN> blockrecover corruption list;
a sérült adatok észlelésének és megelőzésének kulcsfontosságú megközelítése a következő MAA legjobb gyakorlatok végrehajtása.
• használja az Oracle Data Guard-ot
• állítsa be az Oracle Database block corruption detection paramétereit
• végezzen biztonsági mentési és helyreállítási stratégiát a Recovery Manager (RMAN) segítségével
túl sok olyan dokumentum áll rendelkezésre a metalink-nél, amelyek mélyen megmagyarázzák a koncepciót a korrupciós példákkal. Tehát erősen javaslom, hogy tekintse át az alábbi dokumentumokat, miközben hasonló hibákat üt a rendszerén: