Коррупсияро барқарор кунед SQL Server Пойгоҳи додаҳои MDF

Вақте, ки шумо SQL Server Пойгоҳи MDF вайрон шудааст, шумо метавонед усулҳои зеринро барои барқарор кардани маълумот дар он истифода баред, то талафотро кам кунед:

Эзоҳ: Пеш аз иҷрои ягон амалиёти барқарорсозии маълумот, лутфан аввал файлҳои махзани маълумотҳои вайроншудаи MDF ва NDF-и худро нусхабардорӣ кунед.

  1. Пеш аз ҳама, шумо метавонед кӯшиш кунед SQL Server фармони дарунсохт DBCC CHECKDB барои барқарор кардани базаи шумо. Фарз мекунем, ки файли фасодзадаи махзани маълумот 'MyDatabase.mdf' аст, пас шумо метавонед барои барқарор кардани маълумот дар дохили он амалҳои зеринро иҷро кунед:
    1. Рӯйдодҳоtart SQL Server.
    2. Ҳеҷ гуна амалиётро анҷом надиҳед.
    3. In SQL Server Management Studio, изҳороти зерини SQL-ро иҷро кунед:
      use master declare @databasename varchar(255) set @databasename='MyDatabase.mdf' exec sp_dboption @databasename, N'single', N'true' -- Пойгоҳи махзани таъинотро ба ҳолати ягонаи корбар dbcc checkdb(@databasename,REPAIR_ALLOW_D) насб кунед ) dbcc checkdb(@databasename,REPAIR_REBUILD) exec sp_dboption @databasename, N'single', N'false' -- Пойгоҳи додаҳои таъинотро ба ҳолати бисёркорбар баргардонед
      

      Изҳорот

      dbcc checkdb(@namebasename,REPAIR_ALLOW_DATA_LOSS)
      

      ҳангоми иҷрои амалиёти таъмир метавонад баъзе маълумотро дар базаи шумо гум кунад.

      Дар ҳоле ки изҳорот

      dbcc checkdb(@detabasename,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' ва ҷадвале, ки шумо таъмир кардан мехоҳед, "Table MyTable" аст, пас шумо метавонед барои таъмири он амалҳои зеринро иҷро кунед:
    1. Рӯйдодҳоtart 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 санҷиши('Ҷадвали ман',REPAIR_ALLOW_DATA_LOSS) dbcc санҷидашаванда(REPAIR_ALLOW_DATA_LOSS) dbcc_REPAIRBUI'' ) 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 Барои барқарор кардани маълумот аз базаи MDF шумо.