Herstelle in korrupte SQL Server MDF Database

Asto SQL Server MDF-database is korrupt, jo kinne de folgjende metoaden brûke om de gegevens dêryn te herstellen, om it ferlies te ferminderjen:

Opmerking: Foardat jo gegevenshersteloperaasjes útfiere, meitsje asjebleaft in reservekopy fan jo korrupte MDF- en NDF-databasebestannen earst.

  1. Earst kinne jo besykje SQL Server ynboude kommando DBCC CHECKDB om jo databank te herstellen. Oannommen dat it korrupte databankbestân 'MyDatabase.mdf' is, dan kinne jo it folgjende dwaan om de gegevens deryn werom te heljen:
    1. Restart SQL Server.
    2. Net útfiere gjin operaasjes.
    3. In SQL Server Management Studio, útfiere de folgjende SQL-útspraken:
      brûk master declare @databasename varchar(255) set @databasename='MyDatabase.mdf' exec sp_dboption @databasename, N'single', N'true' -- Stel de bestimmingsdatabase yn op ienbrûkersmodus dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS ) dbcc checkdb(@databasename,REPAIR_REBUILD) exec sp_dboption @databasename, N'single', N'false' -- Stel de bestimmingsdatabase werom yn meardere brûkersmodus
      

      De ferklearring

      dbcc checkdb(@databasenamme,REPAIR_ALLOW_DATA_LOSS)
      

      kin ferlies fan guon gegevens yn jo databank feroarsaakje by it útfieren fan de reparaasje.

      Wylst de ferklearring

      dbcc checkdb(@databasenamme,REPAIR_REBUILD)
      

      sil gjin gegevensferlies feroarsaakje tidens de reparaasje, mar it is mear tiidslinend.

      Dus as jo net op urgent binne, kinne jo earst besykje de twadde dbcc checkdb-útspraak allinich út te fieren, as dy ferklearring net kin helpe om de databank te herstellen, dan kinne jo de earste en twadde dbcc checkdb-kommando's útfiere.

      Nei de reparaasje operaasje kinne jo skilje

      dbcc checkdb('MyDatabase.mdf')
      

      nochris om te sjen oft de databank fêst is of net.

      Mear detaillearre ynformaasje oer dbcc checkdb kommando is te finen op https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15

  2. As nei it brûken fan metoade 1, dbcc checkdb noch altyd fouten rapportearret yn guon tabellen, kinne jo besykje SQL Server ynboude kommando DBCC CHECKTABLE om dizze tabellen yn jo databank te herstellen. Oannommen dat it korrupte databankbestân 'MyDatabase.mdf' is en de tabel dy't jo reparearje wolle is 'MyTable', dan kinne jo it folgjende dwaan om it te reparearjen:
    1. Restart SQL Server.
    2. Net útfiere gjin operaasjes.
    3. In SQL Server Management Studio, útfiere de folgjende SQL-útspraken:
      brûk MyDatabase.mdf declare @dbname varchar(255) set @dbname='MyDatabase.mdf' exec sp_dboption @dbname,'single user','true' dbcc checktable('MyTable',REPAIR_ALLOW_DATA_LOSS)'DPAIR_ALLOW_DATA_LOSS'' ) exec sp_dboption @dbname,'single user','false'
      

      De ferklearring

      dbcc checktable('MyTable',REPAIR_ALLOW_DATA_LOSS)
      

      kin feroarsaakje ferlies fan guon gegevens yn jo tabel as it útfieren fan de reparaasje operaasje.

      Wylst de ferklearring

      dbcc checktable('MyTable',REPAIR_REBUILD)
      

      sil gjin gegevensferlies feroarsaakje tidens de reparaasje, mar it is mear tiidslinend.

      Dus as jo net op urgent binne, kinne jo earst besykje allinich de twadde dbcc-kontrôletabel út te fieren, as dy ferklearring net kin helpe om de database te herstellen, dan kinne jo de earste en twadde dbcc-kontrôletabelkommando's útfiere.

      Neidat jo foltôge de reparaasje operaasje foar alle korrupte tabellen, kinne jo skilje

      dbcc checkdb('MyDatabase.mdf')
      

      nochris om te sjen oft de tabellen yn de databank fêst binne of net.

    Mear detaillearre ynformaasje oer kommando dbcc checktable kin fûn wurde op https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checktable-transact-sql?view=sql-server-ver15

  3. As metoade 1 en 2 de korrupte databank of de tabellen noch net kinne reparearje, of as dizze metoaden de gegevens dy't jo wolle net kinne weromhelje, dan kinne jo gebrûk meitsje fan DataNumen SQL Recovery om de gegevens fan jo MDF-database te herstellen.