აღადგინე კორუმპირებული SQL Server MDF მონაცემთა ბაზა

როდესაც თქვენ SQL Server MDF მონაცემთა ბაზა დაზიანებულია, შეგიძლიათ გამოიყენოთ შემდეგი მეთოდები მასში არსებული მონაცემების აღსადგენად, ზარალის შესამცირებლად:

შენიშვნა: სანამ განახორციელებთ მონაცემთა აღდგენის რაიმე ოპერაციებს, გთხოვთ, პირველ რიგში, დააკოპირეთ თქვენი დაზიანებული MDF და NDF მონაცემთა ბაზის ფაილები.

  1. პირველ რიგში, შეგიძლიათ სცადოთ SQL Server ჩაშენებული ბრძანება DBCC CHECKDB თქვენი მონაცემთა ბაზის აღსადგენად. ვივარაუდოთ, რომ დაზიანებული მონაცემთა ბაზის ფაილია „MyDatabase.mdf“, მაშინ შეგიძლიათ გააკეთოთ შემდეგი, რომ აღადგინოთ მასში არსებული მონაცემები:
    1. რესtart SQL Server.
    2. არ შეასრულოთ არანაირი ოპერაცია.
    3. In SQL Server მენეჯმენტის სტუდია, შეასრულეთ შემდეგი SQL განცხადებები:
      გამოიყენე master declare @databasename varchar(255) set @databasename='MyDatabase.mdf' exec sp_dboption @databasename, N'single', N'true' -- დააყენეთ დანიშნულების მონაცემთა ბაზა ერთი მომხმარებლის რეჟიმში dbcc checkdb(@databasename,REPAIR_SSLOW_DATA ) dbcc checkdb(@databasename,REPAIR_REBUILD) exec sp_dboption @databasename, N'single', N'false' -- დააბრუნეთ დანიშნულების მონაცემთა ბაზა მრავალ მომხმარებლის რეჟიმში
      

      Განცხადება

      dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
      

      შეიძლება გამოიწვიოს ზოგიერთი მონაცემის დაკარგვა თქვენს მონაცემთა ბაზაში სარემონტო ოპერაციის შესრულებისას.

      განცხადების დროს

      dbcc checkdb(@databasename,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. რესtart SQL Server.
    2. არ შეასრულოთ არანაირი ოპერაცია.
    3. In SQL Server მენეჯმენტის სტუდია, შეასრულეთ შემდეგი SQL განცხადებები:
      გამოიყენე MyDatabase.mdf გამოაცხადე @dbname varchar(255) კომპლექტი @dbname='MyDatabase.mdf' exec sp_dboption @dbname,'ერთი მომხმარებელი','true' dbcc გამშვები ცხრილი('MyTable',REPAIR_ALLOW_DATA_LOSSt',Db ) exec sp_dboption @dbname, 'ერთი მომხმარებელი', 'false'
      

      Განცხადება

      dbcc გამშვები ცხრილი („MyTable“, REPAIR_ALLOW_DATA_LOSS)
      

      სარემონტო ოპერაციის შესრულებისას შეიძლება გამოიწვიოს თქვენს ცხრილში ზოგიერთი მონაცემის დაკარგვა.

      განცხადების დროს

      dbcc გამშვები ცხრილი („MyTable“, REPAIR_REBUILD)
      

      არ გამოიწვევს მონაცემთა დაკარგვას სარემონტო ოპერაციის დროს, მაგრამ ეს უფრო შრომატევადია.

      ასე რომ, თუ თქვენ არ ხართ გადაუდებელი, შეგიძლიათ ჯერ სცადოთ შეასრულოთ მხოლოდ მეორე dbcc checktable განცხადება, თუ ეს განცხადება ვერ დაეხმარება მონაცემთა ბაზის აღდგენას, მაშინ შეგიძლიათ შეასრულოთ პირველი და მეორე dbcc checktable ბრძანებები.

      ყველა კორუმპირებული მაგიდის სარემონტო ოპერაციის დასრულების შემდეგ, შეგიძლიათ დარეკოთ

      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 მონაცემთა ბაზიდან მონაცემების აღსადგენად.