Obnovte Corrupt SQL Server Databáza MDF

Keď SQL Server Databáza MDF je poškodená. Môžete použiť nasledujúce metódy na obnovenie údajov v nej, aby sa znížila strata:

Poznámka: Pred vykonaním akýchkoľvek operácií obnovy údajov najskôr zálohujte poškodené súbory databázy MDF a NDF.

  1. V prvom rade môžete vyskúšať SQL Server zabudovaný príkaz DBCC CHECKDB na obnovu vašej databázy. Za predpokladu, že poškodený databázový súbor je „MyDatabase.mdf“, môžete v ňom obnoviť údaje takto:
    1. Restart SQL Server.
    2. Nevykonávajte žiadne operácie.
    3. In SQL Server Management Studio, vykonajte nasledujúce príkazy SQL:
      use master declare @databasename varchar (255) set @ databasename = 'MyDatabase.mdf' exec sp_dboption @databasename, N'single ', N'true' - Nastavte cieľovú databázu na režim pre jedného používateľa dbcc checkdb (@ databasename, REPAIR_ALLOW_DATA_LOSS ) dbcc checkdb (@ databasename, REPAIR_REBUILD) exec sp_dboption @databasename, N'single ', N'false' - Nastaviť cieľovú databázu späť do režimu pre viacerých používateľov
      

      Výkaz

      dbcc checkdb (@ databasename, REPAIR_ALLOW_DATA_LOSS)
      

      môže spôsobiť stratu niektorých údajov vo vašej databáze pri vykonaní opravy.

      Zatiaľ čo vyhlásenie

      dbcc checkdb (@ databasename, REPAIR_REBUILD)
      

      NEBUDE spôsobovať stratu dát počas opravy, ale je to časovo náročnejšie.

      Pokiaľ teda nie ste na urgentnom príjme, môžete sa najskôr pokúsiť vykonať iba druhý príkaz dbcc checkdb, ak tento príkaz nemôže pomôcť obnoviť databázu, môžete vykonať prvý a druhý príkaz dbcc checkdb.

      Po vykonaní opravy môžete zavolať

      dbcc checkdb ('MyDatabase.mdf')
      

      znova, aby ste zistili, či je databáza pevná alebo nie.

      Podrobnejšie informácie o príkaze dbcc checkdb nájdete na https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15

  2. Ak po použití metódy 1 program dbcc checkdb stále hlási chyby v niektorých tabuľkách, môžete to skúsiť SQL Server zabudovaný príkaz DBCC CHECKTABLE na obnovu týchto tabuliek vo vašej databáze. Za predpokladu, že poškodený databázový súbor je „MyDatabase.mdf“ a tabuľka, ktorú chcete opraviť, je „MyTable“, môžete ho opraviť takto:
    1. Restart SQL Server.
    2. Nevykonávajte žiadne operácie.
    3. In SQL Server Management Studio, vykonajte nasledujúce príkazy SQL:
      použite MyDatabase.mdf deklarovať @dbname varchar (255) set @ dbname = 'MyDatabase.mdf' exec sp_dboption @ dbname, 'single user', 'true' dbcc checktable ('MyTable', REPAIR_ALLOW_DATA_LOSS) dbcc checktable ('MyTable', REPAIR_REBU ) exec sp_dboption @ dbname, 'single user', 'false'
      

      Výkaz

      kontrolná tabuľka dbcc ('MyTable', REPAIR_ALLOW_DATA_LOSS)
      

      môže spôsobiť stratu niektorých údajov vo vašej tabuľke pri vykonaní opravy.

      Zatiaľ čo vyhlásenie

      kontrolná tabuľka dbcc ('MyTable', REPAIR_REBUILD)
      

      NEBUDE spôsobovať stratu dát počas opravy, ale je to časovo náročnejšie.

      Pokiaľ teda nie ste na urgentnom príjme, môžete sa najskôr pokúsiť vykonať iba druhý príkaz skontrolovateľnej tabuľky dbcc, ak tento príkaz nemôže pomôcť obnoviť databázu, môžete vykonať prvý a druhý príkaz skontrolovateľnej tabuľky dbcc.

      Po dokončení operácie opravy všetkých poškodených tabuliek môžete zavolať

      dbcc checkdb ('MyDatabase.mdf')
      

      znova, aby ste zistili, či sú tabuľky v databáze pevné alebo nie.

    Podrobnejšie informácie o príkaze dbcc checktable nájdete na https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checktable-transact-sql?view=sql-server-ver15

  3. Ak metódy 1 a 2 stále nedokážu opraviť poškodenú databázu alebo tabuľky, alebo ak tieto metódy nedokážu obnoviť požadované údaje, môžete použiť DataNumen SQL Recovery na obnovenie údajov z databázy MDF.