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