Atgūt korumpētu SQL Server MDF datu bāze

Kad jūs SQL Server MDF datu bāze ir bojāta, varat izmantot šādas metodes, lai atgūtu tajā esošos datus, lai samazinātu zaudējumus:

Piezīme. Pirms jebkādu datu atkopšanas darbību veikšanas, lūdzu, vispirms dublējiet bojātos MDF un NDF datu bāzes failus.

  1. Pirmkārt, jūs varat izmēģināt SQL Server iebūvēta komanda DBCC PĀRBAUDE lai atgūtu savu datu bāzi. Pieņemot, ka bojātais datu bāzes fails ir MyDatabase.mdf, varat rīkoties šādi, lai atgūtu tajā esošos datus:
    1. Restart SQL Server.
    2. Neveiciet nekādas darbības.
    3. In SQL Server Management Studio, izpildiet šādus SQL priekšrakstus:
      izmantot galveno deklarēt @databasename varchar(255) set @databasename='MyDatabase.mdf' exec sp_dboption @databasename, N'single', N'true' — iestatiet mērķa datu bāzi uz viena lietotāja režīmu dbcc checkdb(@databasename, REPAIR_ALLOW_DATA_LOSS ) dbcc checkdb(@databasename,REPAIR_REBUILD) exec sp_dboption @databasename, N'single', N'false' — iestatiet galamērķa datu bāzi atpakaļ uz vairāku lietotāju režīmu
      

      Paziņojums

      dbcc checkdb (@datu bāzes nosaukums, REPAIR_ALLOW_DATA_LOSS)
      

      remonta laikā var tikt zaudēti daži dati jūsu datubāzē.

      Kamēr paziņojums

      dbcc checkdb (@datu bāzes nosaukums, REPAIR_REBUILD)
      

      NEIZRAIDĪS datu zudumus remonta darbības laikā, taču tas ir laikietilpīgāks.

      Tātad, ja neesat steidzams, vispirms varat mēģināt izpildīt tikai otro dbcc checkdb priekšrakstu, ja šis paziņojums nevar palīdzēt atgūt datu bāzi, varat izpildīt pirmo un otro dbcc checkdb komandu.

      Pēc remonta operācijas var zvanīt

      dbcc checkdb ('MyDatabase.mdf')
      

      vēlreiz, lai redzētu, vai datu bāze ir labota vai nē.

      Sīkāku informāciju par dbcc checkdb komandu var atrast vietnē https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15

  2. Ja pēc 1. metodes izmantošanas dbcc checkdb joprojām ziņo par kļūdām dažās tabulās, varat mēģināt SQL Server iebūvēta komanda DBCC CHECKTABLE, lai atgūtu šīs tabulas savā datu bāzē. Pieņemot, ka bojātais datu bāzes fails ir “MyDatabase.mdf” un tabula, kuru vēlaties labot, ir “MyTable”, varat rīkoties šādi, lai to labotu:
    1. Restart SQL Server.
    2. Neveiciet nekādas darbības.
    3. In SQL Server Management Studio, izpildiet šādus SQL priekšrakstus:
      izmantot MyDatabase.mdf deklarēt @dbname varchar(255) set @dbname='MyDatabase.mdf' exec sp_dboption @dbname,'viens lietotājs','true' dbcc checktable('MyTable',REPAIR_ALLOW_DATA_LOSS) dbcc checktable,'REPAIRTRE' ) exec sp_dboption @dbname,'viens lietotājs','false'
      

      Paziņojums

      dbcc pārbaudes tabula ('MyTable', REPAIR_ALLOW_DATA_LOSS)
      

      remonta laikā var tikt zaudēti daži dati jūsu tabulā.

      Kamēr paziņojums

      dbcc pārbaudes tabula ('MyTable', REPAIR_REBUILD)
      

      NEIZRAIDĪS datu zudumus remonta darbības laikā, taču tas ir laikietilpīgāks.

      Tātad, ja neesat steidzams, vispirms varat mēģināt izpildīt tikai otro dbcc pārbaudes tabulas paziņojumu, ja šis paziņojums nevar palīdzēt atgūt datu bāzi, varat izpildīt pirmo un otro dbcc pārbaudes tabulas komandu.

      Kad esat pabeidzis visu bojāto tabulu labošanas darbību, varat zvanīt

      dbcc checkdb ('MyDatabase.mdf')
      

      vēlreiz, lai redzētu, vai datu bāzē esošās tabulas ir fiksētas vai nav.

    Sīkāku informāciju par dbcc checktable komandu var atrast vietnē https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checktable-transact-sql?view=sql-server-ver15

  3. Ja 1. un 2. metode joprojām nevar salabot bojāto datu bāzi vai tabulas vai ja šīs metodes nevar atgūt vajadzīgos datus, varat izmantot DataNumen SQL Recovery lai atgūtu datus no MDF datu bāzes.