یک فاسد را بازیابی کنید SQL Server پایگاه داده ام دی اف

هنگامی که شما SQL Server پایگاه داده ام دی اف خراب است، می توانید از روش های زیر برای بازیابی اطلاعات موجود در آن استفاده کنید تا از دست دادن آن کم کنید:

توجه: قبل از انجام هر گونه عملیات بازیابی اطلاعات، لطفاً ابتدا از فایل های دیتابیس 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_ALLOW_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) set @dbname='MyDatabase.mdf' exec sp_dboption @dbname,'single user','true' dbcc checktable('MyTable',REPAIR_ALLOW_DATA_LOSSTable'REPAIR_DATA_LOSSt'DIR'db ) exec sp_dboption @dbname, 'تک کاربر', 'false'
      

      صورتحساب

      جدول بررسی dbcc ('MyTable',REPAIR_ALLOW_DATA_LOSS)
      

      ممکن است هنگام انجام عملیات تعمیر باعث از بین رفتن برخی از داده ها در جدول شما شود.

      در حالی که بیانیه

      جدول بررسی dbcc ('MyTable',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 برای بازیابی اطلاعات از پایگاه داده ام دی اف خود.