Hogyan kivonják az adatokat a hibás blokk táblázata ora-01578 oracle adatblokk sérült (fájl, tömb

Értékelés: 0/5

Ebben a post, felvetette a rendelkezésre álló adatok és a sérült asztal megkerülve a sérült egységet. Itt figyelembe vesszük a megszerzésének lehetőségét az adatokat közvetlenül a tábla sérült blokk.

Ez a lehetőség valósággá válik, ha az összes oszlopot a táblázat van egy index. Hogy pontosabbak legyünk - lehet beszerezni az index szegmens információt tárolnak, annak ellenére, hogy a megfelelő blokkok az asztal sérült.

A posta bebizonyosodott, mint egy módja annak, hogy ROWID első táblázat bejegyzés a hiba blokk és ROWID első bejegyzés a blokk következő hibás blokk:

válassza dbms_rowid.rowid_create (1 DATA_OBJECT_ID, FileNumber, nomer_bloka, 0) first_rowid származó kettős - ROWID megtalálja az első bejegyzés egy hiba blokk

válassza dbms_rowid.rowid_create (1 DATA_OBJECT_ID, FileNumber, nomer_bloka + 1,0) last_rowid származó kettős - ROWID megtalálja az első rekordot a blokk után megsérült.

Így van egy sor ROWID elveszett A táblázat rekordjait. És most, ha van az index, ilyen kéréseket a minta azok végrehajtása nem igényel olvasás asztalra. Ez azt jelenti, hogy a teljesítményük elég olvasott indexek. A javasolt alábbi lekérdezéseket kell használni valamennyi meglévő index az asztalra (jó lenne, ha lenne kódok minden oszlop a táblázatban). Így mentheti a lehető legtöbb információt.

Ha legalább egy kulcsot egy NOT NULL megszorítás, ha tudod használni a gyors, teljes scan módszerrel elérni az index értéke:

Ellenkező esetben nem lesz képes használni a gyors, teljes scan, és el kell fogadnia egy sor vizsgálatot. Ehhez meg kell tudni, hogy a minimális értékét elvesztette vezető index kulcs (az első oszlopban az index), amely az Ön számára indexkeresést