Pagbawi sa usa ka dunot SQL Server Database sa MDF

Sa diha nga ikaw SQL Server Ang MDF database daotan, mahimo nimo gamiton ang mga mosunud nga pamaagi aron makuha ang datos niini, aron maminusan ang pagkawala:

Hinumdomi: Sa wala pa himuon ang bisan unsang operasyon sa pagbawi sa datos, palihug i-backup una ang imong mga daotan nga MDF & NDF database files.

  1. Una sa tanan, mahimo nimong sulayan SQL Server built-in nga mando DBCC CHECKDB aron makuha ang imong database. Sa paghunahuna nga ang daotan nga file sa database mao ang 'MyDatabase.mdf', nan mahimo nimo ingon sa mosunod aron makuha ang datos sa sulud niini:
    1. Restart SQL Server.
    2. Ayaw pagbuhat bisan unsang operasyon.
    3. In SQL Server Ang Management Studio, ipatuman ang mosunud nga mga pahayag sa SQL:
      gamita ang pagdeklara sa @databasename varchar (255) set @ databasename = 'MyDatabase.mdf' exec sp_dboption @databasename, N'single ', N'true' - Itakda ang destinasyon nga database sa us aka-us aka mode nga dbcc checkdb (@ databasename, REPAIR_ALLOW_DATA_LOSS ) dbcc checkdb (@ databasename, REPAIR_REBUILD) exec sp_dboption @databasename, N'single ', N'false' - Itakda ang destinasyon nga database balik sa mode nga multi-user
      

      Ang pahayag

      dbcc checkdb (@ databasename, REPAIR_ALLOW_DATA_LOSS)
      

      mahimong hinungdan sa pagkawala sa pipila nga datos sa imong database kung gihimo ang operasyon sa pag-ayo.

      Samtang ang pahayag

      dbcc checkdb (@ databasename, REPAIR_REBUILD)
      

      DILI hinungdan sa bisan unsang pagkawala sa datos sa panahon sa operasyon sa pag-ayo, apan labi kini nga makagasto sa panahon.

      Kung dili ka dinalian, mahimo nimo nga sulayan una ang paghimo sa ikaduha nga pahayag nga dbcc checkdb lamang, kung ang pahayag nga dili makatabang aron makuha ang database, mahimo nimo himuon ang una ug ikaduha nga dbcc nga mga mando sa checkdb.

      Pagkahuman sa operasyon sa pag-ayo, mahimo ka motawag

      dbcc checkdb ('MyDatabase.mdf')
      

      pag-usab aron makita kung ang database naayo o dili.

      Ang labi ka detalyado nga kasayuran bahin sa mando sa dbcc checkdb makit-an sa https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15

  2. Kung pagkahuman gamiton ang pamaagi 1, ang dbcc checkdb nagreport gihapon sa mga sayup sa pipila nga mga lamesa, mahimo nimo nga sulayan SQL Server built-in nga mando nga DBCC CHECKTABLE aron mabawi kini nga mga lamesa sa imong database. Sa paghunahuna nga ang daotan nga file sa database mao ang 'MyDatabase.mdf' ug ang lamesa nga gusto nimong ayohon mao ang 'MyTable', nan mahimo nimo ang mosunod aron maayo kini:
    1. Restart SQL Server.
    2. Ayaw pagbuhat bisan unsang operasyon.
    3. In SQL Server Ang Management Studio, ipatuman ang mosunud nga mga pahayag sa SQL:
      gamita 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, 'single user', 'false'
      

      Ang pahayag

      dbcc checktable ('MyTable', REPAIR_ALLOW_DATA_LOSS)
      

      mahimong hinungdan sa pagkawala sa pipila ka mga datos sa imong lamesa kung gihimo ang operasyon sa pag-ayo.

      Samtang ang pahayag

      dbcc checktable ('MyTable', REPAIR_REBUILD)
      

      DILI hinungdan sa bisan unsang pagkawala sa datos sa panahon sa operasyon sa pag-ayo, apan labi kini nga makagasto sa panahon.

      Kung dili ka dinalian, mahimo nimo nga sulayan una ang paghimo sa ikaduhang pahayag nga susihon sa dbcc lamang, kung ang pahayag nga dili makatabang aron makuha ang database, nan mahimo nimo ang una ug ikaduha nga dbcc nga mga checktable nga mando.

      Pagkahuman nimo makompleto ang operasyon sa pag-ayo alang sa tanan nga mga dunot nga lamesa, mahimo ka nga manawag

      dbcc checkdb ('MyDatabase.mdf')
      

      pag-usab aron makita kung ang mga lamesa sa database naayo o dili.

    Ang labi ka detalyado nga kasayuran bahin sa dbcc checktable command mahimong makit-an sa https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checktable-transact-sql?view=sql-server-ver15

  3. Kung ang pamaagi 1 ug 2 dili pa ayuhon ang dunot nga database o mga lamesa, o kung dili makuha sa kini nga mga pamaagi ang datos nga gusto nimo, mahimo nimo gamiton DataNumen SQL Recovery aron makuha ang datos gikan sa imong MDF database.