Odzyskaj skorumpowanego SQL Server Baza danych MDF

Kiedy SQL Server Baza danych MDF jest uszkodzona, możesz użyć następujących metod, aby odzyskać zawarte w niej dane, aby zmniejszyć utratę:

Uwaga: Przed wykonaniem jakichkolwiek operacji odzyskiwania danych należy najpierw wykonać kopię zapasową uszkodzonych plików bazy danych MDF i NDF.

  1. Przede wszystkim możesz spróbować SQL Server wbudowane polecenie DBCC CHECKDB aby odzyskać bazę danych. Zakładając, że uszkodzony plik bazy danych to „MyDatabase.mdf”, możesz wykonać następujące czynności, aby odzyskać zawarte w nim dane:
    1. Restart SQL Server.
    2. Nie wykonuj żadnych operacji.
    3. In SQL Server Management Studio, wykonaj następujące instrukcje SQL:
      use master deklarre @ nazwa bazy danych varchar (255) set @ databasename = 'MyDatabase.mdf' exec sp_dboption @ nazwa bazy danych, N'single ', N'true' - Ustaw docelową bazę danych w trybie pojedynczego użytkownika dbcc checkdb (@ nazwa bazy danych, REPAIR_ALLOW_DATA_LOSS ) dbcc checkdb (@ nazwa bazy danych, REPAIR_REBUILD) exec sp_dboption @ nazwa bazy danych, N'single ', N'false' - Ustaw docelową bazę danych z powrotem w trybie wielu użytkowników
      

      Wyrok

      dbcc checkdb (@ nazwa bazy danych, REPAIR_ALLOW_DATA_LOSS)
      

      może spowodować utratę niektórych danych w bazie danych podczas wykonywania operacji naprawy.

      Chociaż oświadczenie

      dbcc checkdb (@ nazwa bazy danych, REPAIR_REBUILD)
      

      NIE spowoduje utraty danych podczas operacji naprawy, ale jest bardziej czasochłonne.

      Jeśli więc nie jesteś w trybie pilnym, możesz najpierw spróbować wykonać tylko drugą instrukcję dbcc checkdb, jeśli ta instrukcja nie może pomóc w odzyskaniu bazy danych, możesz wykonać pierwszą i drugą komendę dbcc checkdb.

      Po operacji naprawy możesz zadzwonić

      dbcc checkdb („MyDatabase.mdf”)
      

      ponownie, aby sprawdzić, czy baza danych jest naprawiona, czy nie.

      Bardziej szczegółowe informacje na temat komendy dbcc checkdb można znaleźć pod adresem https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15

  2. Jeśli po użyciu metody 1 dbcc checkdb nadal zgłasza błędy w niektórych tabelach, możesz spróbować SQL Server wbudowane polecenie DBCC CHECKTABLE, aby odzyskać te tabele w bazie danych. Zakładając, że uszkodzony plik bazy danych to „MyDatabase.mdf”, a tabela, którą chcesz naprawić, to „MyTable”, możesz wykonać następujące czynności, aby go naprawić:
    1. Restart SQL Server.
    2. Nie wykonuj żadnych operacji.
    3. In SQL Server Management Studio, wykonaj następujące instrukcje SQL:
      użyj MyDatabase.mdf deklaruj @dbname varchar (255) set @ dbname = 'MyDatabase.mdf' exec sp_dboption @ dbname, 'single user', 'true' dbcc checktable ('MyTable', REPAIR_ALLOW_DATA_LOSS) dbcc checktable ('MyTable', REPAIR_REBU ) exec sp_dboption @ dbname, 'single user', 'false'
      

      Wyrok

      dbcc checktable („MyTable”, REPAIR_ALLOW_DATA_LOSS)
      

      może spowodować utratę niektórych danych w tabeli podczas wykonywania operacji naprawy.

      Chociaż oświadczenie

      dbcc checktable („MyTable”, REPAIR_REBUILD)
      

      NIE spowoduje utraty danych podczas operacji naprawy, ale jest bardziej czasochłonne.

      Więc jeśli nie jesteś w trybie pilnym, możesz najpierw spróbować wykonać tylko drugą instrukcję dbcc checktable, jeśli ta instrukcja nie może pomóc w odzyskaniu bazy danych, możesz wykonać pierwszą i drugą komendę dbcc checktable.

      Po zakończeniu operacji naprawy wszystkich uszkodzonych tabel możesz zadzwonić

      dbcc checkdb („MyDatabase.mdf”)
      

      ponownie, aby sprawdzić, czy tabele w bazie danych są naprawione, czy nie.

    Bardziej szczegółowe informacje na temat polecenia dbcc checktable można znaleźć pod adresem https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checktable-transact-sql?view=sql-server-ver15

  3. Jeśli metody 1 i 2 nadal nie mogą naprawić uszkodzonej bazy danych lub tabel, lub jeśli te metody nie mogą odzyskać żądanych danych, możesz użyć DataNumen SQL Recovery aby odzyskać dane z bazy danych MDF.