數據庫自動備份服務,帶配置,還算能夠吧sql
週末抽時間,編寫了一個這樣的工具,可讓,對數據庫不瞭解或不熟悉的人,直接學會使用備份,省時省力,一樣,我也將一份,經過腳本進行備份的,也奉獻上來,shell
經過腳本備份數據庫,一樣也支持壓縮,可是須要安裝winrar來實現,總體來講也還行,在服務器上建立一個 維護計劃,就能夠實現,也是很方便的,腳本以下:數據庫
EXEC sp_configure 'show advanced options', 1; RECONFIGURE; EXEC sp_configure 'xp_cmdshell', 1; RECONFIGURE; declare @prefix nvarchar(100), @datefile nvarchar(100), @bakfile nvarchar(100), @rarfile nvarchar(100), @rarcmd nvarchar(150), @str_date nvarchar(100), @sql nvarchar(100) --設置備份的目錄 set @prefix='D:/DataBase/' set @str_date = replace(replace(replace(convert(varchar(20),getdate(), 120),' ',''),'-',''),':','') set @datefile = 'xx' +@str_date set @bakfile = @prefix+@datefile+'.bak' set @rarfile = @prefix+@datefile+'.rar' --備份 BACKUP Database mpe_db_Data TO DISK = @bakfile WITH NOFORMAT, NOINIT, NAME = N'xx-完整 數據庫 備份', SKIP, NOREWIND, NOUNLOAD, STATS = 10 --壓縮rar set @rarcmd ='"c:\Program Files\WinRAR\winrar.exe" ' +'a -df ' +@rarfile+' '+@bakfile exec master..xp_cmdshell @rarcmd,NO_OUTPUT;
別問我代碼都是幹啥的,無非就是打開權限,建立變量、時間戳的文件名、備份腳本、啓動備份,哈哈。。都說完了,你也不用問了,windows
--刪除15天以前的備份 set @sql='del d:\DataBase\xx' +rtrim(replace(replace(replace(convert(varchar(20),getdate()-15, 120),' ',''),'-',''),':',''))+'.rar'
爲啥刪除15天的?你想刪除多少天,本身寫, -15 的15,隨你填寫。服務器
好了,言歸正傳,下面是我編寫的windows 服務實現,請看:工具
使用方法以下spa
沒了,嘎嘎。。上圖.net
圖1 使用管理員,打開部署腳本日誌
圖2 根據指示進行配置操做,輸入1 是進入配置code
圖3 配置界面
圖4 安裝完成後,啓動服務
好了,所有操做演示完畢,是否是說,那麼師傅,代碼呢?
樓下五步走
↓↓↓↓
↓↓↓↓
↓↓↓↓
↓↓↓↓
↓↓↓↓
CSDN下載地址:https://download.csdn.net/download/l9861226/10585437
暫時尚未經過,得等等才經過審覈,剛剛上傳上
(代碼純手工打造,要點積分,別介意哈)
代碼遇到一個小小的bug,當備份數據庫巨大時,有的服務器會出現超時現象,我將SqlCommand的 CommandTimeout值設置爲3600秒了,問題解決,由於數據大小是32個G,收縮日誌以後,因此出現了這個問題,以解決,各位自行修改代碼解決便可,代碼以下:
調用處
實現代碼以下:
public static int ExecuteSqlSetTimeOut(string cmdText, int timeOut) { SqlCommand cmd = new SqlCommand(); PrepareCommand(cmd, connection, null, CommandType.Text, cmdText, null); cmd.CommandTimeout = timeOut; int val = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return val; }
完事~!!!啦啦啦。。。