نموذج برنامج نصي SQL لضغط ونقل ملف النسخ الاحتياطي لقاعدة البيانات

StackOverflow https://stackoverflow.com/questions/128166

سؤال

كنت أبحث عن نموذج برنامج نصي لـ SQL لضغط ملف النسخ الاحتياطي لقاعدة البيانات (.bak) ونقله إلى موقع بعيد.يرجى مشاركتها إذا كان لديك معك.

هل كانت مفيدة؟

المحلول

يمكنك استخدام xp_cmdshell لاستدعاء أوامر الضغط والنسخ.في العينة هنا، أستخدم سطر أوامر Winzip (للضغط/فك الضغط) وxcopy لنقل الملفات.

EXEC master..xp_cmdshell 'C:\"Program Files"\WinZip\wzzip C:\Database.bak.zip C:\Database.bak';
EXEC master..xp_cmdshell 'C:\"Program Files"\WinZip\wzunzip -o "C:\Database.bak.zip" "C:\Database"';
EXEC master..xp_cmdshell 'xcopy "C:\Database.bak.zip" "\\networkshare\Backups" /Y'

نصائح أخرى

يعد xp_cmdshell إحدى الطرق، على الرغم من أنه ليس مثاليًا نظرًا لأن تمكينه يجعل الخادم أقل أمانًا.

مشروعي مفتوح المصدر، النسخ الاحتياطي المضغوط لخادم SQL, ، يفعل ما تبحث عنه في خطوة واحدة:

msbp.exe backup "db(database=model)" "zip64" "local(path=\\server\share\path\model.full.bak.zip)"

يعد تثبيت SQL Server Compressed Backup مجرد نشر "xcopy" - لا يوجد شيء لتثبيته/إلغاء تثبيته، وهو مثالي إذا كنت بحاجة إلى القيام بذلك مرة واحدة فقط.

يستخدم zip64 نظرًا لأن تنسيق zip القياسي له حد 4 جيجابايت.تنسيقات الضغط البديلة المتاحة هي gzip وbzip2 والتي ليس لها حدود.

لماذا لا تستخدم مثل هذه الأدوات البسيطة مثل SqlBackupAndFtp؟إنهم يفعلون بالضبط ما تحتاجه (النسخ الاحتياطي لـ SQL + الانتقال إلى موقع بعيد) من خلال واجهة بسيطة ولا تحتاج إلى كتابة أي نصوص برمجية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top