الصفحة الرئيسية » howto » النسخ الاحتياطي واستعادة قاعدة بيانات خادم SQL من سطر الأوامر

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

    الجزء الأكثر أهمية من خطة صيانة SQL Server هو النسخ الاحتياطي لقواعد البيانات الخاصة بك بانتظام. للنسخ الاحتياطي لقاعدة بيانات ، لا يمكنك ببساطة نسخ ملفات MDF و LDF الخاصة بقاعدة البيانات كما يحتوي SQL Server على تأمين على هذه. بدلاً من ذلك ، تحتاج إلى إنشاء ملف نسخة احتياطية حقيقي عبر SQL Server.

    بينما يمكن القيام بذلك عن طريق تطوير خطة صيانة داخل SQL Management Studio ، لا تقدم إصدارات Express من SQL Server هذه الواجهة. للتغلب على هذا ، يمكنك النسخ الاحتياطي لقواعد البيانات الخاصة بك بسهولة عن طريق تشغيل الأمر أدناه أثناء تسجيل الدخول كمسؤول Windows:

    SqlCmd -E -S Server_Name -Q "BACKUP DATABASE [Name_of_Database] TO DISK =" X: PathToBackupLocation [Name_of_Database] .bak "”

    الأمثلة أدناه سوف تساعد.

    مثيل SQL Server الافتراضي:

    SqlCmd -E -S MyServer -Q “BACKUP DATABASE [MyDB] TO DISK =" D: BackupsMyDB.bak "”

    مثيل SQL Server المسماة:

    SqlCmd -E -S MyServerMyInstance -Q “BACKUP DATABASE [MyDB] TO DISK =" D: BackupsMyDB.bak "”

    إنشاء أعلاه نسخة احتياطية كاملة من "MyDB" إلى الملف "D: BackupsMyDB.bak" والتي يمكن استخدامها لاستعادة القدرة على العمل بعد الكوارث. بالطبع ، يمكنك تغيير موقع النسخ الاحتياطي والملف إلى كل ما تحتاجه ، ولكن تأكد من تحديد موقع مجلد موجود على الجهاز المحلي. ثم يمكن نسخ ملف النسخ الاحتياطي هذا إلى محرك شريط أو موقع النسخ احتياطي خارجي آخر.

    السؤال الشائع هو "هل يمكن إنشاء ملف نسخة احتياطية إلى محرك أقراص معيّن أو موقع UNC؟" والإجابة السريعة هي لا. السبب لأن خدمة SQL Server Windows تعمل كحساب مستخدم لديه فقط الوصول إلى الجهاز المحلي. يمكنك تغيير الحساب الذي تعمل عليه الخدمة ، ولكن هذا الأمر غير محبذ لأسباب أمنية.

    استعادة النسخ الاحتياطي لقاعدة البيانات من سطر الأوامر

    لاستعادة قاعدة بيانات من ملف نسخة احتياطية ، ما عليك سوى استخدام الأمر:

    SqlCmd -E -S Server_Name -Q “RESTORE DATABASE [Name_of_Database] FROM DISK =" X: PathToBackupFile [File_Name] .bak "”

    فمثلا:

    SqlCmd -E -S MyServer -Q “RESTORE DATABASE [MYDB] FROM DISK =" D: BackupsMyDB.bak "”

    سيعمل الأمر السابق على استعادة نسخة احتياطية من "MyDB" من البيانات المخزنة في ملف النسخة الاحتياطية "D: BackupsMyDB.bak". سيتم فقد أية تغييرات تم إجراؤها على MyDB منذ إنشاء ملف النسخة الاحتياطية.

    من الأمور المهمة التي يجب تذكرها عند استخدام الأمر أعلاه هو أنه مخصص للاستخدام على نفس SQL Server الذي تم إنشاء ملف النسخ الاحتياطي المعني عليه. تقوم ملفات النسخ الاحتياطي لـ SQL بتخزين معلومات "خلف الكواليس" التي تتحكم في مكان وكيفية نسخ ملفات البيانات الموجودة في ملف النسخ الاحتياطي. إذا كنت تقوم باستعادة نسخة احتياطية من SQL Server مختلفة ، قد لا تطابق مواقع المسار في ملف النسخة الاحتياطية الملقم الذي تقوم باستعادته وسيظهر خطأ. بينما يمكن العمل على حل هذه المشكلة ، يكون من الأسهل بكثير استعادة النسخ الاحتياطية التي تم إنشاؤها على SQL Server آخر باستخدام أداة SQL Management Studio.

    ملاحظة: ستعمل الأوامر المذكورة أعلاه على SQL 2005 والإصدارات الأحدث (أي إصدار). بالنسبة لـ SQL 2000 والإصدارات الأقدم ، استبدل "SqlCmd" بـ "oSql".