क्यों न एक साधारण बैकअप (sqlcommand के साथ करना आसान) और उपयोगकर्ताओं के लिए एक बटन पर एक क्लिक के साथ उस बैकअप फ़ाइल को आसानी से पुनर्स्थापित करने के लिए एक सुविधा जोड़ें?
- आप sql-कमांड के साथ डेटाबेस का बैकअप ले सकते हैं
- आप sql-कमांड के साथ बैकअप फ़ाइल खोल सकते हैं और ज़िप कर सकते हैं
- यदि आप चाहें तो किसी वेबसर्वर पर बैकअप फ़ाइल को स्वचालित रूप से खोल और एफ़टीपी भी कर सकते हैं।
आपके डीबी का उपभोग करने के लिए अंतिम उपयोगकर्ता क्या उपयोग कर रहे हैं? एक विनफॉर्म-प्रोग्राम? फिर उपयोगकर्ता के लिए एक बटन क्लिक के साथ सब कुछ करना आसान हो गया।
उसके लिए यहां कुछ उदाहरण कोड दिए गए हैं:
Declare @CustomerID int
declare @FileName nvarchar(40)
declare @ZipFileName nvarchar(40)
declare @ZipComand nvarchar(255)
set @CustomerID=20 --Get from database instead in real life application
SET @FileName='c:\backups\myback'+ cast(@customerID as nvarchar(10))+'.bak'
SET @ZipFileName='c:\backups\myback'+ cast(@customerID as nvarchar(10))+'.zip'
--Backup database northwind
backup database northwind to [email protected]
--Zip the file, I got a commanddriven zip.exe from the net somewhere.
set @ZipComand= 'zip.exe -r '[email protected]+' '[email protected]
EXEC xp_cmdshell @zipcomand,NO_output
--Execute the batfile that ftp:s the file to the server
exec xp_cmdshell 'c:\movetoftp.bat',no_output
--Done!
आपके पास एक movetoftp.bat होना चाहिए जिसमें यह शामिल हो (ftp-server को अपने में बदलें):
ftp -s:ftpcommands.txt ftp.myftp.net
और आपके पास एक ftpcommands.txt होना चाहिए जिसमें यह शामिल हो (आप इस फ़ाइल को sqlcommands द्वारा भी सही ज़िप-फ़ाइल के साथ डायनामिक रूप से बनाया जा सकता है, लेकिन मैं आपको स्वयं ऐसा करने देता हूं):
ftpusername
ftppassword
बाइनरी
प्रॉम्प्ट n
mput c:\backups\*.zip
छोड़ें