Закрепне корумпиран SQL Server База на податоци од МДФ

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

Забелешка: Пред да извршите какви било операции за обновување податоци, прво направете резервна копија од вашите оштетени датотеки со база на податоци MDF и NDF.

  1. Прво на сите, можете да се обидете SQL Server вградена команда DBCC CHECKDB да ја вратите вашата база на податоци. Претпоставувајќи дека корумпираната датотека на базата на податоци е „MyDatabase.mdf“, тогаш можете да го направите следново за да ги вратите податоците во неа:
    1. Restart SQL Server.
    2. Не извршувајте никакви операции.
    3. In SQL Server Менаџмент студио, извршете ги следните SQL изјави:
      use master declare @databasename varchar(255) set @databasename='MyDatabase.mdf' exec sp_dboption @databasename, N'single', N'true' -- Поставете ја дестинацијата на базата на податоци во режим за еден корисник dbcc checkdb(@databasename,REPAIR_LLOW_DATA ) dbcc checkdb(@databasename,REPAIR_REBUILD) exec sp_dboption @databasename, N'single', N'false' -- Поставете ја дестинационата база на податоци назад во режим на повеќе корисници
      

      Изјавата

      dbcc checkdb(@databasename, 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 Менаџмент студио, извршете ги следните SQL изјави:
      користете MyDatabase.mdf декларирај @dbname varchar(255) постави @dbname='MyDatabase.mdf' exec sp_dboption @dbname, 'еден корисник', 'true' dbcc табела за проверка ('MyTable',REPAIR_ALLOW_DATA_LOSSTable'RE_PA'yb) ) exec sp_dboption @dbname, 'еден корисник', 'неточно'
      

      Изјавата

      табела за проверка dbcc („Моја табела“, REPAIR_ALLOW_DATA_LOSS)
      

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

      Додека изјавата

      табела за проверка dbcc („Моја табела“, REPAIR_REBUILD)
      

      НЕМА да предизвика губење на податоци за време на операцијата за поправка, но тоа одзема повеќе време.

      Значи, ако не сте итни, прво може да се обидете да ја извршите само втората изјава за проверка на dbcc, ако таа изјава не може да помогне да се врати базата на податоци, тогаш можете да ја извршите првата и втората команда на таблите за проверка на dbcc.

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

      dbcc checkdb ('MyDatabase.mdf')
      

      повторно да се види дали табелите во базата на податоци се поправени или не.

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