Аднавіць карупцыянера SQL Server База дадзеных МДФ

Калі вы SQL Server База дадзеных MDF пашкоджана, вы можаце выкарыстоўваць наступныя метады для аднаўлення дадзеных у ёй, каб паменшыць страты:

Заўвага: Перш чым выконваць якія-небудзь аперацыі па аднаўленні дадзеных, спачатку зрабіце рэзервовую копію пашкоджаных файлаў базы дадзеных MDF і NDF.

  1. Перш за ўсё, вы можаце паспрабаваць SQL Server убудаваная каманда DBCC CHECKDB для аднаўлення базы дадзеных. Мяркуючы, што пашкоджаны файл базы дадзеных - "MyDatabase.mdf", вы можаце зрабіць наступнае, каб аднавіць дадзеныя ў ім:
    1. Restart SQL Server.
    2. Не выконвайце ніякіх аперацый.
    3. In SQL Server Management Studio, выканайце наступныя аператары SQL:
      выкарыстоўваць майстар аб'явіць @databasename varchar (255) set @ databasename = 'MyDatabase.mdf' exec sp_dboption @databasename, N'single ', N'true' - Усталюйце для базы дадзеных прызначэння аднакарыстальніцкі рэжым dbcc checkdb (@name базы дадзеных, REPAIR_ALLOW_DATA_LOSS ) dbcc checkdb (@name database, REPAIR_REBUILD) exec sp_dboption @databasename, N'single ', N'false' - Устанавіць мэтавую базу дадзеных у шматкарыстальніцкім рэжыме
      

      Заява

      dbcc checkdb (@ імя базы дадзеных, REPAIR_ALLOW_DATA_LOSS)
      

      можа прывесці да страты некаторых дадзеных у вашай базе дадзеных пры выкананні аперацыі па рамонце.

      Пакуль заява

      dbcc checkdb (@ імя базы дадзеных, 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 Management Studio, выканайце наступныя аператары SQL:
      выкарыстоўваць MyDatabase.mdf аб'явіць @dbname varchar (255) set @ dbname = 'MyDatabase.mdf' exec sp_dboption @ dbname, 'адзін карыстальнік', 'true' dbcc checktable ('MyTable', REPAIR_ALLOW_DATA_LOSS) dbcc checktable ('MyTable', REPAD_U ) exec sp_dboption @ dbname, 'адзін карыстальнік', 'ілжывы'
      

      Заява

      dbcc checktable ('MyTable', REPAIR_ALLOW_DATA_LOSS)
      

      можа прывесці да страты некаторых дадзеных у вашай табліцы пры выкананні аперацыі па рамонце.

      Пакуль заява

      dbcc checktable ('MyTable', REPAIR_REBUILD)
      

      НЕ прывядзе да страты дадзеных падчас рамонту, але гэта больш працаёмка.

      Такім чынам, калі вам не трэба тэрмінова, вы можаце спачатку паспрабаваць выканаць толькі другую заяву праверкі DBC, калі гэтая заява не можа дапамагчы аднавіць базу дадзеных, то вы можаце выканаць першую і другую каманды Checktable 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 для аднаўлення дадзеных з базы дадзеных MDF.