Korrumpeerunud taastamine SQL Server MDF andmebaas

Kui te SQL Server MDF-i andmebaas on rikutud, saate selles olevate andmete taastamiseks ja kadude vähendamiseks kasutada järgmisi meetodeid:

Märkus. Enne andmete taastamise toimingute tegemist varundage esmalt oma rikutud MDF- ja NDF-andmebaasifailid.

  1. Kõigepealt võite proovida SQL Server sisseehitatud käsk DBCC CHECKDB andmebaasi taastamiseks. Eeldades, et rikutud andmebaasifail on "MyDatabase.mdf", saate selles olevate andmete taastamiseks teha järgmist.
    1. Restart SQL Server.
    2. Ärge tehke mingeid toiminguid.
    3. In SQL Server Management Studio, käivitage järgmised SQL-laused:
      use master deklareerida @andmebaasinimi varchar(255) set @databasename='MyDatabase.mdf' exec sp_dboption @andmebaasinimi, N'single', N'true' — määrake sihtandmebaas ühe kasutaja režiimile dbcc checkdb(@andmebaasinimi,REPAIR_ALLOW_DATA_LOSS ) dbcc checkdb(@andmebaasinimi,REPAIR_REBUILD) exec sp_dboption @andmebaasinimi, N'single', N'false' – määrake sihtandmebaas tagasi mitme kasutaja režiimi
      

      Avaldus

      dbcc checkdb(@andmebaasinimi,REPAIR_ALLOW_DATA_LOSS)
      

      võib parandustoimingu tegemisel põhjustada teie andmebaasis olevate andmete kadumise.

      Kuigi avaldus

      dbcc checkdb(@andmebaasinimi,REPAIR_REBUILD)
      

      EI põhjusta parandustoimingu ajal andmekadu, kuid see on aeganõudvam.

      Nii et kui te ei ole kiireloomuline, võite esmalt proovida täita ainult teist dbcc checkdb lauset. Kui see avaldus ei aita andmebaasi taastada, saate täita esimese ja teise dbcc checkdb käsu.

      Pärast remonditööd võite helistada

      dbcc checkdb ('MyDatabase.mdf')
      

      uuesti, et näha, kas andmebaas on fikseeritud või mitte.

      Täpsemat teavet dbcc checkdb käsu kohta leiate aadressilt https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15

  2. Kui pärast 1. meetodi kasutamist teatab dbcc checkdb siiski mõnes tabeli tõrgetest, võite proovida SQL Server sisseehitatud käsk DBCC CHECKTABLE, et taastada need tabelid teie andmebaasis. Eeldades, et rikutud andmebaasifail on 'MyDatabase.mdf' ja tabel, mida soovite parandada, on 'MyTable', saate selle parandamiseks toimida järgmiselt.
    1. Restart SQL Server.
    2. Ärge tehke mingeid toiminguid.
    3. In SQL Server Management Studio, käivitage järgmised SQL-laused:
      use MyDatabase.mdf deklareeri @dbname varchar(255) set @dbname='MyDatabase.mdf' exec sp_dboption @dbname,'single user','true' dbcc checktable('MyTable',REPAIR_ALLOW_DATA_LOSS) dbcc checktable,'RE PAIRTRE' ) exec sp_dboption @dbname, 'üksik kasutaja', 'vale'
      

      Avaldus

      dbcc kontrolltabel ('MyTable', REPAIR_ALLOW_DATA_LOSS)
      

      võib parandustoimingu tegemisel põhjustada teie tabelis olevate andmete kadumise.

      Kuigi avaldus

      dbcc checktable('MyTable',REPAIR_REBUILD)
      

      EI põhjusta parandustoimingu ajal andmekadu, kuid see on aeganõudvam.

      Nii et kui te pole kiireloomulisel kohal, võite esmalt proovida täita ainult teist dbcc kontrolltabeli avaldust. Kui see avaldus ei aita andmebaasi taastada, saate täita esimese ja teise dbcc kontrolltabeli käsu.

      Pärast kõigi rikutud tabelite parandamise lõpetamist saate helistada

      dbcc checkdb ('MyDatabase.mdf')
      

      uuesti, et näha, kas andmebaasis olevad tabelid on fikseeritud või mitte.

    Täpsemat teavet dbcc checktable käsu kohta leiate aadressilt https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checktable-transact-sql?view=sql-server-ver15

  3. Kui meetodid 1 ja 2 ei suuda ikka rikutud andmebaasi või tabeleid parandada või kui need meetodid ei suuda soovitud andmeid taastada, võite kasutada DataNumen SQL Recovery andmete taastamiseks oma MDF-i andmebaasist.