Mabawi ang isang Nasirang SQL Server MDF Database

kapag kayo SQL Server Ang MDF database ay sira, maaari mong gamitin ang mga sumusunod na pamamaraan upang mabawi ang data dito, upang mabawasan ang pagkawala:

Tandaan: Bago magsagawa ng anumang pagpapatakbo ng pagbawi ng data, mangyaring i-backup muna ang iyong mga sira na MDF at NDF database file.

  1. Una sa lahat, maaari mong subukan SQL Server built-in na utos DBCC CHECKDB upang makuha ang iyong database. Ipagpalagay na ang sira na file ng database ay 'MyDatabase.mdf', pagkatapos ay maaari mong gawin ang mga sumusunod upang mabawi ang data sa loob nito:
    1. Restart SQL Server.
    2. Huwag magsagawa ng anumang operasyon.
    3. In SQL Server Ang Management Studio, isagawa ang mga sumusunod na pahayag ng SQL:
      gamitin ang master ideklara @databasename varchar (255) set @ databasename = 'MyDatabase.mdf' exec sp_dboption @databasename, N'single ', N'true' - Itakda ang patutunguhang database sa solong-mode ng gumagamit dbcc checkdb (@ databasename, REPAIR_ALLOW_DATA_LOSS ) dbcc checkdb (@ databasename, REPAIR_REBUILD) exec sp_dboption @databasename, N'single ', N'false' - Itakda ang patutunguhang database pabalik sa mode na multi-user
      

      Ang pahayag

      dbcc checkdb (@ databasename, REPAIR_ALLOW_DATA_LOSS)
      

      maaaring maging sanhi ng pagkawala ng ilang data sa iyong database kapag nagsagawa ng operasyon sa pag-aayos.

      Habang ang pahayag

      dbcc checkdb (@ databasename, REPAIR_REBUILD)
      

      HINDI magiging sanhi ng anumang pagkawala ng data sa panahon ng pagpapatakbo ng pagkumpuni, ngunit ito ay mas maraming oras.

      Kaya't kung wala ka sa kagyat, maaari mo munang subukang gawin ang pangalawang pahayag ng dbcc checkdb lamang, kung ang pahayag na iyon ay hindi makakatulong upang mabawi ang database, maaari mo nang maisagawa ang una at pangalawang dbcc na mga utos ng checkdb.

      Pagkatapos ng operasyon sa pag-aayos, maaari kang tumawag

      dbcc checkdb ('MyDatabase.mdf')
      

      muli upang makita kung ang database ay naayos o hindi.

      Ang mas detalyadong impormasyon tungkol sa dbcc checkdb utos ay matatagpuan sa https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15

  2. Kung pagkatapos magamit ang pamamaraan 1, ang dbcc checkdb ay nag-uulat pa rin ng mga error sa ilang mga talahanayan, maaari mong subukan SQL Server built-in na utos na DBCC CHECKTABLE upang mabawi ang mga talahanayan na ito sa iyong database. Ipagpalagay na ang sira na file ng database ay 'MyDatabase.mdf' at ang talahanayan na nais mong ayusin ay 'MyTable', pagkatapos ay maaari mong gawin ang mga sumusunod upang ayusin ito:
    1. Restart SQL Server.
    2. Huwag magsagawa ng anumang operasyon.
    3. In SQL Server Ang Management Studio, isagawa ang mga sumusunod na pahayag ng SQL:
      gamitin ang MyDatabase.mdf ideklara ang @dbname varchar (255) set @ dbname = 'MyDatabase.mdf' exec sp_dboption @ dbname, 'single user', 'true' dbcc checktable ('MyTable', REPAIR_ALLOW_DATA_LOSS) dbcc checktable ('MyTable'RER, REPAI ) exec sp_dboption @ dbname, 'solong gumagamit', 'false'
      

      Ang pahayag

      dbcc checktable ('MyTable', REPAIR_ALLOW_DATA_LOSS)
      

      maaaring maging sanhi ng pagkawala ng ilang data sa iyong talahanayan kapag isinasagawa ang operasyon sa pagkumpuni.

      Habang ang pahayag

      dbcc checktable ('MyTable', REPAIR_REBUILD)
      

      HINDI magiging sanhi ng anumang pagkawala ng data sa panahon ng pagpapatakbo ng pagkumpuni, ngunit ito ay mas maraming oras.

      Kaya't kung wala ka sa kagyat, maaari mo munang subukang gawin ang pangalawang pahayag na maaaring suriin ng dbcc lamang, kung ang pahayag na iyon ay hindi makakatulong upang mabawi ang database, maaari mo nang maisagawa ang una at ikalawang dbcc na mga checktable command.

      Matapos mong makumpleto ang pagpapatakbo ng pag-aayos para sa lahat ng mga sira na talahanayan, maaari kang tumawag

      dbcc checkdb ('MyDatabase.mdf')
      

      muli upang makita kung ang mga talahanayan sa database ay naayos o hindi.

    Ang mas detalyadong impormasyon tungkol sa dbcc checktable command ay matatagpuan sa https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checktable-transact-sql?view=sql-server-ver15

  3. Kung ang paraan 1 at 2 ay hindi pa rin maaayos ang sira na database o mga talahanayan, o kung hindi mababawi ng mga pamamaraang ito ang data na gusto mo, maaari mo itong magamit DataNumen SQL Recovery upang makuha ang data mula sa iyong MDF database.