it-swarm.asia

قواعد بيانات خادم SQL عالقة في حالة الاستعادة

لدي خادم Sharepoint. واجهنا مشكلة في أداة النسخ الاحتياطي ، والآن بعض قواعد البيانات الخاصة بي عالقة في حالة الاستعادة!

Image showing restoring databases

هل من الممكن وقف عملية الاستعادة؟ وأيضًا ، كيف أتأكد من عدم اختراق تكامل قاعدة البيانات؟

87
Pooya Yazdani

من المحتمل أن يكون هذا بسبب سكريبت الاستعادة بإضافة WITH NORECOVERY ، لجعل قاعدة البيانات جاهزة لسجل المعاملات تنطبق بعد الاستعادة.

قاعدة البيانات تنتظر الآن أحدث ملف سجل المعاملات.

يمكنك إما:

  1. تطبيق آخر سجل للمعاملات ، باستخدام RESTORE LOG database_name FROM backup_device WITH RECOVERY; ... أو
  2. استعادة قاعدة البيانات مرة أخرى ، ولكن هذه المرة باستخدام ... WITH RECOVERY; ... أو
  3. إجبار قاعدة البيانات على الخروج من وضع الاستعادة بتنفيذ: RESTORE DATABASE YourDb WITH RECOVERY;

قبل القيام بذلك ، يرجى التأكد من فهم الآثار المترتبة على هذه الخيارات. قد تتسبب في فقدان البيانات إذا لم تكن حذرًا.

انظر هذا للحصول على التفاصيل:

135
Thomas Kejser

نص T-SQL بسيط لحل هذه المشكلة:

اكتب هذا النص البرمجي في نافذة استعلام جديد وقم بتنفيذ:

RESTORE DATABASE [DataBase Name] WITH RECOVERY;
52
Sina

كما نعلم ، فإن خيار استعادة قاعدة البيانات الافتراضي هو مع الاسترداد الذي يضمن توفر قاعدة البيانات وعلى الإنترنت للاستخدام بعد الانتهاء من استعادة قاعدة البيانات.

مثال:

RESTORE DATABASE YourDB FROM DISK= 'C:\\Data\\YourDBBackup.bak'
WITH RECOVERY
GO

دعنا نرى النقاط المهمة حول الاستعادة مع عدم الاسترداد

  • قاعدة البيانات غير قابلة للاستخدام
  • يبقى في وضع الاستعادة
  • يمكن إجراء تسلسل الاستعادة التالي
  • لا يتراجع عن أي معاملات غير ملتزم بها

الاستعادة مع NoRecovery

يستخدم هذا الخيار بشكل خاص عند استعادة نسخ احتياطي متعددة. هذا يعني أنه عند تنفيذ أمر الاستعادة مع خيار norecovery ، فهذا يعني أنه لا يتم تحرير قاعدة البيانات للمستخدمين حتى يتم استعادة آخر نسخة احتياطية بالتسلسل. باستخدام آخر نسخة احتياطية ، يتم استخدام خيار الاسترداد وتشغيل قاعدة البيانات عبر الإنترنت.

مثال:

RESTORE DATABASE YourDB FROM DISK - 'C:\\Data\\Backup_part1.bak' 
WITH NORECOVERY
GO

وثم:

RESTORE LOG YourDB FROM DISK = 'C:\\Data\\BackupLog-part2.trn'
WITH RECOVERY
GO
0
Priyanka

لقد عانيت للتو من هذا الوضع ، وكان العلاج مفاجئًا للغاية:

ALTER DATABASE DBName SET ONLINE;

يبدو أن استعادة NetBackup التي كسرت تركتها في حالة غريبة. لم يعمل أي حل آخر (على الرغم من أنني لم أحاول إعادة تشغيل خدمة SQL Server)

سأكون حذراً مع قاعدة البيانات ، على الرغم من أنه من الناحية النظرية بمجرد بدء الاستعادة ، ثم تفشل ، فقد تكون قد تلفت البيانات. سأقوم فقط باستعادة قاعدة البيانات مرة أخرى على أي حال ، لذلك لا يهمني.

0
ErikE