Վերականգնել կոռումպացվածին SQL Server MDF տվյալների շտեմարան

Երբ դուք SQL Server MDF տվյալների բազան կոռումպացված է, կարող եք օգտագործել հետևյալ մեթոդները ՝ դրանում եղած տվյալները վերականգնելու, կորուստը նվազեցնելու համար.

Նշում. Տվյալների վերականգնման որևէ գործողություն կատարելուց առաջ խնդրում ենք նախ պահուստավորել ձեր MDF և NDF կոռումպացված տվյալների բազայի ֆայլերը:

  1. Առաջին հերթին, կարող եք փորձել SQL Server ներկառուցված հրաման DBCC CHECKDB ձեր տվյալների բազան վերականգնելու համար: Ենթադրելով, որ տվյալների բազայի կոռումպացված ֆայլը «MyDatabase.mdf» է, ապա դրա ներսում տվյալները վերականգնելու համար կարող եք անել հետևյալը.
    1. Restart SQL Server.
    2. Մի կատարեք որևէ գործողություն:
    3. In SQL Server Management Studio, կատարեք հետևյալ SQL հայտարարությունները.
      օգտագործել master հայտարարել @databasename varchar (255) set @databasename = 'MyDatabase.mdf' exec sp_dboption @databasename, N'single ', N'true'-Տեղակայման տվյալների բազան սահմանել մեկ օգտվողի ռեժիմ dbcc checkdb ( @databaseasename, REPAIR_ALLOS_DATA ) dbcc ստուգում
      

      Հայտարարությունը

      dbcc checkdb (@տվյալների բազայի անուն, REPAIR_ALLOW_DATA_LOSS)
      

      վերանորոգման գործողությունը կատարելիս կարող է ձեր տվյալների բազայում որոշ տվյալների կորուստ առաջացնել:

      Մինչ հայտարարությունը

      dbcc checkdb (@databasename, REPAIR_REBUILD)
      

      չի հանգեցնի որևէ տվյալների կորստի վերանորոգման աշխատանքների ընթացքում, բայց դա ավելի շատ ժամանակատար է:

      Այսպիսով, եթե դուք անհետաձգելի չեք, նախ կարող եք փորձել կատարել միայն dbcc checkdb հայտարարությունը, եթե այդ հայտարարությունը չի կարող օգնել տվյալների բազան վերականգնելուն, ապա կարող եք կատարել dbcc checkdb- ի առաջին և երկրորդ հրամանները:

      Վերանորոգման գործողությունից հետո կարող եք զանգահարել

      dbcc checkdb ('MyDatabase.mdf')
      

      կրկին տեսնելու, արդյոք տվյալների բազան ամրագրված է, թե ոչ:

      Dbcc checkdb հրամանի մասին ավելի մանրամասն տեղեկություններ կարելի է գտնել այստեղ https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15

  2. Եթե ​​1 -ին մեթոդը օգտագործելուց հետո dbcc checkdb- ն որոշ աղյուսակներում դեռ հայտնում է սխալների մասին, կարող եք փորձել SQL Server ներկառուցված հրաման DBCC CHECKTABLE ՝ ձեր տվյալների բազայում այս աղյուսակները վերականգնելու համար: Ենթադրելով, որ տվյալների բազայի կոռումպացված ֆայլը «MyDatabase.mdf» է, և այն աղյուսակը, որը ցանկանում եք վերանորոգել, «MyTable» է, ապա այն վերանորոգելու համար կարող եք անել հետևյալը.
    1. Restart SQL Server.
    2. Մի կատարեք որևէ գործողություն:
    3. In SQL Server Management Studio, կատարեք հետևյալ SQL հայտարարությունները.
      օգտագործել MyDatabase.mdf հայտարարեք @dbname varchar (255) set @dbname = 'MyDatabase.mdf' exec sp_dboption @dbname, 'single user', 'true' dbcc checktable ('MyTable', REPAIR_ALLOW_DATA_LOSS) dbcc checktIL ('MyPATable_ableable,' ) exec sp_dboption @dbname, «միայնակ օգտվող», «կեղծ»
      

      Հայտարարությունը

      dbcc ստուգիչ սեղան («MyTable», REPAIR_ALLOW_DATA_LOSS)
      

      վերանորոգման գործողությունը կատարելիս կարող է ձեր սեղանի որոշ տվյալների կորուստ առաջանալ:

      Մինչ հայտարարությունը

      dbcc ստուգիչ սեղան ('MyTable', REPAIR_REBUILD)
      

      չի հանգեցնի որևէ տվյալների կորստի վերանորոգման աշխատանքների ընթացքում, բայց դա ավելի շատ ժամանակատար է:

      Այսպիսով, եթե դուք անհետաձգելի չեք, կարող եք նախ կատարել միայն dbcc- ի ստուգման աղյուսակի երկրորդ հայտարարությունը, եթե այդ հայտարարությունը չի կարող օգնել տվյալների բազան վերականգնելուն, ապա կարող եք կատարել dbcc- ի ստուգման սեղանի առաջին և երկրորդ հրամանները:

      Բոլոր կոռումպացված սեղանների վերանորոգման աշխատանքներն ավարտելուց հետո կարող եք զանգահարել

      dbcc checkdb ('MyDatabase.mdf')
      

      կրկին տեսնելու, արդյոք տվյալների բազայի աղյուսակները ամրագրված են, թե ոչ:

    Dbcc ստուգվող աղյուսակի հրամանի մասին ավելի մանրամասն տեղեկություններ կարելի է գտնել այստեղ https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checktable-transact-sql?view=sql-server-ver15

  3. Եթե ​​1 -ին և 2 -րդ մեթոդները դեռ չեն կարող շտկել կոռումպացված տվյալների բազան կամ աղյուսակները, կամ եթե այս մեթոդները չեն կարող վերականգնել ձեր ուզած տվյալները, ապա կարող եք օգտագործել DataNumen SQL Recovery ձեր MDF տվյալների բազայից տվյալները վերականգնելու համար: