Опорави оштећеног SQL Server МДФ база података

Када SQL Server МДФ база података је оштећена, можете користити следеће методе за опоравак података у њој, како бисте смањили губитак:

Напомена: Пре него што извршите било коју операцију опоравка података, прво направите резервну копију оштећених датотека базе података МДФ и НДФ.

  1. Пре свега, можете покушати SQL Server уграђена команда ДБЦЦ ЦХЕЦКДБ да бисте опоравили своју базу података. Под претпоставком да је оштећена датотека базе података „МиДатабасе.мдф“, можете да урадите следеће да бисте опоравили податке у њој:
    1. Ресtart SQL Server.
    2. Немојте изводити никакве операције.
    3. In SQL Server Манагемент Студио, извршите следеће СКЛ изразе:
      усе мастер децларе @датабасенаме варцхар(255) сет @датабасенаме='МиДатабасе.мдф' екец сп_дбоптион @датабасенаме, Н'сингле', Н'труе' -- Подесите одредишну базу података на једнокориснички режим дбцц цхецкдб(@датабасенаме,РЕПАИР_ЛОСС ) дбцц цхецкдб(@датабасенаме,РЕПАИР_РЕБУИЛД) екец сп_дбоптион @датабасенаме, Н'сингле', Н'фалсе' -- Вратите одредишну базу података у вишекориснички режим
      

      Изјава

      дбцц цхецкдб(@датабасенаме,РЕПАИР_АЛЛОВ_ДАТА_ЛОСС)
      

      може довести до губитка неких података у вашој бази података када извршите операцију поправке.

      Док је изјава

      дбцц цхецкдб(@датабасенаме,РЕПАИР_РЕБУИЛД)
      

      НЕЋЕ изазвати губитак података током операције поправке, али захтева више времена.

      Дакле, ако нисте хитно, можете прво покушати да извршите само другу дбцц цхецкдб наредбу, ако та изјава не може помоћи да се опорави база података, онда можете извршити прву и другу дбцц цхецкдб команду.

      Након операције поправке, можете позвати

      дбцц цхецкдб('МиДатабасе.мдф')
      

      поново да видимо да ли је база података исправљена или не.

      Детаљније информације о команди дбцц цхецкдб можете пронаћи на https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15

  2. Ако након употребе методе 1, дбцц цхецкдб и даље пријављује грешке у неким табелама, можете покушати SQL Server уграђена наредба ДБЦЦ ЦХЕЦКТАБЛЕ за опоравак ових табела у вашој бази података. Под претпоставком да је оштећена датотека базе података „МиДатабасе.мдф“, а табела коју желите да поправите је „МиТабле“, можете да урадите следеће да бисте је поправили:
    1. Ресtart SQL Server.
    2. Немојте изводити никакве операције.
    3. In SQL Server Манагемент Студио, извршите следеће СКЛ изразе:
      усе МиДатабасе.мдф децларе @дбнаме варцхар(255) сет @дбнаме='МиДатабасе.мдф' екец сп_дбоптион @дбнаме,'сингле усер','труе' дбцц цхецктабле('МиТабле',РЕПАИР_АЛЛОВ_ДАТА_ЛОСС','дбмцДАПАИР цхецкабле ) екец сп_дбоптион @дбнаме,'сингле усер','фалсе'
      

      Изјава

      дбцц цхецктабле('МиТабле',РЕПАИР_АЛЛОВ_ДАТА_ЛОСС)
      

      може изазвати губитак неких података у вашој табели када извршите операцију поправке.

      Док је изјава

      дбцц цхецктабле('МиТабле',РЕПАИР_РЕБУИЛД)
      

      НЕЋЕ изазвати губитак података током операције поправке, али захтева више времена.

      Дакле, ако нисте на хитном, можете прво покушати да извршите само другу дбцц наредбу табеле за проверу, ако та изјава не може да помогне у опоравку базе података, онда можете да извршите прву и другу команду дбцц табеле за проверу.

      Када завршите операцију поправке за све оштећене табеле, можете позвати

      дбцц цхецкдб('МиДатабасе.мдф')
      

      поново да видимо да ли су табеле у бази података исправљене или не.

    Детаљније информације о команди дбцц цхецктабле можете пронаћи на 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 да повратите податке из ваше МДФ базе података.