Atkurti sugadintą SQL Server MDF duomenų bazė

Kai jūs SQL Server MDF duomenų bazė yra sugadinta, galite naudoti šiuos metodus, norėdami atkurti joje esančius duomenis ir sumažinti nuostolius:

Pastaba: prieš atlikdami bet kokias duomenų atkūrimo operacijas, pirmiausia sukurkite atsarginę sugadintų MDF ir NDF duomenų bazės failų kopiją.

  1. Visų pirma, galite pabandyti SQL Server įmontuota komanda DBCC CHECKDB norėdami atkurti duomenų bazę. Darant prielaidą, kad sugadintas duomenų bazės failas yra „MyDatabase.mdf“, galite atlikti šiuos veiksmus, kad atkurtumėte jame esančius duomenis:
    1. Raiškatart SQL Server.
    2. Neatlikite jokių operacijų.
    3. In SQL Server Management Studio, vykdykite šiuos SQL sakinius:
      naudoti pagrindinį deklaruoti @duomenų bazės pavadinimas varchar(255) set @databasename='MyDatabase.mdf' exec sp_dboption @duomenų bazės pavadinimas, N'single', N'true' -- Nustatyti paskirties duomenų bazę į vieno vartotojo režimą dbcc checkdb(@duomenų bazės pavadinimas, REPAIR_ALLOW_DATA_LOSS ) dbcc checkdb(@duomenų bazės pavadinimas,REPAIR_REBUILD) exec sp_dboption @duomenų bazės pavadinimas, N'single', N'false' – nustatykite paskirties duomenų bazę atgal į kelių vartotojų režimą
      

      Pareiškimas

      dbcc checkdb (@duomenų bazės pavadinimas, REPAIR_ALLOW_DATA_LOSS)
      

      Taisant gali būti prarasti kai kurie jūsų duomenų bazės duomenys.

      Nors pareiškimas

      dbcc checkdb (@duomenų bazės pavadinimas, REPAIR_REBUILD)
      

      Taisymo operacijos metu duomenų nepraraskite, tačiau tai užima daugiau laiko.

      Taigi, jei nesate skubos, pirmiausia galite pabandyti atlikti tik antrąjį dbcc checkdb sakinį. Jei šis sakinys negali padėti atkurti duomenų bazės, galite atlikti pirmą ir antrą dbcc checkdb komandas.

      Po remonto operacijos galite skambinti

      dbcc checkdb ('MyDatabase.mdf')
      

      dar kartą, kad pamatytumėte, ar duomenų bazė sutvarkyta, ar ne.

      Išsamesnės informacijos apie dbcc checkdb komandą rasite adresu https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15

  2. Jei panaudojus 1 metodą, dbcc checkdb vis tiek praneša apie klaidas kai kuriose lentelėse, galite pabandyti SQL Server integruota komanda DBCC CHECKTABLE, kad atkurtumėte šias lenteles savo duomenų bazėje. Darant prielaidą, kad sugadintas duomenų bazės failas yra „MyDatabase.mdf“, o lentelė, kurią norite taisyti, yra „MyTable“, galite ją taisyti taip:
    1. Raiškatart SQL Server.
    2. Neatlikite jokių operacijų.
    3. In SQL Server Management Studio, vykdykite šiuos SQL sakinius:
      naudoti MyDatabase.mdf deklaruoti @dbname varchar(255) set @dbname='MyDatabase.mdf' exec sp_dboption @dbname,'single user','true' dbcc checktable('MyTable',REPAIR_ALLOW_DATA_LOSS) dbcc checktable,'REPAIRTRE' ) exec sp_dboption @dbname, "vienas vartotojas", "klaidingas"
      

      Pareiškimas

      dbcc tikrinimo lentelė ('Mano lentelė', REPAIR_ALLOW_DATA_LOSS)
      

      Atliekant taisymo operaciją, gali būti prarasta kai kurie lentelės duomenys.

      Nors pareiškimas

      dbcc tikrinimo lentelė ('Mano lentelė', REPAIR_REBUILD)
      

      Taisymo operacijos metu duomenų nepraraskite, tačiau tai užima daugiau laiko.

      Taigi, jei nesate skubos, pirmiausia galite pabandyti atlikti tik antrąjį dbcc tikrinimo lentelės sakinį. Jei šis sakinys negali padėti atkurti duomenų bazės, galite atlikti pirmąją ir antrąją dbcc tikrinimo lentelės komandas.

      Baigę visų sugadintų lentelių taisymo operaciją, galite skambinti

      dbcc checkdb ('MyDatabase.mdf')
      

      dar kartą, kad pamatytumėte, ar duomenų bazėje esančios lentelės yra pataisytos, ar ne.

    Išsamesnę informaciją apie dbcc checktable komandą rasite adresu https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checktable-transact-sql?view=sql-server-ver15

  3. Jei 1 ir 2 metodais vis tiek nepavyksta ištaisyti sugadintos duomenų bazės ar lentelių arba jei šiais metodais nepavyksta atkurti norimų duomenų, galite naudoti DataNumen SQL Recovery Norėdami atkurti duomenis iš savo MDF duomenų bazės.