C#編寫強大的SQL Server資料庫自動備份服務
來源:聽風.
cnblogs.com/bq-blog/p/9428610.html
資料庫自動備份服務,帶配置,還算可以。
編寫了一個這樣的工具,可以讓對資料庫不了解或不熟悉的人,直接學會使用備份,省時省力。同樣我也將一份,通過腳本進行備份的,也奉獻上來。
一、通過sql腳本進行資料庫備份
通過腳本備份資料庫,同樣也支持壓縮,但是需要安裝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 FilesWinRARwinrar.exe" " +"a -df " +@rarfile+" "+@bakfile
exec master..xp_cmdshell @rarcmd,NO_OUTPUT;
別問我代碼都是幹啥的,無非就是打開許可權,創建變數、時間戳的文件名、備份腳本、啟動備份,哈哈。都說完了,你也不用問了,
你是不是要問,那刪除文件呢?
--刪除15天之前的備份
set @sql="del d:DataBasexx" +rtrim(replace(replace(replace(convert(varchar(20),getdate()-15, 120)," ",""),"-",""),":",""))+".rar"
為啥刪除15天的?你想刪除多少天,自己寫, -15 的15,隨你填寫。
好了,言歸正傳,下面是我編寫的windows 服務實現,請看:
二、通過C#編寫的windows服務進行資料庫備份
使用方法如下
通過 服務部署工具.bat 配置和安裝windows服務
圖1:使用管理員,打開部署腳本
圖2:根據指示進行配置操作,輸入1 是進入配置
圖3:配置界面
圖4:安裝完成後,啟動服務
好了,全部操作演示完畢,是不是說,那麼師傅,代碼呢?
看完本文有收穫?請轉發分享給更多人
關注「DotNet」,提升.Net技能
TAG:DotNet |