Rikuperoni një të korruptuar SQL Server Baza e të dhënave MDF

Kur ti SQL Server Baza e të dhënave MDF është e korruptuar, mund të përdorni metodat e mëposhtme për të rikuperuar të dhënat në të, për të zvogëluar humbjen:

Shënim: Përpara se të kryeni ndonjë operacion të rikuperimit të të dhënave, ju lutemi kopjoni së pari skedarët tuaj të korruptuar të bazës së të dhënave MDF dhe NDF.

  1. Para së gjithash, mund të provoni SQL Server komandë e integruar DBCC CHECKDB për të rikuperuar bazën e të dhënave tuaja. Duke supozuar se skedari i korruptuar i bazës së të dhënave është "MyDatabase.mdf", atëherë mund të bëni si më poshtë për të rikuperuar të dhënat brenda tij:
    1. Restart SQL Server.
    2. Mos kryeni asnjë operacion.
    3. In SQL Server Management Studio, ekzekutoni deklaratat e mëposhtme SQL:
      përdor master deklaro @databasename varchar(255) vendos @databasename='MyDatabase.mdf' exec sp_dboption @databasename, N'single', N'true' -- Cakto bazën e të dhënave të destinacionit në modalitetin e një përdoruesi dbcc checkdb(@databasename,REPAIR_ALLOW_TA ) dbcc checkdb(@databasename,REPAIR_REBUILD) exec sp_dboption @databasename, N'single', N'false' -- Rivendos bazën e të dhënave të destinacionit në modalitetin me shumë përdorues
      

      Deklarata

      dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
      

      mund të shkaktojë humbjen e disa të dhënave në bazën e të dhënave tuaja kur kryeni operacionin e riparimit.

      Ndërsa deklarata

      dbcc checkdb(@databasename,REPAIR_REBUILD)
      

      NUK do të shkaktojë humbje të të dhënave gjatë operacionit të riparimit, por kërkon më shumë kohë.

      Pra, nëse nuk jeni në urgjencë, fillimisht mund të provoni të kryeni vetëm deklaratën e dytë dbcc checkdb, nëse kjo deklaratë nuk mund të ndihmojë në rikuperimin e bazës së të dhënave, atëherë mund të kryeni komandat e parë dhe të dytë dbcc checkdb.

      Pas operacionit të riparimit, mund të telefononi

      dbcc checkdb ("My Database.mdf")
      

      përsëri për të parë nëse baza e të dhënave është fikse apo jo.

      Informacione më të hollësishme rreth komandës dbcc checkdb mund të gjenden në https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15

  2. Nëse pas përdorimit të metodës 1, dbcc checkdb ende raporton gabime në disa tabela, mund të provoni SQL Server komandën e integruar DBCC CHECKTABLE për të rikuperuar këto tabela në bazën e të dhënave tuaja. Duke supozuar se skedari i korruptuar i bazës së të dhënave është "MyDatabase.mdf" dhe tabela që dëshironi të riparoni është "MyTable", atëherë mund të veproni si më poshtë për ta riparuar atë:
    1. Restart SQL Server.
    2. Mos kryeni asnjë operacion.
    3. In SQL Server Management Studio, ekzekutoni deklaratat e mëposhtme SQL:
      përdor MyDatabase.mdf deklaro @dbname varchar(255) vendos @dbname='MyDatabase.mdf' exec sp_dboption @dbname,'përdorues i vetëm','true' dbcc tabela e kontrollit ('Tabela ime',REPAIR_ALLOW_DATA_LOSStable',PAIR'db) ) exec sp_dboption @dbname, 'përdorues i vetëm', 'false'
      

      Deklarata

      tabela e kontrollit dbcc ("Tabela ime", REPAIR_ALLOW_DATA_LOSS)
      

      mund të shkaktojë humbje të disa të dhënave në tabelën tuaj kur kryeni operacionin e riparimit.

      Ndërsa deklarata

      tabela e kontrollit dbcc ('Tabela ime',REPAIR_REBUILD)
      

      NUK do të shkaktojë humbje të të dhënave gjatë operacionit të riparimit, por kërkon më shumë kohë.

      Pra, nëse nuk jeni urgjent, fillimisht mund të provoni të kryeni vetëm deklaratën e dytë të tabelës së kontrollit dbcc, nëse kjo deklaratë nuk mund të ndihmojë në rikuperimin e bazës së të dhënave, atëherë mund të kryeni komandat e parë dhe të dytë të tabelës së kontrollit dbcc.

      Pasi të keni përfunduar operacionin e riparimit për të gjitha tabelat e korruptuara, mund të telefononi

      dbcc checkdb ("My Database.mdf")
      

      përsëri për të parë nëse tabelat në bazën e të dhënave janë fikse apo jo.

    Informacion më të detajuar në lidhje me komandën e tabelës së kontrollit dbcc mund të gjenden në https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checktable-transact-sql?view=sql-server-ver15

  3. Nëse metoda 1 dhe 2 ende nuk mund të rregullojnë bazën e të dhënave të dëmtuar ose tabelat, ose nëse këto metoda nuk mund të rikuperojnë të dhënat që dëshironi, atëherë mund të përdorni DataNumen SQL Recovery për të rikuperuar të dhënat nga baza e të dhënave tuaja MDF.