دفعة البرنامج النصي لنسخ كل قواعد البيانات الخاصة بك خادم SQL
لقد قمنا بالفعل بتغطية كيفية عمل نسخة احتياطية من قاعدة بيانات SQL Server من سطر الأوامر ، فماذا إذا كنت تريد إجراء نسخ احتياطي لكافة قواعد البيانات في وقت واحد؟ يمكنك إنشاء برنامج نصي دفعي يقوم بتشغيل أمر النسخ الاحتياطي لكل قاعدة بيانات ، ولكن يجب تحديث هذا البرنامج النصي في كل مرة تتم فيها إضافة قاعدة بيانات أو إزالتها. بالإضافة إلى ذلك ، سيتم إلحاق النسخ الاحتياطية لقاعدة البيانات بملف واحد والذي سينمو بحجم النسخ الاحتياطي الجديد في كل مرة يتم تشغيله. بدلاً من ذلك ، في الموضة "ضبطها ونسيانها" ، سنقوم بإنشاء برنامج نصي دفعة يتكيف مع SQL Server الخاص بك كما يتم إضافة وإزالة قواعد بيانات جديدة.
للحصول على حق النقطة ، هذا هو البرنامج النصي النسخ الاحتياطي:
@صدى خارج
SETLOCALREM الحصول على التاريخ بالتنسيق YYYY-MM-DD (يفترض أن اللغة هي الولايات المتحدة)
FOR / F “tokens = 1،2،3،4 delims = /” ٪٪ A IN ('Date / T') DO SET NowDate = ٪٪ D - ٪٪ B - ٪٪ CREM إنشاء قائمة من قواعد البيانات للنسخ الاحتياطي
SET DBList =٪ SystemDrive٪ SQLDBList.txt
SqlCmd -E -S MyServer -h-1 -W -Q "SET NoCount ON؛ SELECT Name FROM master.dbo.sysDatabases WHERE [اسم] NOT IN ('master'، 'model'، 'msdb'، 'tempdb') ">"٪ DBList٪ "REM النسخ الاحتياطي لكل قاعدة بيانات ، مقدما التاريخ إلى اسم الملف
FOR / F "tokens = *" ٪٪ I IN (٪ DBList٪) DO (
ECHO النسخ الاحتياطي لقاعدة البيانات: ٪٪ I
SqlCmd -E -S MyServer -Q "BACKUP DATABASE [٪٪ I] TO Disk =" D: Backup٪ NowDate٪ _ ٪٪ I.bak "”
صدى صوت.
)REM قم بتنظيف ملف مؤقت
إذا كان EXIST "٪ DBList٪" DEL / F / Q "٪ DBList٪"ENDLOCAL
بافتراض أن التاريخ هو 1/13/2009 ولديك 3 قواعد بيانات باسم "MyDB" و "AnotherDB" و "اسم DB مع Spaces" ، سينتج البرنامج النصي 3 ملفات في موقع النسخ الاحتياطي المحدد:
- 2009-01-13_AnotherDB.bak
- 2009-01-13_DB Name with Spaces.bak
- 2009-01-13_MyDB.bak
تخصيص وتشغيل البرنامج النصي الدفعي
بالطبع ، ستحتاج إلى تخصيص النص البرمجي لبيئتك ، لذلك فإليك ما تحتاج إلى القيام به:
- إذا لم يتم تعيين اللغة الخاصة بجهازك على الولايات المتحدة ، فقد لا يقوم الأمر 'Date / T' بإرجاع التاريخ بتنسيق “Tue 01/13/2009”. إذا كانت هذه هي الحالة ، لن ينتج المتغير NowDate التنسيق المطلوب ويجب ضبطه. (مكان واحد)
- قم بتغيير "MyServer" ليكون اسم خادم SQL الخاص بك (أضف اسم المثيل إذا كان ذلك ممكنًا). (مكانان)
- قواعد البيانات المسماة "master" و "model" و "msdb" و "tempdb" هي قواعد بيانات يتم شحنها مع SQL Server. يمكنك إضافة أسماء قواعد بيانات إضافية إلى هذه القائمة إذا كنت لا تريد نسخها احتياطياً. (مكان واحد)
- قم بتغيير موقع النسخ الاحتياطي من 'D: Backup' إلى المكان الذي تريد تخزين ملفات النسخ الاحتياطي لقاعدة البيانات فيه.
بمجرد قيامك بتخصيص البرنامج النصي الدفعي ، قم بجدولة تشغيله عبر برنامج جدولة مهام Windows كمستخدم له حقوق المسؤول وتم تعيينك بالكامل.