Korruptsiyani tiklash SQL Server MDF ma'lumotlar bazasi

qachon sizni SQL Server MDF ma'lumotlar bazasi buzilgan, yo'qotishlarni kamaytirish uchun undagi ma'lumotlarni qayta tiklash uchun quyidagi usullardan foydalanishingiz mumkin:

Eslatma: Ma'lumotni tiklash operatsiyalarini bajarishdan oldin, avval buzilgan MDF va NDF ma'lumotlar bazasi fayllarini zaxiralang.

  1. Avvalo, siz sinab ko'rishingiz mumkin SQL Server o'rnatilgan buyruq DBCC CHECKDB ma'lumotlar bazasini tiklash uchun. Buzilgan ma'lumotlar bazasi faylini "MyDatabase.mdf" deb hisoblasak, undagi ma'lumotlarni qayta tiklash uchun quyidagilarni qilishingiz mumkin:
    1. Restart SQL Server.
    2. Hech qanday operatsiyani bajarmang.
    3. In SQL Server Management Studio, quyidagi SQL iboralarini bajaring:
      use master declare @databasename varchar(255) set @databasename='MyDatabase.mdf' exec sp_dboption @databasename, N'single', N'true' -- Ma'lumotlar bazasini bitta foydalanuvchi rejimiga o'rnating dbcc checkdb(@ma'lumotlar bazasi nomi, REPAIR_LOSS_DATA). ) dbcc checkdb(@ma'lumotlar bazasi nomi, REPAIR_REBUILD) exec sp_dboption @ma'lumotlar bazasi nomi, N'single', N'false' -- Belgilangan ma'lumotlar bazasini ko'p foydalanuvchi rejimiga qaytaring
      

      Bayonot

      dbcc checkdb(@ma'lumotlar bazasi nomi, REPAIR_ALLOW_DATA_LOSS)
      

      ta'mirlash operatsiyasini bajarishda ma'lumotlar bazasidagi ba'zi ma'lumotlarning yo'qolishiga olib kelishi mumkin.

      Bayonot paytida

      dbcc checkdb(@ma'lumotlar bazasi nomi, REPAIR_REBUILD)
      

      ta'mirlash jarayonida ma'lumotlar yo'qotilishiga olib kelmaydi, lekin bu ko'proq vaqt talab etadi.

      Shunday qilib, agar siz shoshilinch bo'lmasangiz, avval faqat ikkinchi dbcc checkdb bayonotini bajarishga urinib ko'rishingiz mumkin, agar bu bayonot ma'lumotlar bazasini tiklashga yordam bermasa, birinchi va ikkinchi dbcc checkdb buyruqlarini bajarishingiz mumkin.

      Ta'mirlash operatsiyasidan so'ng siz qo'ng'iroq qilishingiz mumkin

      dbcc checkdb('MyDatabase.mdf')
      

      ma'lumotlar bazasi o'rnatilgan yoki yo'qligini ko'rish uchun yana.

      dbcc checkdb buyrug'i haqida batafsil ma'lumotni quyidagi manzilda topishingiz mumkin https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15

  2. Agar 1-usuldan foydalangandan keyin ham dbcc checkdb ba'zi jadvallarda xatolar haqida xabar bersa, siz urinib ko'rishingiz mumkin SQL Server Ushbu jadvallarni ma'lumotlar bazasida tiklash uchun o'rnatilgan DBCC CHECKTABLE buyrug'i. Buzilgan ma'lumotlar bazasi fayli "MyDatabase.mdf" va siz tuzatmoqchi bo'lgan jadval "Mening jadvalim" deb faraz qilsangiz, uni tuzatish uchun quyidagilarni qilishingiz mumkin:
    1. Restart SQL Server.
    2. Hech qanday operatsiyani bajarmang.
    3. In SQL Server Management Studio, quyidagi SQL iboralarini bajaring:
      foydalanish MyDatabase.mdf declare @dbname varchar(255) set @dbname='MyDatabase.mdf' exec sp_dboption @dbname, 'bitta foydalanuvchi', 'true' dbcc checktable('MyTable',REPAIR_ALLOW_DATA_LOSS) dbcc checkable(REPAIR_ALLOW_DATA_LOSS) 'UILD_REMyT checkableB'UI ) exec sp_dboption @dbname, "bitta foydalanuvchi", "noto'g'ri"
      

      Bayonot

      dbcc tekshiruv jadvali ('Mening jadvalim', REPAIR_ALLOW_DATA_LOSS)
      

      ta'mirlash operatsiyasini bajarishda jadvalingizdagi ba'zi ma'lumotlarning yo'qolishiga olib kelishi mumkin.

      Bayonot paytida

      dbcc tekshiruv jadvali ('Mening jadvalim', REPAIR_REBUILD)
      

      ta'mirlash jarayonida ma'lumotlar yo'qotilishiga olib kelmaydi, lekin bu ko'proq vaqt talab etadi.

      Shunday qilib, agar siz shoshilinch bo'lmasangiz, avval faqat ikkinchi dbcc checktable bayonotini bajarishga urinib ko'rishingiz mumkin, agar bu bayonot ma'lumotlar bazasini tiklashga yordam bermasa, birinchi va ikkinchi dbcc checktable buyruqlarini bajarishingiz mumkin.

      Barcha buzilgan jadvallar uchun ta'mirlash operatsiyasini tugatgandan so'ng, siz qo'ng'iroq qilishingiz mumkin

      dbcc checkdb('MyDatabase.mdf')
      

      yana ma'lumotlar bazasidagi jadvallar o'rnatilgan yoki yo'qligini ko'rish uchun.

    dbcc checktable buyrug'i haqida batafsil ma'lumotni quyidagi manzilda topishingiz mumkin https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checktable-transact-sql?view=sql-server-ver15

  3. Agar 1 va 2-usullar buzilgan ma'lumotlar bazasini yoki jadvallarni tuzatmasa yoki bu usullar siz xohlagan ma'lumotlarni tiklay olmasa, siz foydalanishingiz mumkin. DataNumen SQL Recovery MDF ma'lumotlar bazasidan ma'lumotlarni qayta tiklash uchun.