Korrupt helyreállítása SQL Server MDF adatbázis

Amikor SQL Server Az MDF adatbázis sérült, a következő módszerekkel állíthatja helyre a benne lévő adatokat, hogy csökkentse a veszteséget:

Megjegyzés: Mielőtt bármilyen adat-helyreállítási műveletet végrehajtana, először készítsen biztonsági másolatot a sérült MDF és NDF adatbázisfájlokról.

  1. Először is, megpróbálhatod SQL Server beépített parancs DBCC CHECKDB az adatbázis helyreállításához. Feltételezve, hogy a sérült adatbázisfájl a 'MyDatabase.mdf', akkor a következőképpen állíthatja vissza a benne lévő adatokat:
    1. Restart SQL Server.
    2. Ne végezzen semmilyen műveletet.
    3. In SQL Server A Management Studio programban hajtsa végre a következő SQL utasításokat:
      használja a master deklarációt @adatbázisnév varchar(255) set @databasename='Sajátadatbázis.mdf' exec sp_dboption @adatbázisnév, N'single', N'true' -- A céladatbázis beállítása egyfelhasználós módra dbcc checkdb(@adatbázisnév,REPAIR_ALLOW_DATA_LOSS ) dbcc checkdb(@adatbázisnév,REPAIR_REBUILD) exec sp_dboption @adatbázisnév, N'single', N'false' -- A céladatbázis visszaállítása többfelhasználós módba
      

      Az állítás

      dbcc checkdb(@adatbázisnév,JAVÍTÁS_ALLOW_ADATOK_LOSS)
      

      a javítási művelet végrehajtásakor egyes adatok elvesztését okozhatja az adatbázisban.

      Miközben az állítás

      dbcc checkdb(@adatbázisnév,JAVÍTÁS_ÚJRABUILD)
      

      NEM okoz adatvesztést a javítási művelet során, de ez időigényesebb.

      Tehát ha nem sürgős, először megpróbálhatja végrehajtani a második dbcc checkdb utasítást, ha ez az utasítás nem segít az adatbázis helyreállításában, akkor végrehajthatja az első és a második dbcc checkdb parancsot.

      A javítási művelet után hívhat

      dbcc checkdb('Sajátadatbázis.mdf')
      

      újra megnézni, hogy az adatbázis javítva van-e vagy sem.

      A dbcc checkdb paranccsal kapcsolatos részletesebb információk itt találhatók https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15

  2. Ha az 1. módszer használata után a dbcc checkdb továbbra is hibákat jelez egyes táblákban, próbálkozhat SQL Server beépített DBCC CHECKTABLE paranccsal, hogy helyreállítsa ezeket a táblákat az adatbázisban. Feltételezve, hogy a sérült adatbázisfájl a 'MyDatabase.mdf', és a javítani kívánt tábla a 'MyTable', akkor a következőképpen javíthatja ki:
    1. Restart SQL Server.
    2. Ne végezzen semmilyen műveletet.
    3. In SQL Server A Management Studio programban hajtsa végre a következő SQL utasításokat:
      use MyDatabase.mdf deklarál @dbname varchar(255) set @dbname='Sajátadatbázis.mdf' exec sp_dboption @dbname,'single user','true' dbcc checktable('MyTable',REPAIR_ALLOW_DATA_LOSS) dbcc checktable,'REPAIRTRE'('DMyIRTRE) ) exec sp_dboption @dbname,'egy felhasználó','hamis'
      

      Az állítás

      dbcc checktable('MyTable',REPAIR_ALLOW_DATA_LOSS)
      

      a javítási művelet végrehajtásakor bizonyos adatok elvesztését okozhatja a táblázatban.

      Miközben az állítás

      dbcc checktable('MyTable',REPAIR_REBUILD)
      

      NEM okoz adatvesztést a javítási művelet során, de ez időigényesebb.

      Tehát ha nem sürgős, először megpróbálhatja végrehajtani a második dbcc checktable utasítást, ha ez az utasítás nem segít az adatbázis helyreállításában, akkor végrehajthatja az első és a második dbcc checktable parancsot.

      Miután befejezte az összes sérült tábla javítási műveletét, hívhat

      dbcc checkdb('Sajátadatbázis.mdf')
      

      újra, hogy megnézze, hogy az adatbázis táblái javítottak-e vagy sem.

    A dbcc checktable paranccsal kapcsolatos részletesebb információk itt találhatók https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checktable-transact-sql?view=sql-server-ver15

  3. Ha az 1. és 2. módszer továbbra sem tudja kijavítani a sérült adatbázist vagy táblákat, vagy ha ezek a módszerek nem tudják helyreállítani a kívánt adatokat, akkor DataNumen SQL Recovery hogy helyreállítsa az adatokat az MDF adatbázisból.