استعادة ملف SQL Server قاعدة بيانات MDF

عند SQL Server قاعدة بيانات MDF تالفة ، يمكنك استخدام الطرق التالية لاستعادة البيانات الموجودة فيها لتقليل الخسارة:

ملاحظة: قبل إجراء أي عمليات لاستعادة البيانات ، يرجى الاحتفاظ بنسخة احتياطية من ملفات قاعدة بيانات MDF و NDF التالفة أولاً.

  1. بادئ ذي بدء ، يمكنك المحاولة SQL Server أمر مدمج شيك DBBC لاستعادة قاعدة البيانات الخاصة بك. بافتراض أن ملف قاعدة البيانات الفاسد هو 'MyDatabase.mdf' ، فيمكنك القيام بما يلي لاستعادة البيانات الموجودة بداخله:
    1. الدقةtart SQL Server.
    2. لا تقم بأية عمليات.
    3. In SQL Server Management Studio ، قم بتنفيذ جمل SQL التالية:
      استخدم master أعلنdatabasename varchar (255) set @ databasename = 'MyDatabase.mdf' exec sp_dboptiondatabasename ، N'single '، N'true' - اضبط قاعدة بيانات الوجهة على وضع المستخدم الفردي dbcc checkdb (@ databasename ، REPAIR_ALLOW_DATA_LOSS ) dbcc checkdb (@ databasename ، REPAIR_REBUILD) exec sp_dboptiondatabasename ، 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. إذا استمر dbcc checkdb بالإبلاغ عن الأخطاء في بعض الجداول بعد استخدام الطريقة الأولى ، فيمكنك المحاولة SQL Server أمر مضمن DBCC CHECKTABLE لاستعادة هذه الجداول في قاعدة البيانات الخاصة بك. بافتراض أن ملف قاعدة البيانات الفاسد هو "MyDatabase.mdf" والجدول الذي تريد إصلاحه هو "MyTable" ، فيمكنك القيام بما يلي لإصلاحه:
    1. الدقةtart SQL Server.
    2. لا تقم بأية عمليات.
    3. In SQL Server Management Studio ، قم بتنفيذ جمل SQL التالية:
      استخدم MyDatabase.mdf أعلنdbname varchar (255) set @ dbname = 'MyDatabase.mdf' exec sp_dboption @ dbname، 'مستخدم واحد'، 'true' dbcc checktable ('MyTable'، REPAIR_ALLOW_DATA_LOSS) dbcc checktable ('MyTable'، REPAIR_ ) exec sp_dboption @ dbname ، "مستخدم واحد" ، "خطأ"
      

      البيان

      dbcc checktable ("MyTable" ، REPAIR_ALLOW_DATA_LOSS)
      

      قد يتسبب في فقد بعض البيانات في الجدول الخاص بك عند إجراء عملية الإصلاح.

      بينما البيان

      dbcc checktable ('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. إذا كانت الطريقة الأولى والثانية لا تزال غير قادرة على إصلاح قاعدة البيانات أو الجداول الفاسدة ، أو إذا لم تتمكن هذه الطرق من استعادة البيانات التي تريدها ، فيمكنك استخدام DataNumen SQL Recovery لاستعادة البيانات من قاعدة بيانات MDF الخاصة بك.