2008-09-24 13 views
5

मैं अपने डेटाबेस बैकअप फ़ाइल (.bak) को ज़िप करने और दूरस्थ स्थान पर स्थानांतरित करने के लिए नमूना एसक्यूएल स्क्रिप्ट की तलाश में था। अगर आपके पास यह है तो कृपया साझा करें।नमूना एसक्यूएल स्क्रिप्ट को ज़िप और हस्तांतरण डेटाबेस बैकअप फ़ाइल

उत्तर

5

आप ज़िप और प्रतिलिपि के लिए आदेशों का आह्वान करने के लिए 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' 
3

xp_cmdshell एक तरीका है, हालांकि यह आदर्श नहीं है क्योंकि यह सर्वर को कम सुरक्षित बनाता है। स्थापित करने के लिए कोई बात नहीं है/स्थापना रद्द -

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

एसक्यूएल सर्वर की स्थापना बैकअप संपीडित बस "xcopy" तैनाती है:

मेरे ओपन सोर्स प्रोजेक्ट, SQL Server Compressed Backup, क्या आप एक कदम में तलाश कर रहे हैं करता है आदर्श, अगर आपको सिर्फ एक बार ऐसा करने की ज़रूरत है।

यह ज़िप ज़िप का उपयोग करता है क्योंकि मानक ज़िप प्रारूप में 4 जीबी सीमा है। उपलब्ध वैकल्पिक संपीड़न प्रारूप gzip और bzip2 हैं जिनके पास कोई सीमा नहीं है।

2

ऐसे आसान उपकरण जैसे SqlBackupAndFtp का उपयोग क्यों नहीं करते? वे एक साधारण इंटरफ़ेस के साथ आपको वही करते हैं (एसक्यूएल बैकअप + दूरस्थ स्थान पर ले जा रहे हैं) और आपको किसी भी स्क्रिप्ट को लिखने की आवश्यकता नहीं है।

संबंधित मुद्दे