Korrupsiyanı bərpa edin SQL Server MDF verilənlər bazası

Zaman SQL Server MDF verilənlər bazası zədələnib, itkini azaltmaq üçün içindəki məlumatları bərpa etmək üçün aşağıdakı üsullardan istifadə edə bilərsiniz:

Qeyd: Hər hansı məlumat bərpa əməliyyatını yerinə yetirməzdən əvvəl, lütfən, əvvəlcə zədələnmiş MDF və NDF verilənlər bazası fayllarınızı ehtiyat nüsxəsini çıxarın.

  1. Əvvəlcə cəhd edə bilərsiniz SQL Server daxili əmr DBCC CHECKDB verilənlər bazanızı bərpa etmək üçün. Zərərli verilənlər bazası faylının 'MyDatabase.mdf' olduğunu fərz etsək, onun daxilindəki məlumatları bərpa etmək üçün aşağıdakıları edə bilərsiniz:
    1. Restart SQL Server.
    2. Heç bir əməliyyat aparmayın.
    3. In SQL Server Management Studio, aşağıdakı SQL ifadələrini yerinə yetirin:
      master declare @databasename istifadə edin varchar(255) set @databasename='MyDatabase.mdf' exec sp_dboption @databasename, N'single', N'true' -- Təyinat verilənlər bazasını tək istifadəçi rejiminə təyin edin dbcc checkdb(@databasename,REPAIR_ALLOW_DATA). ) dbcc checkdb(@databasename,REPAIR_REBUILD) exec sp_dboption @databasename, N'single', N'false' -- Təyinat verilənlər bazasını çox istifadəçi rejiminə qaytarın
      

      Bəyanat

      dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
      

      təmir əməliyyatını yerinə yetirərkən verilənlər bazanızdakı bəzi məlumatların itirilməsinə səbəb ola bilər.

      Bəyanat edərkən

      dbcc checkdb(@databasename,REPAIR_REBUILD)
      

      təmir əməliyyatı zamanı heç bir məlumat itkisinə səbəb olmayacaq, lakin bu, daha çox vaxt aparır.

      Beləliklə, təcili deyilsinizsə, əvvəlcə yalnız ikinci dbcc checkdb ifadəsini yerinə yetirməyə cəhd edə bilərsiniz, əgər bu ifadə verilənlər bazasını bərpa etməyə kömək edə bilmirsə, onda siz birinci və ikinci dbcc checkdb əmrlərini yerinə yetirə bilərsiniz.

      Təmir əməliyyatından sonra zəng edə bilərsiniz

      dbcc checkdb('MyDatabase.mdf')
      

      verilənlər bazasının sabit olub olmadığını görmək üçün yenidən.

      dbcc checkdb əmri haqqında daha ətraflı məlumatı burada tapa bilərsiniz https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15

  2. 1-ci üsuldan istifadə etdikdən sonra dbcc checkdb hələ də bəzi cədvəllərdə səhvlər barədə məlumat verirsə, cəhd edə bilərsiniz SQL Server verilənlər bazanızda bu cədvəlləri bərpa etmək üçün daxili əmr DBCC CHECKTABLE. Zərərli verilənlər bazası faylının 'MyDatabase.mdf' və təmir etmək istədiyiniz cədvəlin 'MyTable' olduğunu fərz etsək, onu təmir etmək üçün aşağıdakıları edə bilərsiniz:
    1. Restart SQL Server.
    2. Heç bir əməliyyat aparmayın.
    3. In SQL Server Management Studio, aşağıdakı SQL ifadələrini yerinə yetirin:
      istifadə MyDatabase.mdf declare @dbname varchar(255) set @dbname='MyDatabase.mdf' exec sp_dboption @dbname,'tək istifadəçi','true' dbcc checktable('MyCədvəl',REPAIR_ALLOW_DATA_LOSS) dbcc checkable(REPAIR_ALLOW_DATA_LOSS) REMMyT_cheableB,'UILD ) exec sp_dboption @dbname,'bir istifadəçi','false'
      

      Bəyanat

      dbcc yoxlama cədvəli('Mənim Cədvəlim', REPAIR_ALLOW_DATA_LOSS)
      

      təmir əməliyyatını yerinə yetirərkən cədvəlinizdə bəzi məlumatların itirilməsinə səbəb ola bilər.

      Bəyanat edərkən

      dbcc yoxlama cədvəli('Mənim Cədvəlim', REPAIR_REBUILD)
      

      təmir əməliyyatı zamanı heç bir məlumat itkisinə səbəb olmayacaq, lakin bu, daha çox vaxt aparır.

      Əgər təcili deyilsinizsə, əvvəlcə yalnız ikinci dbcc yoxlama cədvəli ifadəsini yerinə yetirməyə cəhd edə bilərsiniz, əgər bu ifadə verilənlər bazasını bərpa etməyə kömək edə bilmirsə, onda siz birinci və ikinci dbcc yoxlama cədvəli əmrlərini yerinə yetirə bilərsiniz.

      Bütün zədələnmiş cədvəllər üçün təmir əməliyyatını tamamladıqdan sonra zəng edə bilərsiniz

      dbcc checkdb('MyDatabase.mdf')
      

      verilənlər bazasındakı cədvəllərin sabit olub olmadığını görmək üçün yenidən.

    dbcc checktable əmri haqqında daha ətraflı məlumatı burada tapa bilərsiniz https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checktable-transact-sql?view=sql-server-ver15

  3. Əgər 1 və 2-ci üsul hələ də zədələnmiş verilənlər bazasını və ya cədvəlləri düzəldə bilmirsə və ya bu üsullar istədiyiniz məlumatları bərpa edə bilmirsə, onda siz istifadə edə bilərsiniz. DataNumen SQL Recovery MDF verilənlər bazanızdan məlumatları bərpa etmək üçün.