Mengapa tidak membuat cadangan biasa (mudah dilakukan dengan sqlcommand) dan menambahkan fitur bagi pengguna untuk memulihkan file cadangan dengan mudah dengan mengklik tombol?
- Anda dapat membuat cadangan database dengan perintah sql
- Anda dapat keluar dan zip file cadangan dengan perintah sql
- Anda juga dapat mengeluarkan dan mem-ftp file cadangan secara otomatis ke server web jika Anda mau.
Apa yang digunakan pengguna akhir untuk menggunakan db Anda? Program winform? Maka mudah dilakukan untuk melakukan semuanya dengan klik tombol untuk pengguna.
Berikut adalah beberapa contoh kode untuk itu:
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!
Anda harus memiliki movetoftp.bat yang berisi ini (ubah ftp-server ke Anda):
ftp -s:ftpcommands.txt ftp.myftp.net
Dan Anda harus memiliki ftpcommands.txt yang berisi ini (Anda dapat membuat file ini dibuat secara dinamis hanya dengan file zip yang tepat oleh sqlcommands juga, tetapi saya membiarkan Anda melakukannya sendiri):
ftpusername
ftppassword
biner
prompt n
mput c:\backups\*.zip
keluar