Az adatbázis integritásának megsértése, terrasoft közösség

Szükséges volt egy olyan problémával szembesülni, amikor az ügyfél "specifikus" hibái voltak a következő karakterrel:

A következő hiba (ok) történt: Az eredeti hibaüzenet: I / O hiba (rossz oldal ID) során észlelt olvasási eltolással 0x00000010a5c000 a fileC: \ Terrasoft \ Data \ terrasoftCRM 30x15 Rus.mdf

Hiba történt a rekord mentése közben. Az eredeti hibaüzenet: I / O hiba (rossz oldal ID) során észlelt olvasási eltolással 0x00000010a58000 a fileC: \ Terrasoft \ Data \ terrasoftCRM 30x15 Rus.mdf

Az eredeti hibaüzenet: Nem található a indexbejegyzés RID '16f1d2207bc9455f408a6e73882fe163ff010000' az index oldalon (1: 498 400), index ID 0, adatbázis 'TSCRM30'. Call Stack

Ez a hiba akkor fordul elő, ha az adatbázis-kiszolgáló összeomlik. Ennek megoldásához parancsfájlt kell végrehajtania az adatbázisban a Query Analyzer vagy az Management Studio segítségével:

ALTER DATABASE Adatbázisnév SET single_user

DBCC CHECKDB ('DatabaseName', Repair_allow_data_loss)

ALTER DATABASE Adatbázisnév SET multi_user

Van egy kis megjegyzés
DBCC CHECKDB a repair_allow_data_loss paraméterrel
adatvesztést eredményezhet, és esetleg sértheti a rendszer logikai integritását

ajánlott
- biztonsági mentéseket használjon
- első futás
DBCC CHECKDB a lehetőséget REPAIR_REBUILD és egyetlen - ha ez az opció nem működik (a legszélsőségesebb esetben, ha nincs más út), majd a lehetőséget repair_allow_data_loss

Ossza meg tapasztalatait is :)
Természetesen az ilyen kritikus hibák nem csak megjelenik, de általában akkor történik meg, ha valaki megváltoztatja az adatokat az adatbázisban, miközben így tesz. a jelzőfény kialszik, vagy valaki kikapcsolta a KI gombot a kiszolgálón (néha előfordul, hogy a kiszolgáló helyett egy alkalmazott számítógépét használják :)). Minden rendben lenne, ha lenne egy UPS az adatbázis-kiszolgálón, és általában nem fordulnak hozzá addig, amíg a mennydörgés kitörik. A dbcc checkdb nem mindig tud segíteni, bár persze mentettem magam :) De ha ez a probléma megtörtént, azt javaslom, hogy tegye a következőket:
1. Próbálja ki a dbcc checkdb opciókat
2. Ha szerencséd van, akkor létrehozhat egy teljes másolatát az adatbázist a biztonsági mentés vagy telepíteni, vagy sql szkriptek és az Import / Export segédprogram SSIS „öntsük” az új adatbázis és. UPS helyezze a kiszolgálóra, állítsa be az automatikus biztonsági mentést ellenőrzéssel és békésen éljen :)
3. Ha ugyanazok a táblázatok nem állíthatók vissza, akkor számomra kiderült, hogy az adatokat az ilyen táblázatokból kiválaszthatja a kiválasztott csúcson. csomagokat és "öntse" egy tiszta példányt.
Talán szerencsés vagy, és többet is kihozhatsz :)