Bozuk Kurtarmak SQL Server MDF Veritabanı

Ne zaman SQL Server MDF veritabanı bozuksa, içindeki verileri kurtarmak, kaybı azaltmak için aşağıdaki yöntemleri kullanabilirsiniz:

Not: Herhangi bir veri kurtarma işlemi gerçekleştirmeden önce lütfen bozuk MDF & NDF veritabanı dosyalarınızın yedeğini alın.

  1. Öncelikle deneyebilirsiniz SQL Server yerleşik komut DBCC KONTROL DB'si veritabanınızı kurtarmak için. Bozuk veritabanı dosyasının 'MyDatabase.mdf' olduğunu varsayarsak, içindeki verileri kurtarmak için aşağıdakileri yapabilirsiniz:
    1. Restart SQL Server.
    2. Herhangi bir işlem yapmayın.
    3. In SQL Server Management Studio, aşağıdaki SQL deyimlerini yürütün:
      use master notice @databasename varchar(255) set @databasename='MyDatabase.mdf' exec sp_dboption @databasename, N'single', N'true' -- Hedef veritabanını tek kullanıcı moduna ayarlar dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS) ) dbcc checkdb(@databasename,REPAIR_REBUILD) exec sp_dboption @databasename, N'single', N'false' -- Hedef veritabanını çoklu kullanıcı moduna geri ayarlar
      

      İfade

      dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
      

      onarım işlemini gerçekleştirirken veritabanınızdaki bazı verilerin kaybolmasına neden olabilir.

      açıklama yapılırken

      dbcc checkdb(@veritabanıadı,REPAIR_REBUILD)
      

      onarım işlemi sırasında herhangi bir veri kaybına NEDEN OLMAZ, ancak daha fazla zaman alır.

      Acil durumda değilseniz, önce yalnızca ikinci dbcc checkdb deyimini gerçekleştirmeyi deneyebilirsiniz, eğer bu ifade veritabanını kurtarmaya yardımcı olmazsa, ardından birinci ve ikinci dbcc checkdb komutlarını gerçekleştirebilirsiniz.

      Onarım işleminden sonra arayabilirsiniz.

      dbcc checkdb('MyDatabase.mdf')
      

      veritabanının sabit olup olmadığını görmek için tekrar.

      dbcc checkdb komutu hakkında daha ayrıntılı bilgi şu adreste bulunabilir: https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15

  2. Yöntem 1'i kullandıktan sonra, dbcc checkdb bazı tablolarda hala hatalar bildiriyorsa, deneyebilirsiniz SQL Server veritabanınızdaki bu tabloları kurtarmak için yerleşik komut DBCC CHECKTABLE. Bozuk veritabanı dosyasının 'MyDatabase.mdf' ve onarmak istediğiniz tablonun 'MyTable' olduğunu varsayarsak, onarmak için aşağıdakileri yapabilirsiniz:
    1. Restart SQL Server.
    2. Herhangi bir işlem yapmayın.
    3. In SQL Server Management Studio, aşağıdaki SQL deyimlerini yürütün:
      MyDatabase.mdf kullan beyan @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_REBUILD) ) exec sp_dboption @dbname,'tek kullanıcı','yanlış'
      

      İfade

      dbcc checktable('Tablom',REPAIR_ALLOW_DATA_LOSS)
      

      onarım işlemini gerçekleştirirken tablonuzdaki bazı verilerin kaybolmasına neden olabilir.

      açıklama yapılırken

      dbcc checktable('Tablom',REPAIR_REBUILD)
      

      onarım işlemi sırasında herhangi bir veri kaybına NEDEN OLMAZ, ancak daha fazla zaman alır.

      Bu nedenle, acil durumda değilseniz, önce yalnızca ikinci dbcc checktable deyimini gerçekleştirmeyi deneyebilirsiniz, eğer bu ifade veritabanını kurtarmaya yardımcı olmazsa, ardından birinci ve ikinci dbcc checktable komutlarını gerçekleştirebilirsiniz.

      Tüm bozuk tablolar için onarım işlemini tamamladıktan sonra arayabilirsiniz.

      dbcc checkdb('MyDatabase.mdf')
      

      veritabanındaki tabloların sabit olup olmadığını görmek için tekrar.

    dbcc checktable komutu hakkında daha ayrıntılı bilgi şu adreste bulunabilir: https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checktable-transact-sql?view=sql-server-ver15

  3. Yöntem 1 ve 2 hala bozuk veritabanını veya tabloları düzeltemiyorsa veya bu yöntemler istediğiniz verileri kurtaramıyorsa, o zaman kullanabilirsiniz. DataNumen SQL Recovery MDF veritabanınızdaki verileri kurtarmak için.